<?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>206739</bug_id>
          
          <creation_ts>2020-01-24 05:17:59 -0800</creation_ts>
          <short_desc>Remove WebVR from the tree</short_desc>
          <delta_ts>2020-01-28 08:53:15 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1610617</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-01-24 05:17:59 -0800</bug_when>
    <thetext>Remove WebVR from the tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610625</commentid>
    <comment_count>1</comment_count>
      <attachid>388680</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-01-24 05:31:38 -0800</bug_when>
    <thetext>Created attachment 388680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610669</commentid>
    <comment_count>2</comment_count>
      <attachid>388690</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-01-24 07:54:27 -0800</bug_when>
    <thetext>Created attachment 388690
Mac build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611063</commentid>
    <comment_count>3</comment_count>
      <attachid>388690</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-25 09:44:44 -0800</bug_when>
    <thetext>Comment on attachment 388690
Mac build fix

Patch also needs to remove the layout tests for WebVR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611239</commentid>
    <comment_count>4</comment_count>
      <attachid>388690</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-26 15:22:33 -0800</bug_when>
    <thetext>Comment on attachment 388690
Mac build fix

Need a version that also removes the tests (or skips them at least)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611337</commentid>
    <comment_count>5</comment_count>
      <attachid>388840</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-01-27 01:39:15 -0800</bug_when>
    <thetext>Created attachment 388840
Patch

Removed LayoutTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611956</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-01-28 08:52:14 -0800</bug_when>
    <thetext>Committed r255241: &lt;https://trac.webkit.org/changeset/255241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611958</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-28 08:53:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/58956753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388680</attachid>
            <date>2020-01-24 05:31:38 -0800</date>
            <delta_ts>2020-01-24 07:52:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206739-20200124143122.patch</filename>
            <type>text/plain</type>
            <size>1385225</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYWYzNDBkOWY1
NmRlOTk1YzZlNjE1NWUwNjk1OTY0N2Q3OTQ5ZDRlOS4uZjU3ZWU2MWYzZWMwNDY5NjllODRmNjFk
MjRkNGQ4MjA1YjVlOThmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIw
LTAxLTI0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJlbW92ZSBXZWJWUiBmcm9tIHRoZSB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFzIFdlYlZSIGlzIGdvbmUgYW5kIHRoaXMg
aXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIG9wZW52ci9DTWFrZUxpc3RzLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvTElDRU5TRTogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvUkVBRE1FLm1kOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9SRUFETUUud2Via2l0
OiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2U6IFJlbW92
ZWQuCisgICAgICAgICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmg6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jczogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVu
dnIvaGVhZGVycy9vcGVudnJfYXBpLmpzb246IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyX2NhcGkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9v
cGVudnJfZHJpdmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3BhdGNoZXMvUGF0aF9X
cml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IFJlbW92ZWQuCisgICAg
ICAgICogb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2g6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIv
c3JjL0luZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9SRUFETUU6IFJl
bW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IFJlbW92ZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBvcGVudnIvc3JjL2pzb24vanNvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvanNvbmNwcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9vcGVudnJfYXBp
X3B1YmxpYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0
b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1v
bi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMv
dnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZy
L3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1
YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRv
b2xzX3B1YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vdnJw
YXRocmVnaXN0cnlfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBSZW1vdmVkLgorCiAyMDIwLTAxLTIxICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdHZPUyB2YWx1
ZXMgaW4gU1VQUE9SVEVEX1BMQVRGT1JNUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2NjY2NTU2MTVmZDdjZjQ5
Y2M5YjY2ZTY5MTc1Njc3NzgwZmMxMGQuLjYzMDkxMDhmOGY4MGZlMjM4ZDgxYjU4ZWQ3OWE3ZGM0
MWVhYzUzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAyMC0wMS0yNCAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2Vi
VlIgZnJvbSB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViVlIgMS4xIHdhcyBuZXZlciBjb21wbGV0ZWx5IGltcGxlbWVudGVkLCBpdCB3
YXMganVzdCBpbmNsdWRlZCBhcyBidWlsZCBvcHRpb24gb2YKKyAgICAgICAgV2ViS2l0R1RLIGFu
ZCBXUEUsIGFuZCBpdCB3YXMgbmV2ZXIgcmVsZWFzZWQgYnkgYW55IFdlYktpdCBwb3J0IGVpdGhl
ci4gVGhlcmUgYXJlIG5vIHBsYW5zCisgICAgICAgIHRvIHdvcmsgb24gaXQgYXMgaXQgaGFzIGJl
ZW4gcmVwbGFjZWQgYnkgdGhlIFdlYlhSIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJW
Ui5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBh
YmlsaXRpZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUNh
cGFiaWxpdGllcy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQu
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFz
b24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50UmVh
c29uLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRXllLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJzLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VidnIvVlJGaWVsZE9mVmlldy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
dnIvVlJGaWVsZE9mVmlldy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkZyYW1l
RGF0YS5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSUG9zZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUlBvc2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZS
UG9zZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRl
cnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBmZWF0dXJlcy5qc29uOgor
ICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViVlJFbmFibGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYlZSRW5hYmxlZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9WUk1hbmFnZXIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL3ZyL1ZSUGxhdGZvcm1NYW5hZ2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFu
YWdlck9wZW5WUi5oOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1
cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRXZWJWUkVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMjAtMDEtMjMgIFRha2FzaGkg
S29tb3JpICA8VGFrYXNoaS5Lb21vcmlAc29ueS5jb20+CiAKICAgICAgICAgS2V5ZWREZWNvZGVy
R2VuZXJpYyBjcmFzaGVzIHdoZW4gaXQgYWNjZXNzZXMgYSBkYXRhIHdpdGggZW1wdHkgc3RyaW5n
IGtleS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZTliYzcxZTM0MTg5N2U4MjgxZmYzYWQyMjhhODFkZjM1MTRlZGE3
Yy4uNTM0MzQzMDRkYTA1YTFiNTUyYjE1NTdhZGY2MTMwZTdjMzUwNTM5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMC0wMS0yNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2ViVlIgZnJvbSB0aGUgdHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbDogcmVtb3ZlZCBXZWJWUiBwcmVmZXJlbmNlLgorCiAyMDIwLTAxLTIzICBB
bGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10g
TmF2aWdhdGlvbiBnZXN0dXJlIGNyZWF0ZXMgQ1NTIG5vZGVzIGFuZCBkb2Vzbid0IHJlbW92ZSB0
aGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjJiMDU2YzdlY2U3NjI2OThjNjI4NTQzMzcxZWU0YzIwNThhYTZlNi4uMDg0
NGRmZjgwODg3YzFkMGZhMmU1NDA2OTMyNjIxNTQ5YjVhZjU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjEsMTMgKzIx
LDYgQEAgaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShUaGlyZFBh
cnR5L2d0ZXN0KQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0gICAgIyBPcGVuVlIgaXMg
Y29tcGlsZWQgd2l0aCAtc3RkbGliPWxpYmMrKyBhcyBkZWZhdWx0IGlmIENsYW5nIGlzIHVzZWQu
Ci0gICAgIyBEaXNhYmxlIFVTRV9MSUJDWFggbm90IHRvIHVzZSAtc3RkbGliPWxpYmMrKy4KLSAg
ICBvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9G
RikKLSAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvb3BlbnZyKQotZW5kaWYgKCkKLQog
aWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1l
KQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzYTdmOTBjZjg0YzIxZGE4NGQwYmE1ZmMyOGYxNGQ2
OGRhMmNmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvQ01ha2VMaXN0cy50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0jIFNldCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIENNYWtl
IGZvciB0aGlzIHByb2plY3QuCi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44KQot
Ci0jIFNldHVwIHNvbWUgb3B0aW9ucy4KLW9wdGlvbihCVUlMRF9TSEFSRUQgIkJ1aWxkcyB0aGUg
bGlicmFyeSBhcyBzaGFyZWQgbGlicmFyeSIgT0ZGKQotb3B0aW9uKFVTRV9MSUJDWFggIlVzZXMg
bGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPTikKLW9wdGlvbihVU0VfQ1VTVE9NX0xJQkNY
WCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLQotYWRkX2RlZmluaXRpb25zKCAtRFZSX0FQ
SV9QVUJMSUMgKQotCi0jIENoZWNrIGlmIDMyIG9yIDY0IGJpdCBzeXN0ZW0uCi1zZXQoU0laRU9G
X1ZPSURQICR7Q01BS0VfU0laRU9GX1ZPSURfUH0pCi1pZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVR
VUFMIDgpCi0gIHNldChQUk9DRVNTT1JfQVJDSCAiNjQiKQotZWxzZSgpCi0gIHNldChQUk9DRVNT
T1JfQVJDSCAiMzIiKQotZW5kaWYoKQotCi0jIEdldCBwbGF0Zm9ybS4KLWlmKFdJTjMyKQotICAg
ICAgIHNldChQTEFURk9STV9OQU1FICJ3aW4iKQotZWxzZWlmKFVOSVggQU5EIE5PVCBBUFBMRSkK
LSAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipMaW51eCIpCi0gICAgc2V0KFBMQVRG
T1JNX05BTUUgImxpbnV4IikKLSAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWCAtRFBPU0lYKQot
ICAgIGlmKFBST0NFU1NPUl9BUkNIIE1BVENIRVMgIjY0IikKLSAgICAgICAgYWRkX2RlZmluaXRp
b25zKC1ETElOVVg2NCkKLSAgICBlbmRpZigpCi0gIGVuZGlmKCkKLWVsc2VpZihBUFBMRSkKLSAg
aWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipEYXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVN
X05BTUUgTUFUQ0hFUyAiLipNYWNPUy4qIikKLSAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikK
LSAgICBhZGRfZGVmaW5pdGlvbnMoLURPU1ggLURQT1NJWCkKLSAgZW5kaWYoKQotZW5kaWYoKQot
Ci0jIEVuYWJsZSBzb21lIHByb3BlcnRpZXMuCi1pZihDTUFLRV9DT01QSUxFUl9JU19HTlVDQyBP
UiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKLSAgICAgICAjIEVuYWJsZSBj
KysxMSBhbmQgaGlkZSBzeW1ib2xzIHdoaWNoIHNob3VsZG4ndCBiZSB2aXNpYmxlCi0gICAgICAg
c2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEgLWZQSUMg
LWZ2aXNpYmlsaXR5PWhpZGRlbiIpCi0KLSAgICAgICAjIFNldCBjdXN0b20gbGliYysrIHVzYWdl
IGhlcmUKLSAgICAgICBpZihDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIiBBTkQg
VVNFX0xJQkNYWCkKLSAgICAgICAgICAgICAgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCi0gICAgICAg
ICAgICAgICAgICAgICBpZihCVUlMRF9TSEFSRUQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgZW5kaWYoKQotICAg
ICAgICAgICAgICAgICAgICAgc2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9
IC1ub3N0ZGluYysrIikKLSAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMo
ICR7TElCQ1hYX0lOQ0xVREV9ICR7TElCQ1hYX0FCSV9JTkNMVURFfSkKLSAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2UoU1RBVFVTICJVc2luZyBjdXN0b20gbGliYysrIikKLSAgICAgICAgICAg
ICAgZWxzZSgpCi0gICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NN
QUtFX0NYWF9GTEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZShTVEFUVVMgIlVzaW5nIGxpYmMrKyIpCi0gICAgICAgICAgICAgIGVuZGlmKCkKLSAgICAg
ICBlbmRpZigpCi1lbmRpZigpCi0KLWFkZF9zdWJkaXJlY3Rvcnkoc3JjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0xJQ0VOU0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4MzMzN2Q3ZmNiNzI2
ZDE0Y2MxMGY3ZGQyZmRhNjc5OWQ4YTEzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQorKysgL2Rl
di9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUNvcHlyaWdodCAoYykgMjAxNSwgVmFsdmUgQ29ycG9y
YXRpb24KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1h
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6Ci0KLTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLXRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yCi1vdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotCi0zLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKLXNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAot
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLURJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUubWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9SRUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1PcGVuVlIgU0RLCi0t
LS0KLQotT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0IGFsbG93cyBhY2Nlc3MgdG8g
VlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKLXZlbmRvcnMgd2l0aG91dCByZXF1aXJpbmcgdGhh
dCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ugb2YgdGhlIAotaGFyZHdhcmUg
dGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMgYW4gU0RLIHRoYXQgY29udGFp
bnMgdGhlIEFQSSAKLWFuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBpcyB1bmRlciBTdGVhbVZSIGlu
IFRvb2xzIG9uIFN0ZWFtLiAKLQotIyMjIERvY3VtZW50YXRpb24KLQotRG9jdW1lbnRhdGlvbiBm
b3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIgV2lraV0oaHR0cHM6Ly9naXRo
dWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURvY3VtZW50YXRpb24pCi0KLU1v
cmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNhbiBiZSBmb3VuZCBvbiBodHRw
Oi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYmI3NmVmMTZmMmVlYjNjNGI2Nzc5ZTFjM2Q5MGVi
ZTI0NTIwMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGlzIGlzIHRoZSBPcGVuVlIgbGlicmFyeSBmcm9tCi1odHRwczovL2dp
dGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIKLQotVXBzdHJlYW0gY29kZSBjYW4gYmUgdmll
d2VkIGF0Ci0gaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3RyZWUvbWFz
dGVyLwotCi1hbmQgY2xvbmVkIGJ5Ci0gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9WYWx2
ZVNvZnR3YXJlL29wZW52ci5naXQKLQotQ3VycmVudCB2ZXJzaW9uOiBbY29tbWl0IGViZGVhMTUy
ZjhhYWM3N2U5YTZkYjI5NjgyYjgxZDc2MjE1OWRmN2VdCi0KLXdoaWNoIGNvcnJlc3BvbmRzIHRv
IDEuMC4xMCByZWxlYXNlLgotCi1XZWJLaXQgY2hhbmdlczoKLSogcGF0Y2hlcy9jbWFrZS1idWls
ZC5wYXRjaDogc2NyaXB0IHVzZWQgdG8gYWxsb3cgb3BlbnZyIENNYWtlIGJ1aWxkIHRvIGJlCi1p
bnRlZ3JhdGVkIGludG8gV2ViS2l0IGJ1aWxkCi0qIHBhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZp
bGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IHN1cHByZXNzZXMgYQotY29tcGlsZXIgd2Fy
bmluZywgYnV0IG90aGVyd2lzZSBhbHJlYWR5IGFwcGxpZWQgdXBzdHJlYW0gaW4gMS4wLjEyCi0q
IFJlbW92ZWQgYmluLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMgaXQgaW5jbHVkZXMgcHJlY29t
cGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgbGliLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMg
aXQgaW5jbHVkZXMgcHJlY29tcGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgY29udHJvbGxlcl9j
YWxsb3V0cy8gZGlyZWN0b3J5LiBVbm5lZWRlZCBkb2NzCi0qIFJlbW92ZWQgc2FtcGxlcy8gZGly
ZWN0b3J5LgotKiBSZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2UgY2hlY2std2Vi
a2l0LXN0eWxlIGhhcHB5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rv
b2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4t
Y2xhbmcuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNmIwYWMwMTc1YTZl
MzRiNTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFu
Zy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotc2V0KENNQUtFX1NZU1RFTV9O
QU1FIExpbnV4KQotCi1zZXQoQ01BS0VfQ19DT01QSUxFUiBjbGFuZykKLXNldChDTUFLRV9DWFhf
Q09NUElMRVIgY2xhbmcrKykKLQotc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUFJPR1JB
TSBORVZFUikKLXNldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0xJQlJBUlkgT05MWSkKLXNl
dChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lOQ0xVREUgT05MWSkKLXNldChDTUFLRV9GSU5E
X1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0UgT05MWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NmU0OWE2YWM1
MzEwODBjNWY0MzAzZTVjMTVjZjkzZTExZmEyZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3Bl
bnZyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNzc3ICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0v
LyBvcGVudnIuaAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09
PT09PT09PS8vCi0vLyBEeW5hbWljYWxseSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IG1vZGlmeSB0
aGlzIGZpbGUgZGlyZWN0bHkuCi0KLSNpZm5kZWYgX09QRU5WUl9BUEkKLSNkZWZpbmUgX09QRU5W
Ul9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0jaWZuZGVm
IF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQotLy8gRm9y
d2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1Y3QgVmtE
ZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0YW5jZV9U
Owotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQg
cmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJRDNEMTJD
b21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkK
LQotdHlwZWRlZiB2b2lkKiBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgaW50MzJf
dCBnbEludF90OwotdHlwZWRlZiB1aW50MzJfdCBnbFVJbnRfdDsKLQotLy8gcmlnaHQtaGFuZGVk
IHN5c3RlbQotLy8gK3kgaXMgdXAKLS8vICt4IGlzIHRvIHRoZSByaWdodAotLy8gLXogaXMgZ29p
bmcgYXdheSBmcm9tIHlvdQotLy8gRGlzdGFuY2UgdW5pdCBpcyAgbWV0ZXJzCi1zdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIGZsb2F0IG1bM11bNF07Ci19OwotCi1zdHJ1Y3QgSG1kTWF0
cml4NDRfdAotewotICAgICAgIGZsb2F0IG1bNF1bNF07Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9y
M190Ci17Ci0gICAgICAgZmxvYXQgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3I0X3QKLXsK
LSAgICAgICBmbG9hdCB2WzRdOwotfTsKLQotc3RydWN0IEhtZFZlY3RvcjNkX3QKLXsKLSAgICAg
ICBkb3VibGUgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOwotfTsKLQotc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAgICAgIGRvdWJsZSB3
LCB4LCB5LCB6OwotfTsKLQotc3RydWN0IEhtZENvbG9yX3QKLXsKLSAgICAgICBmbG9hdCByLCBn
LCBiLCBhOwotfTsKLQotc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIEhtZFZlY3RvcjNfdCB2
Q29ybmVyc1sgNCBdOwotfTsKLQotc3RydWN0IEhtZFJlY3QyX3QKLXsKLSAgICAgICBIbWRWZWN0
b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX07Ci0K
LS8qKiBVc2VkIHRvIHJldHVybiB0aGUgcG9zdC1kaXN0b3J0aW9uIFVWcyBmb3IgZWFjaCBjb2xv
ciBjaGFubmVsLiAKLSogVVZzIHJhbmdlIGZyb20gMCB0byAxIHdpdGggMCwwIGluIHRoZSB1cHBl
ciBsZWZ0IGNvcm5lciBvZiB0aGUgCi0qIHNvdXJjZSByZW5kZXIgdGFyZ2V0LiBUaGUgMCwwIHRv
IDEsMSByYW5nZSBjb3ZlcnMgYSBzaW5nbGUgZXllLiAqLwotc3RydWN0IERpc3RvcnRpb25Db29y
ZGluYXRlc190Ci17Ci0gICAgICAgZmxvYXQgcmZSZWRbMl07Ci0gICAgICAgZmxvYXQgcmZHcmVl
blsyXTsKLSAgICAgICBmbG9hdCByZkJsdWVbMl07Ci19OwotCi1lbnVtIEVWUkV5ZQotewotICAg
ICAgIEV5ZV9MZWZ0ID0gMCwKLSAgICAgICBFeWVfUmlnaHQgPSAxCi19OwotCi1lbnVtIEVUZXh0
dXJlVHlwZQotewotICAgICAgIFRleHR1cmVUeXBlX0RpcmVjdFggPSAwLCAvLyBIYW5kbGUgaXMg
YW4gSUQzRDExVGV4dHVyZQotICAgICAgIFRleHR1cmVUeXBlX09wZW5HTCA9IDEsICAvLyBIYW5k
bGUgaXMgYW4gT3BlbkdMIHRleHR1cmUgbmFtZSBvciBhbiBPcGVuR0wgcmVuZGVyIGJ1ZmZlciBu
YW1lLCBkZXBlbmRpbmcgb24gc3VibWl0IGZsYWdzCi0gICAgICAgVGV4dHVyZVR5cGVfVnVsa2Fu
ID0gMiwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBhIFZSVnVsa2FuVGV4dHVyZURhdGFfdCBz
dHJ1Y3R1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLCAvLyBIYW5kbGUgaXMg
YSBtYWNPUyBjcm9zcy1wcm9jZXNzLXNoYXJhYmxlIElPU3VyZmFjZVJlZgotICAgICAgIFRleHR1
cmVUeXBlX0RpcmVjdFgxMiA9IDQsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBEM0QxMlRl
eHR1cmVEYXRhX3Qgc3RydWN0dXJlCi19OwotCi1lbnVtIEVDb2xvclNwYWNlCi17Ci0gICAgICAg
Q29sb3JTcGFjZV9BdXRvID0gMCwgICAgICAgLy8gQXNzdW1lcyAnZ2FtbWEnIGZvciA4LWJpdCBw
ZXIgY29tcG9uZW50IGZvcm1hdHMsIG90aGVyd2lzZSAnbGluZWFyJy4gIFRoaXMgbWlycm9ycyB0
aGUgRFhHSSBmb3JtYXRzIHdoaWNoIGhhdmUgX1NSR0IgdmFyaWFudHMuCi0gICAgICAgQ29sb3JT
cGFjZV9HYW1tYSA9IDEsICAgICAgIC8vIFRleHR1cmUgZGF0YSBjYW4gYmUgZGlzcGxheWVkIGRp
cmVjdGx5IG9uIHRoZSBkaXNwbGF5IHdpdGhvdXQgYW55IGNvbnZlcnNpb24gKGEuay5hLiBkaXNw
bGF5IG5hdGl2ZSBmb3JtYXQpLgotICAgICAgIENvbG9yU3BhY2VfTGluZWFyID0gMiwgICAgICAg
Ly8gU2FtZSBhcyBnYW1tYSBidXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgbGluZWFyIHJlcHJl
c2VudGF0aW9uIHVzaW5nIERYR0kncyBzUkdCIGNvbnZlcnNpb24gYWxnb3JpdGhtLgotfTsKLQot
c3RydWN0IFRleHR1cmVfdAotewotICAgICAgIHZvaWQqIGhhbmRsZTsgLy8gU2VlIEVUZXh0dXJl
VHlwZSBkZWZpbml0aW9uIGFib3ZlCi0gICAgICAgRVRleHR1cmVUeXBlIGVUeXBlOwotICAgICAg
IEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOwotfTsKLQotLy8gSGFuZGxlIHRvIGEgc2hhcmVkIHRl
eHR1cmUgKEhBTkRMRSBvbiBXaW5kb3dzIG9idGFpbmVkIHVzaW5nIE9wZW5TaGFyZWRSZXNvdXJj
ZSkuCi10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLSNkZWZpbmUgSU5W
QUxJRF9TSEFSRURfVEVYVFVSRV9IQU5ETEUgICAgICAgKCh2cjo6U2hhcmVkVGV4dHVyZUhhbmRs
ZV90KTApCi0KLWVudW0gRVRyYWNraW5nUmVzdWx0Ci17Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRf
VW5pbml0aWFsaXplZCAgICAgICAgICAgICAgICAgICAgID0gMSwKLQotICAgICAgIFRyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgICAgICAgPSAxMDAsCi0gICAgICAgVHJhY2tp
bmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSAgICAgICA9IDEwMSwKLQotICAgICAgIFRy
YWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAs
Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlICAgICAgICAgICAgICA9
IDIwMSwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgRHJpdmVySWRfdDsKLXN0YXRpYyBjb25zdCB1
aW50MzJfdCBrX25Ecml2ZXJOb25lID0gMHhGRkZGRkZGRjsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotCi0vKiogVXNlZCB0
byBwYXNzIGRldmljZSBJRHMgdG8gQVBJIGNhbGxzICovCi10eXBlZGVmIHVpbnQzMl90IFRyYWNr
ZWREZXZpY2VJbmRleF90Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kID0gMDsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmlj
ZUNvdW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRl
eE90aGVyID0gMHhGRkZGRkZGRTsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERl
dmljZUluZGV4SW52YWxpZCA9IDB4RkZGRkZGRkY7Ci0KLS8qKiBEZXNjcmliZXMgd2hhdCBraW5k
IG9mIG9iamVjdCBpcyBiZWluZyB0cmFja2VkIGF0IGEgZ2l2ZW4gSUQgKi8KLWVudW0gRVRyYWNr
ZWREZXZpY2VDbGFzcwotewotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIElEIHdhcyBub3QgdmFsaWQuCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX0hNRCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBIZWFkLU1vdW50ZWQgRGlzcGxheXMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfQ29udHJvbGxlciA9IDIsICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9s
bGVycwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAg
ICAgICAgICAvLyBHZW5lcmljIHRyYWNrZXJzLCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2Ft
ZXJhIGFuZCBiYXNlIHN0YXRpb25zIHRoYXQgc2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBv
aW50cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19EaXNwbGF5UmVkaXJlY3QgPSA1LCAgICAg
ICAgICAgICAgLy8gQWNjZXNzb3JpZXMgdGhhdCBhcmVuJ3QgbmVjZXNzYXJpbHkgdHJhY2tlZCB0
aGVtc2VsdmVzLCBidXQgbWF5IHJlZGlyZWN0IHZpZGVvIG91dHB1dCBmcm9tIG90aGVyIHRyYWNr
ZWQgZGV2aWNlcwotfTsKLQotCi0vKiogRGVzY3JpYmVzIHdoYXQgc3BlY2lmaWMgcm9sZSBhc3Nv
Y2lhdGVkIHdpdGggYSB0cmFja2VkIGRldmljZSAqLwotZW51bSBFVHJhY2tlZENvbnRyb2xsZXJS
b2xlCi17Ci0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxl
ciB0eXBlCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0gMSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQg
d2l0aCB0aGUgbGVmdCBoYW5kCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFu
ZCA9IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29j
aWF0ZWQgd2l0aCB0aGUgcmlnaHQgaGFuZAotfTsKLQotCi0vKiogZGVzY3JpYmVzIGEgc2luZ2xl
IHBvc2UgZm9yIGEgdHJhY2tlZCBvYmplY3QgKi8KLXN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOwotICAg
ICAgIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHZlbG9jaXR5IGluIHRyYWNrZXIgc3BhY2UgaW4gbS9zCi0gICAgICAgSG1kVmVjdG9yM190IHZB
bmd1bGFyVmVsb2NpdHk7ICAgICAgICAgICAgICAvLyBhbmd1bGFyIHZlbG9jaXR5IGluIHJhZGlh
bnMvcyAoPykKLSAgICAgICBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAg
IGJvb2wgYlBvc2VJc1ZhbGlkOwotCi0gICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVy
ZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgZm9yIHRoaXMgc3BvdCBpbiB0aGUgcG9zZSBhcnJheS4K
LSAgICAgICAvLyBJdCBjb3VsZCBnbyBmcm9tIHRydWUgdG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5w
bHVncyB0aGUgZGV2aWNlLgotICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOwotfTsKLQot
LyoqIElkZW50aWZpZXMgd2hpY2ggc3R5bGUgb2YgdHJhY2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNh
dGlvbiB3YW50cyB0byB1c2UKLSogZm9yIHRoZSBwb3NlcyBpdCBpcyByZXF1ZXN0aW5nICovCi1l
bnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgVHJhY2tpbmdVbml2ZXJzZVNl
YXRlZCA9IDAsICAgICAgICAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8g
dGhlIHNlYXRlZCB6ZXJvIHBvc2UKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAx
LCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNhZmUgYm91bmRz
IGNvbmZpZ3VyZWQgYnkgdGhlIHVzZXIKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5j
YWxpYnJhdGVkID0gMiwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBjb29yZGlu
YXRlIHN5c3RlbSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5p
ZmllZCBmb3IgZGV2aWNlcyBvZiB0aGUgc2FtZSBkcml2ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdh
bnQgdGhpcyBvbmUuCi19OwotCi0vLyBSZWZlcnMgdG8gYSBzaW5nbGUgY29udGFpbmVyIG9mIHBy
b3BlcnRpZXMKLXR5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKLXR5
cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7Ci0KLXN0YXRpYyBjb25zdCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOwot
Ci0vLyBVc2UgdGhlc2UgdGFncyB0byBzZXQvZ2V0IGNvbW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJv
cGVydGllcwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5
VGFnID0gMTsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0
eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blVpbnQ2NFByb3Bl
cnR5VGFnID0gMzsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuQm9vbFByb3Bl
cnR5VGFnID0gNDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJv
cGVydHlUYWcgPSA1OwotCi1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1h
dHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuSG1kTWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKLXN0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7Ci0K
LXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZl
ZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5W
UkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7Ci0KLQotLyoqIEVhY2ggZW50cnkgaW4gdGhp
cyBlbnVtIHJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQg
YQotKiB0cmFja2VkIGRldmljZS4gTWFueSBmaWVsZHMgYXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBF
VHJhY2tlZERldmljZUNsYXNzLiAqLwotZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5Ci17Ci0g
ICAgICAgUHJvcF9JbnZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDAsCi0KLSAgICAgICAvLyBnZW5lcmFsIHByb3BlcnRpZXMgdGhh
dCBhcHBseSB0byBhbGwgZGV2aWNlIGNsYXNzZXMKLSAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVt
TmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotICAgICAgIFBy
b3BfTW9kZWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAxLAotICAgICAgIFByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxO
YW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAzLAotICAg
ICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDA0LAotICAgICAgIFByb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDA1LAotICAgICAgIFByb3BfVHJhY2tpbmdGaXJtd2Fy
ZVZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA2LAotICAgICAgIFByb3Bf
SGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA3
LAotICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nICAgICAg
ID0gMTAwOCwKLSAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gMTAwOSwKLSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9v
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDEwLAotICAgICAgIFByb3Bf
RGV2aWNlSXNDaGFyZ2luZ19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMTEsCi0gICAgICAgUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gMTAxMiwgLy8gMCBpcyBlbXB0eSwgMSBpcyBmdWxsCi0gICAgICAgUHJv
cF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICA9IDEwMTMsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCAgICAgICAgICAgICAgICAg
ICAgID0gMTAxNCwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxNSwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVh
bFVwZGF0ZVVSTF9TdHJpbmcgICAgICAgICAgICAgID0gMTAxNiwKLSAgICAgICBQcm9wX0hhcmR3
YXJlUmV2aXNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNywKLSAg
ICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxOCwKLSAgICAgICBQcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxOSwKLSAgICAgICBQcm9wX1ZS
Q1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDIwLAotICAgICAgIFByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMiwKLSAgICAgICBQcm9w
X0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MjMsCi0gICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAg
ICAgPSAxMDI0LAotICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCAgICAg
ICAgICAgICAgICAgICAgID0gMTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVy
eVN0YXR1c19Cb29sICAgICAgICAgICAgICA9IDEwMjYsCi0gICAgICAgUHJvcF9EZXZpY2VDYW5Q
b3dlck9mZl9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjcsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgICAgICAgICAgICAg
ID0gMTAyOCwKLSAgICAgICBQcm9wX0RldmljZUNsYXNzX0ludDMyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDI5LAotICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jv
b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMw
LAotICAgICAgIFByb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgPSAx
MDMxLAotICAgICAgIFByb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sICAgICAg
PSAxMDMyLAotICAgICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAg
ICAgICAgICAgID0gMTAzMywKLSAgICAgICBQcm9wX1BhcmVudERyaXZlcl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNCwKLSAgICAgICBQcm9wX1Jlc291cmNl
Um9vdF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNSwKLQot
ICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFz
c19ITUQKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bo
b3RvbnNfRmxvYXQgICAgICAgICAgICAgID0gMjAwMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGcmVx
dWVuY3lfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwMiwKLSAg
ICAgICBQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAwMywKLSAgICAgICBQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDQsIAotICAgICAgIFByb3BfUHJldmlvdXNVbml2
ZXJzZUlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDUsIAotICAgICAg
IFByb3BfRGlzcGxheUZpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9
IDIwMDYsCi0gICAgICAgUHJvcF9Jc09uRGVza3RvcF9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDA3LAotICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA4LAotICAgICAgIFBy
b3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMDksCi0gICAgICAgUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDExLAotICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmluZyAgICAgICAgICAgICAgPSAyMDEyLAot
ICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgICAgICAgICAgICAgPSAyMDEz
LAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTUsCi0gICAgICAgUHJvcF9DYW1lcmFU
b0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAgICAgICAgICA9IDIwMTYsCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMTcsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ1Nj
YWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTksCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMjAsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAyMSwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIyLAotICAgICAg
IFByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjQsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVy
UmlnaHRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjUsCi0g
ICAgICAgUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjYsCi0gICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVEZXNj
cmlwdGlvbl9TdHJpbmcgICAgICAgICAgICAgID0gMjAyOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlG
UEdBVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI5LAotICAg
ICAgIFByb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgPSAy
MDMwLAotICAgICAgIFByb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzEsCi0gICAgICAgUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMzIsCi0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRp
YmlsaXR5TW9kZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgID0gMjAzMywKLSAgICAgICBQcm9w
X1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNCwKLSAg
ICAgICBQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzUsCi0gICAgICAgUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMzYsCi0gICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1v
ZGVfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzcsCi0gICAgICAgUHJvcF9E
aXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
OCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5l
bHNfSW50MzIgICAgICAgICAgICAgID0gMjA0MCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQxLAotICAgICAgIFBy
b3BfU2Vjb25kc0Zyb21QaG90b25zVG9WYmxhbmtfRmxvYXQgICAgICAgICAgICAgID0gMjA0MiwK
LSAgICAgICBQcm9wX0RyaXZlckRpcmVjdE1vZGVTZW5kc1ZzeW5jRXZlbnRzX0Jvb2wgICAgICAg
PSAyMDQzLAotICAgICAgIFByb3BfRGlzcGxheURlYnVnTW9kZV9Cb29sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwNDQsCi0gICAgICAgUHJvcF9HcmFwaGljc0FkYXB0ZXJM
dWlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDUsCi0gICAgICAgUHJv
cF9Ecml2ZXJQcm92aWRlZENoYXBlcm9uZVBhdGhfU3RyaW5nICAgICAgICAgICAgICA9IDIwNDgs
Ci0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2aWNl
Q2xhc3NfQ29udHJvbGxlcgotICAgICAgIFByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAwLAotICAgICAgIFByb3BfU3VwcG9ydGVkQnV0
dG9uc19VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAxLAotICAgICAgIFBy
b3BfQXhpczBUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDAyLCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5
cGUKLSAgICAgICBQcm9wX0F4aXMxVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwMywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMlR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDQsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczNUeXBlX0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA1LCAvLyBSZXR1
cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAgICBQcm9wX0F4
aXM0VHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwNiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0g
ICAgICAgUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDA3LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVHJhY2tlZENvbnRyb2xs
ZXJSb2xlCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2Vk
RGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDAsCi0gICAgICAgUHJvcF9G
aWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMSwK
LSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAg
ICAgID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCAg
ICAgICAgICAgICAgICAgICAgID0gNDAwMywKLSAgICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNaW5p
bXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2lu
Z1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA1LAotICAgICAgIFBy
b3BfTW9kZUxhYmVsX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNDAwNiwKLQotICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBmb3IgdXNl
ciBpbnRlcmZhY2UgbGlrZSBpY29ucyBuYW1lcwotICAgICAgIFByb3BfSWNvblBhdGhOYW1lX1N0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMCwgLy8g
REVQUkVDQVRFRC4gVmFsdWUgbm90IHJlZmVyZW5jZWQuIE5vdyBleHBlY3RlZCB0byBiZSBwYXJ0
IG9mIGljb24gcGF0aCBwcm9wZXJ0aWVzLgotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDAxLCAvLyB7ZHJpdmVy
fS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBh
bmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAgICAgICAgICAgID0g
NTAwMiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9T
dHJpbmcgICAgICAgPSA1MDAzLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5H
IGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0
cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJl
YWR5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8ge2RyaXZlcn0vaWNvbnMv
aWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9u
LCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyAgICAgICAgICAgICAgPSA1MDA1LCAv
LyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3Ig
R0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVy
cwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyAgICAgICAg
ICAgICAgICAgICAgID0gNTAwNiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBO
RyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNl
dHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8ge2RyaXZlcn0vaWNv
bnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0
aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9
IDUwMDgsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBp
Y29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBm
b3Igb3RoZXJzCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgYnkgaGVscGVy
cywgYnV0IGFyZSBvcGFxdWUgdG8gYXBwbGljYXRpb25zCi0gICAgICAgUHJvcF9EaXNwbGF5SGlk
ZGVuQXJlYV9CaW5hcnlfU3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAwLAot
ICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X0VuZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUxNTAsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1
ZSB0byBkcml2ZXJzCi0gICAgICAgUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMCwKLSAgICAgICBQcm9wX0luc3RhbGxQYXRo
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMSwK
LSAgICAgICBQcm9wX0hhc0Rpc3BsYXlDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDYwMDIsCi0gICAgICAgUHJvcF9IYXNDb250cm9sbGVyQ29tcG9uZW50X0Jvb2wg
ICAgICAgICAgICAgICAgICAgICA9IDYwMDMsCi0gICAgICAgUHJvcF9IYXNDYW1lcmFDb21wb25l
bnRfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDQsCi0gICAgICAgUHJvcF9I
YXNEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0gNjAwNSwKLSAg
ICAgICBQcm9wX0hhc1ZpcnR1YWxEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0g
NjAwNiwKLQotICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZGVi
dWcgZGF0YSBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFByb3BfVmVuZG9yU3BlY2lm
aWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgICAgICAgICAgICAgICA9IDEwMDAwLAotICAgICAgIFBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDk5
OSwKLX07Ci0KLS8qKiBObyBzdHJpbmcgcHJvcGVydHkgd2lsbCBldmVyIGJlIGxvbmdlciB0aGFu
IHRoaXMgbGVuZ3RoICovCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFByb3BlcnR5U3Ry
aW5nU2l6ZSA9IDMyICogMTAyNDsKLQotLyoqIFVzZWQgdG8gcmV0dXJuIGVycm9ycyB0aGF0IG9j
Y3VyIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLiAqLwotZW51bSBFVHJhY2tlZFByb3BlcnR5RXJy
b3IKLXsKLSAgICAgICBUcmFja2VkUHJvcF9TdWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25n
RGV2aWNlQ2xhc3MgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAgVHJhY2tlZFByb3Bf
QnVmZmVyVG9vU21hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQs
IC8vIERyaXZlciBoYXMgbm90IHNldCB0aGUgcHJvcGVydHkgKGFuZCBtYXkgbm90IGV2ZXIpLgot
ICAgICAgIFRyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1LAotICAgICAgIFRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciAgICAgICAg
ICAgICAgPSA2LAotICAgICAgIFRyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURldmljZSAg
ICAgICA9IDcsCi0gICAgICAgVHJhY2tlZFByb3BfU3RyaW5nRXhjZWVkc01heGltdW1MZW5ndGgg
ICAgICAgPSA4LAotICAgICAgIFRyYWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDksIC8vIFRoZSBwcm9wZXJ0eSB2YWx1ZSBpc24ndCBrbm93biB5
ZXQsIGJ1dCBpcyBleHBlY3RlZCBzb29uLiBDYWxsIGFnYWluIGxhdGVyLgotICAgICAgIFRyYWNr
ZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAg
IFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICA9IDExLAot
fTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udHJvbCB3aGF0IHBhcnQgb2Yg
dGhlIHByb3ZpZGVkIHRleHR1cmUgd2lsbCBiZSB1c2VkIGluIHRoZQotKiBmcmFtZSBidWZmZXIu
ICovCi1zdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QKLXsKLSAgICAgICBmbG9hdCB1TWluLCB2TWlu
OwotICAgICAgIGZsb2F0IHVNYXgsIHZNYXg7Ci19OwotCi0vKiogQWxsb3dzIHNwZWNpZnlpbmcg
cG9zZSB1c2VkIHRvIHJlbmRlciBwcm92aWRlZCBzY2VuZSB0ZXh0dXJlIChpZiBkaWZmZXJlbnQg
ZnJvbSB2YWx1ZSByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMpLiAqLwotc3RydWN0IFZSVGV4dHVy
ZVdpdGhQb3NlX3QgOiBwdWJsaWMgVGV4dHVyZV90Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBt
RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOyAvLyBBY3R1YWwgcG9zZSB1c2VkIHRvIHJlbmRlciBz
Y2VuZSB0ZXh0dXJlcy4KLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRy
b2wgaG93IHNjZW5lIHRleHR1cmVzIGFyZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yIHdoZW4gY2Fs
bGluZyBTdWJtaXQuICovCi1lbnVtIEVWUlN1Ym1pdEZsYWdzCi17Ci0gICAgICAgLy8gU2ltcGxl
IHJlbmRlciBwYXRoLiBBcHAgc3VibWl0cyByZW5kZXJlZCBsZWZ0IGFuZCByaWdodCBleWUgaW1h
Z2VzIHdpdGggbm8gbGVucyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24gYXBwbGllZC4KLSAgICAgICBT
dWJtaXRfRGVmYXVsdCA9IDB4MDAsCi0KLSAgICAgICAvLyBBcHAgc3VibWl0cyBmaW5hbCBsZWZ0
IGFuZCByaWdodCBleWUgaW1hZ2VzIHdpdGggbGVucyBkaXN0b3J0aW9uIGFscmVhZHkgYXBwbGll
ZCAobGVucyBkaXN0b3J0aW9uIG1ha2VzIHRoZSBpbWFnZXMgYXBwZWFyCi0gICAgICAgLy8gYmFy
cmVsIGRpc3RvcnRlZCB3aXRoIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYXBwbGll
ZCkuIFRoZSBhcHAgd291bGQgaGF2ZSB1c2VkIHRoZSBkYXRhIHJldHVybmVkIGJ5Ci0gICAgICAg
Ly8gdnI6OklWUlN5c3RlbTo6Q29tcHV0ZURpc3RvcnRpb24oKSB0byBhcHBseSB0aGUgY29ycmVj
dCBkaXN0b3J0aW9uIHRvIHRoZSByZW5kZXJlZCBpbWFnZXMgYmVmb3JlIGNhbGxpbmcgU3VibWl0
KCkuCi0gICAgICAgU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAweDAxLAot
Ci0gICAgICAgLy8gSWYgdGhlIHRleHR1cmUgcG9pbnRlciBwYXNzZWQgaW4gaXMgYWN0dWFsbHkg
YSByZW5kZXJidWZmZXIgKGUuZy4gZm9yIE1TQUEgaW4gT3BlbkdMKSB0aGVuIHNldCB0aGlzIGZs
YWcuCi0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMHgwMiwKLQotICAgICAgIC8vIERv
IG5vdCB1c2UKLSAgICAgICBTdWJtaXRfUmVzZXJ2ZWQgPSAweDA0LAotCi0gICAgICAgLy8gU2V0
IHRvIGluZGljYXRlIHRoYXQgcFRleHR1cmUgaXMgYSBwb2ludGVyIHRvIGEgVlJUZXh0dXJlV2l0
aFBvc2VfdC4KLSAgICAgICBTdWJtaXRfVGV4dHVyZVdpdGhQb3NlID0gMHgwOCwKLX07Ci0KLS8q
KiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJDb21wb3Np
dG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3JlIGRl
c3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFf
dAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0gICAgICAgVmtEZXZp
Y2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5c2ljYWxE
ZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAgICAgICBWa1F1ZXVl
X1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7Ci0gICAg
ICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1wbGVDb3Vu
dDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1cmVzIHRv
IElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0ZG93
biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1Y3QgRDNEMTJUZXh0
dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOwotICAgICAg
IElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1f
bk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gb3IgdHJh
Y2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJTdGF0ZV9VbmRlZmlu
ZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJTdGF0ZV9TZWFyY2hp
bmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKLSAgICAgICBWUlN0
YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKLSAgICAgICBW
UlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAotICAgICAg
IFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUgdHlwZXMgb2YgZXZl
bnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBtZWFuIGZv
ciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewotICAgICAgIFZSRXZl
bnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgICAg
ICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVk
ICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgICAgICAg
ICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9JcGRDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0Vu
dGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAgICAgICBWUkV2ZW50
X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKLSAgICAgICBWUkV2
ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAgICAgICBWUkV2ZW50
X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKLSAgICAgICBWUkV2
ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJF
dmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCi0g
ICAgICAgVlJFdmVudF9XaXJlbGVzc0Rpc2Nvbm5lY3QgICAgICAgICAgICAgICAgICAgICA9IDEx
MiwKLSAgICAgICBWUkV2ZW50X1dpcmVsZXNzUmVjb25uZWN0ICAgICAgICAgICAgICAgICAgICAg
PSAxMTMsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJFdmVu
dF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAg
VlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAv
LyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAg
IFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAx
LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8g
ZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJF
dmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
NSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEg
aXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0
dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVD
QVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAg
ICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVudF9T
Y2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBU
aGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3Ig
ZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290
IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5n
ZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAg
VlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAg
ICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24g
dG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZSRXZl
bnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRv
IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwg
dmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZh
dGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRE
ZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRU
aHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0
ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2Fz
dCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VMb2Fk
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92
ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZp
bmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUg
ZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVy
IGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVw
YWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZS
T3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFu
IG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0
Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZlbnRf
T3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
R3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0
dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5z
aG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcg
b3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNjcmVl
bnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBj
b21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90
VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5
IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJl
ZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRp
b24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2ZW50
X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQg
YnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hv
dCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hi
b2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQg
dGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZSRXZl
bnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAgICBW
UkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYw
MCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFj
dGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQg
ICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3
MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCi0K
LSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAg
ICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAg
ICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFu
Z2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdz
SGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVudF9B
dWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAgVlJF
dmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAotICAg
ICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEs
Ci0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1
MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4
NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAg
ICAgID0gODU1LAotICAgICAgIFZSRXZlbnRfRW5hYmxlSG9tZUFwcFNldHRpbmdzSGF2ZUNoYW5n
ZWQgPSA4NTYsCi0KLSAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA5MDAsCi0KLSAgICAgICBWUkV2ZW50X01DSW1hZ2VVcGRhdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkV2
ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCAgICAgICAgICAgICAgICAgICAgID0gMTEwMCwKLSAg
ICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgICAgICAgICAgICAgICAgICAgICA9
IDExMDEsCi0KLSAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEyMDAsCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENoYXJJbnB1
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDEsCi0gICAgICAgVlJFdmVudF9LZXli
b2FyZERvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMiwgLy8gU2Vu
dCB3aGVuIERPTkUgYnV0dG9uIGNsaWNrZWQgb24ga2V5Ym9hcmQKLQotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCAgICAgICAgICAgICAgPSAxMzAwLAotICAgICAg
IFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCAgICAgICAgICAgICAgPSAxMzAx
LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCAgICAg
ICA9IDEzMDIsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTMwMywKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTWlt
ZVR5cGVMb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNCwKLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAg
ICAgICBWUkV2ZW50X1Byb2Nlc3NDb25uZWN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTMwNiwKLSAgICAgICBWUkV2ZW50X1Byb2Nlc3NEaXNjb25uZWN0ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNywKLQotICAgICAgIFZSRXZlbnRfQ29t
cG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biAgICAgICAgICAgICAgPSAxNDAwLAotICAgICAgIFZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gICAgICAgICAgICAgID0gMTQwMSwK
LSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzU2hvd24gICAgICAgICAg
ICAgID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlk
ZGVuICAgICAgID0gMTQxMSwKLQotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdGFydFZp
ZGVvU3RyZWFtICA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRl
b1N0cmVhbSAgID0gMTUwMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRl
b1N0cmVhbSAgPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJm
YWNlICAgID0gMTU1MCwKLQotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0VuYWJsZUNh
cHR1cmUgICAgICAgPSAxNjAwLAotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2Fi
bGVDYXB0dXJlICAgICAgID0gMTYwMSwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9G
aWRlbGl0eUxldmVsICAgICAgID0gMTYwMiwKLQotICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfQ2xvc2VkICAgICAgICAgICAgICAgICAgICAgPSAxNjUwLAotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlDbG9zZVJlcXVlc3RlZCAgICAgICA9IDE2NTEsCi0gICAgICAgCi0gICAgICAg
Ly8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBldmVudHMgaW4gdGhpcyByZXNl
cnZlZCByZWdpb24KLSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0
ICAgICAgID0gMTAwMDAsCi0gICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9F
bmQgICAgICAgICAgICAgID0gMTk5OTksCi19OwotCi0KLS8qKiBMZXZlbCBvZiBIbWQgYWN0aXZp
dHkgKi8KLS8vIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IG1lYW5zIHRoZSBkZXZpY2UgaXMgaW4g
dGhlIHByb2Nlc3Mgb2YgdGltaW5nIG91dC4KLS8vIEluVXNlID0gKCBrX0VEZXZpY2VBY3Rpdml0
eUxldmVsX1VzZXJJbnRlcmFjdGlvbiB8fCBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRl
cmFjdGlvbl9UaW1lb3V0ICkKLS8vIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNlcyB0cmFuc2l0aW9ucyBmcm9tIFN0YW5kYnkg
LT4gVXNlckludGVyYWN0aW9uIG9yIElkbGUgLT4gVXNlckludGVyYWN0aW9uLgotLy8gVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNl
cyB0cmFuc2l0aW9ucyBmcm9tIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IC0+IElkbGUKLWVudW0g
RURldmljZUFjdGl2aXR5TGV2ZWwKLXsgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9Vbmtub3duID0gLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9J
ZGxlID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBh
Y3Rpdml0eSBmb3IgdGhlIGxhc3QgMTAgc2Vjb25kcwotICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
QWN0aXZpdHkgKG1vdmVtZW50IG9yIHByb3ggc2Vuc29yKSBpcyBoYXBwZW5pbmcgbm93ICAgICAg
IAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQg
PSAyLCAgICAgICAgICAgICAgLy8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDAuNSBzZWNvbmRz
Ci0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGxlIGZvciBhdCBsZWFzdCA1IHNlY29u
ZHMgKGNvbmZpZ3VyYWJsZSBpbiBTZXR0aW5ncyAtPiBQb3dlciBNYW5hZ2VtZW50KQotfTsKLQot
Ci0vKiogVlIgY29udHJvbGxlciBidXR0b24gYW5kIGF4aXMgSURzICovCi1lbnVtIEVWUkJ1dHRv
bklkCi17Ci0gICAgICAga19FQnV0dG9uX1N5c3RlbSAgICAgICAgICAgICAgICAgICAgID0gMCwK
LSAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ICAgICAgID0gMSwKLSAgICAgICBrX0VC
dXR0b25fR3JpcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfTGVmdCAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAgICBrX0VCdXR0b25f
RFBhZF9VcCAgICAgICAgICAgICAgICAgICAgID0gNCwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9S
aWdodCAgICAgICAgICAgICAgPSA1LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX0Rvd24gICAgICAg
ICAgICAgICAgICAgICA9IDYsCi0gICAgICAga19FQnV0dG9uX0EgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNywKLSAgICAgICAKLSAgICAgICBrX0VCdXR0b25fUHJveGltaXR5
U2Vuc29yICAgPSAzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzNCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM2LAotCi0gICAgICAgLy8gYWxpYXNlcyBmb3Igd2VsbCBrbm93biBjb250
cm9sbGVycwotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkICAgICAgID0ga19FQnV0
dG9uX0F4aXMwLAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgICAgICAgPSBrX0VC
dXR0b25fQXhpczEsCi0KLSAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgICAgICAgPSBr
X0VCdXR0b25fR3JpcCwKLQotICAgICAgIGtfRUJ1dHRvbl9NYXggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2NAotfTsKLQotaW5saW5lIHVpbnQ2NF90IEJ1dHRvbk1hc2tGcm9tSWQoIEVW
UkJ1dHRvbklkIGlkICkgeyByZXR1cm4gMXVsbCA8PCBpZDsgfQotCi0vKiogdXNlZCBmb3IgY29u
dHJvbGxlciBidXR0b24gZXZlbnRzICovCi1zdHJ1Y3QgVlJFdmVudF9Db250cm9sbGVyX3QKLXsK
LSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUkJ1dHRvbklkIGVudW0KLX07Ci0KLQotLyoq
IHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotZW51
bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIFZSTW91c2VCdXR0b25fTGVmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEsCi0gICAgICAgVlJNb3VzZUJ1dHRvbl9S
aWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDIsCi0gICAgICAg
VlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDQs
Ci19OwotCi0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkg
c3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4LCB5OyAv
LyBjby1vcmRzIGFyZSBpbiBHTCBzcGFjZSwgYm90dG9tIGxlZnQgb2YgdGhlIHRleHR1cmUgaXMg
MCwwCi0gICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJNb3VzZUJ1dHRvbiBlbnVtCi19Owot
Ci0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIHdoZWVsIHNjcm9sbCBpbiBvdmVybGF5IHNw
YWNlICovCi1zdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAotewotICAgICAgIGZsb2F0IHhkZWx0YSwg
eWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBmcmFjdGlvbiBvZiB0aGUgcGFkIHRyYXZlcnNlZCBzaW5j
ZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEgZnVsbCBzd2lwZQotICAgICAgIHVpbnQzMl90IHJlcGVh
dENvdW50OwotfTsKLQotLyoqIHdoZW4gaW4gbW91c2UgaW5wdXQgbW9kZSB5b3UgY2FuIHJlY2Vp
dmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBhZCwgdGhlc2UgZXZlbnRzIGFyZSBvbmx5IHNlbnQgaWYg
dGhlIHVzZXJzIGZpbmdlcgotICAgaXMgb24gdGhlIHRvdWNocGFkIChvciBqdXN0IHJlbGVhc2Vk
IGZyb20gaXQpIAotKiovCi1zdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdAotewotICAgICAg
IC8vIHRydWUgaWYgdGhlIHVzZXJzIGZpbmdlciBpcyBkZXRlY3RlZCBvbiB0aGUgdG91Y2ggcGFk
Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLQotICAgICAgIC8vIEhvdyBsb25nIHRoZSBmaW5n
ZXIgaGFzIGJlZW4gZG93biBpbiBzZWNvbmRzCi0gICAgICAgZmxvYXQgZmxTZWNvbmRzRmluZ2Vy
RG93bjsKLQotICAgICAgIC8vIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0aGUgc3RhcnRpbmcgZmlu
Z2VyIHBvc2l0aW9uIChzbyB5b3UgY2FuIGRvIHNvbWUgYmFzaWMgc3dpcGUgc3R1ZmYpCi0gICAg
ICAgZmxvYXQgZlZhbHVlWEZpcnN0OwotICAgICAgIGZsb2F0IGZWYWx1ZVlGaXJzdDsKLQotICAg
ICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBzYW1wbGVkIGNvb3JkaW5hdGUgd2l0aG91dCBkZWFkem9u
aW5nCi0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBmVmFsdWVZUmF3Owot
fTsKLQotLyoqIG5vdGlmaWNhdGlvbiByZWxhdGVkIGV2ZW50cy4gRGV0YWlscyB3aWxsIHN0aWxs
IGNoYW5nZSBhdCB0aGlzIHBvaW50ICovCi1zdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAot
ewotICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOwotICAgICAgIHVpbnQzMl90IG5vdGlmaWNh
dGlvbklkOwotfTsKLQotLyoqIFVzZWQgZm9yIGV2ZW50cyBhYm91dCBwcm9jZXNzZXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAotewotICAgICAgIHVpbnQzMl90IHBpZDsKLSAgICAgICB1
aW50MzJfdCBvbGRQaWQ7Ci0gICAgICAgYm9vbCBiRm9yY2VkOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9PdmVybGF5
X3QKLXsKLSAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9TdGF0dXNf
dAotewotICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRlOyAvLyBFVlJTdGF0ZSBlbnVtCi19Owot
Ci0vKiogVXNlZCBmb3Iga2V5Ym9hcmQgZXZlbnRzICoqLwotc3RydWN0IFZSRXZlbnRfS2V5Ym9h
cmRfdAotewotICAgICAgIGNoYXIgY05ld0lucHV0WzhdOyAgICAgICAvLyBVcCB0byAxMSBieXRl
cyBvZiBuZXcgaW5wdXQKLSAgICAgICB1aW50NjRfdCB1VXNlclZhbHVlOyAgICAgICAvLyBQb3Nz
aWJsZSBmbGFncyBhYm91dCB0aGUgbmV3IGlucHV0Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9JcGRf
dAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0NoYXBl
cm9uZV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKLSAgICAgICB1
aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Ci19OwotCi0vKiogTm90IGFjdHVhbGx5IHVzZWQg
Zm9yIGFueSBldmVudHMgKi8KLXN0cnVjdCBWUkV2ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1
aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWludDY0X3QgcmVzZXJ2ZWQxOwotfTsKLQotc3Ry
dWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRl
bGl0eUxldmVsOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Ci17
Ci0gICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9T
Y3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAgICAgdWludDMyX3Qg
dHlwZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Ci17Ci0gICAg
ICAgZmxvYXQgcHJvZ3Jlc3M7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5j
aF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IHVuQXJnc0hhbmRs
ZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fTsKLQotc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90
IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOyAvLyB2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlIGVudW0KLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKLXsKLSAgICAgICBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRhaW5lcjsKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3A7Ci19OwotCi0vKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1V
U1QgbWFudWFsbHkgdXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5ICovCi10eXBlZGVmIHVuaW9u
Ci17Ci0gICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOwotICAgICAgIFZSRXZlbnRf
Q29udHJvbGxlcl90IGNvbnRyb2xsZXI7Ci0gICAgICAgVlJFdmVudF9Nb3VzZV90IG1vdXNlOwot
ICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOwotICAgICAgIFZSRXZlbnRfUHJvY2Vzc190
IHByb2Nlc3M7Ci0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRpb247Ci0g
ICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1N0YXR1c190
IHN0YXR1czsKLSAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7Ci0gICAgICAgVlJF
dmVudF9JcGRfdCBpcGQ7Ci0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJvbmU7Ci0g
ICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7Ci0gICAgICAg
VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7Ci0gICAgICAgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKLSAgICAgICBWUkV2ZW50X1Nj
cmVlbnNob3RfdCBzY3JlZW5zaG90OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3Qgc2NyZWVuc2hvdFByb2dyZXNzOwotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hf
dCBhcHBsaWNhdGlvbkxhdW5jaDsKLSAgICAgICBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNl
X3QgY2FtZXJhU3VyZmFjZTsKLSAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QgbWVzc2Fn
ZU92ZXJsYXk7Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eV90IHByb3BlcnR5OwotfSBWUkV2ZW50
X0RhdGFfdDsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBv
biBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBhdGliaWxpdHkuIAotI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIg
dG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90Ci17Ci0gICAg
ICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAgICAgIFRyYWNr
ZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9hdCBldmVudEFn
ZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0
cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7
Ci19OwotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSNw
cmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0vKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRvIHRo
ZSBzdGVuY2lsIChvciBkZXB0aCkgYnVmZmVyIHRvIHBlcmZvcm0gCi0qIGVhcmx5IHN0ZW5jaWwg
KG9yIGRlcHRoKSBraWxscyBvZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0aGUg
SE1ELgotKiBUaGlzIG1lc2ggZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJlIGhp
ZGRlbiBhZnRlciBkaXN0b3J0aW9uLiAKLSoKLSogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92aWRl
IGEgdmlzaWJsZSBhcmVhIG1lc2ggcFZlcnRleERhdGEgd2lsbCBiZQotKiBOVUxMIGFuZCB1blRy
aWFuZ2xlQ291bnQgd2lsbCBiZSAwLiAqLwotc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsKLSAg
ICAgICBjb25zdCBIbWRWZWN0b3IyX3QgKnBWZXJ0ZXhEYXRhOwotICAgICAgIHVpbnQzMl90IHVu
VHJpYW5nbGVDb3VudDsKLX07Ci0KLQotZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCi17Ci0gICAg
ICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAotICAgICAgIGtfZUhpZGRlbkFyZWFN
ZXNoX0ludmVyc2UgPSAxLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwK
LQotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19OwotCi0KLS8qKiBJZGVudGlm
aWVzIHdoYXQga2luZCBvZiBheGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4uIFJl
YWQgdGhpcyB0eXBlIAotKiB3aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmljZUlu
ZGV4LCBQcm9wX0F4aXMwVHlwZV9JbnQzMiArIG4gKTsKLSovCi1lbnVtIEVWUkNvbnRyb2xsZXJB
eGlzVHlwZQotewotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAotICAgICAgIGtf
ZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkID0gMSwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19K
b3lzdGljayA9IDIsCi0gICAgICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8vIEFu
YWxvZyB0cmlnZ2VyIGRhdGEgaXMgaW4gdGhlIFggYXhpcwotfTsKLQotCi0vKiogY29udGFpbnMg
aW5mb3JtYXRpb24gYWJvdXQgb25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KLXN0cnVjdCBW
UkNvbnRyb2xsZXJBeGlzX3QKLXsKLSAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAtMS4w
IHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAgdG8g
MS4wIGZvciB0cmlnZ2VycyB3ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCi0gICAgICAgZmxvYXQg
eTsgLy8gUmFuZ2VzIGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFk
cy4gSXMgYWx3YXlzIDAuMCBmb3IgdHJpZ2dlcnMuCi19OwotCi0KLS8qKiB0aGUgbnVtYmVyIG9m
IGF4ZXMgaW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgKi8KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5h
bGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBh
dGliaWxpdHkuIAotI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogSG9sZHMg
YWxsIHRoZSBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLwot
c3RydWN0IFZSQ29udHJvbGxlclN0YXRlMDAxX3QKLXsKLSAgICAgICAvLyBJZiBwYWNrZXQgbnVt
IG1hdGNoZXMgdGhhdCBvbiB5b3VyIHByaW9yIGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3Rh
dGUgaGFzbid0IGJlZW4gY2hhbmdlZCBzaW5jZSAKLSAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBh
bmQgdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIGl0Ci0gICAgICAgdWludDMyX3QgdW5QYWNr
ZXROdW07Ci0KLSAgICAgICAvLyBiaXQgZmxhZ3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVz
ZSBCdXR0b25NYXNrRnJvbUlkIHRvIHR1cm4gYW4gSUQgaW50byBhIG1hc2sKLSAgICAgICB1aW50
NjRfdCB1bEJ1dHRvblByZXNzZWQ7Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOwot
Ci0gICAgICAgLy8gQXhpcyBkYXRhIGZvciB0aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMK
LSAgICAgICBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgXTsKLX07Ci0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLSNwcmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0KLXR5cGVkZWYgVlJDb250cm9sbGVy
U3RhdGUwMDFfdCBWUkNvbnRyb2xsZXJTdGF0ZV90OwotCi0KLS8qKiBkZXRlcm1pbmVzIGhvdyB0
byBwcm92aWRlIG91dHB1dCB0byB0aGUgYXBwbGljYXRpb24gb2YgdmFyaW91cyBldmVudCBwcm9j
ZXNzaW5nIGZ1bmN0aW9ucy4gKi8KLWVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX07Ci0KLQotCi0vKiogQ29sbGlzaW9u
IEJvdW5kcyBTdHlsZSAqLwotZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKLXsKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBDT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0lOVEVSTUVESUFURSwKLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NR
VUFSRVMsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCwKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUsCi0KLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0NPVU5UCi19OwotCi0vKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjdXN0b21pemUg
aG93IHRoZSBvdmVybGF5IGFwcGVhcnMgaW4gdGhlIGNvbXBvc2l0b3IgKi8KLXN0cnVjdCBDb21w
b3NpdG9yX092ZXJsYXlTZXR0aW5ncwotewotICAgICAgIHVpbnQzMl90IHNpemU7IC8vIHNpemVv
ZihDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncykKLSAgICAgICBib29sIGN1cnZlZCwgYW50aWFs
aWFzOwotICAgICAgIGZsb2F0IHNjYWxlLCBkaXN0YW5jZSwgYWxwaGE7Ci0gICAgICAgZmxvYXQg
dU9mZnNldCwgdk9mZnNldCwgdVNjYWxlLCB2U2NhbGU7Ci0gICAgICAgZmxvYXQgZ3JpZERpdnMs
IGdyaWRXaWR0aCwgZ3JpZFNjYWxlOwotICAgICAgIEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOwot
fTsKLQotLyoqIHVzZWQgdG8gcmVmZXIgdG8gYSBzaW5nbGUgVlIgb3ZlcmxheSAqLwotdHlwZWRl
ZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IFZST3ZlcmxheUhh
bmRsZV90IGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9IDA7Ci0KLS8qKiBFcnJvcnMgdGhhdCBj
YW4gb2NjdXIgYXJvdW5kIFZSIG92ZXJsYXlzICovCi1lbnVtIEVWUk92ZXJsYXlFcnJvcgotewot
ICAgICAgIFZST3ZlcmxheUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDAsCi0KLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSAg
ICAgICAgICAgICAgICAgICAgID0gMTAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZEhh
bmRsZSAgICAgICAgICAgICAgICAgICAgID0gMTEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUGVy
bWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTIsCi0gICAgICAgVlJPdmVybGF5
RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQgICAgICAgICAgICAgID0gMTMsIC8vIE5vIG1vcmUg
b3ZlcmxheXMgY291bGQgYmUgY3JlYXRlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBhbHJl
YWR5IGV4aXN0Ci0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdWaXNpYmlsaXR5VHlwZSAgICAg
ICAgICAgICAgPSAxNCwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlUb29Mb25nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTUsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKLSAgICAgICBWUk92ZXJsYXlFcnJv
cl9LZXlJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNywKLSAgICAg
ICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUgICAgICAgICAgICAgID0gMTgsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNrZWREZXZpY2UgICAgICAgICAgICAgID0g
MTksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciAgICAgICAgICAgICAg
ICAgICAgID0gMjAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVGh1bWJuYWlsQ2FudEJlRGVzdHJv
eWVkICAgICAgID0gMjEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCAgICAg
ICAgICAgICAgICAgICAgID0gMjIsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgID0gMjMsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxp
ZFRleHR1cmUgICAgICAgICAgICAgICAgICAgICA9IDI0LAotICAgICAgIFZST3ZlcmxheUVycm9y
X1VuYWJsZVRvTG9hZEZpbGUgICAgICAgICAgICAgICAgICAgICA9IDI1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlICAgICAgICAgICAgICA9IDI2LAotICAgICAg
IFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
NywKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMgICAgICAgPSAy
OSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9CYWRNYXNrUHJpbWl0aXZlICAgICAgICAgICAgICAg
ICAgICAgPSAzMCwKLX07Ci0KLS8qKiBlbnVtIHZhbHVlcyB0byBwYXNzIGluIHRvIFZSX0luaXQg
dG8gaWRlbnRpZnkgd2hldGhlciB0aGUgYXBwbGljYXRpb24gd2lsbCAKLSogZHJhdyBhIDNEIHNj
ZW5lLiAqLwotZW51bSBFVlJBcHBsaWNhdGlvblR5cGUKLXsKLSAgICAgICBWUkFwcGxpY2F0aW9u
X090aGVyID0gMCwgICAgICAgICAgICAgIC8vIFNvbWUgb3RoZXIga2luZCBvZiBhcHBsaWNhdGlv
biB0aGF0IGlzbid0IGNvdmVyZWQgYnkgdGhlIG90aGVyIGVudHJpZXMgCi0gICAgICAgVlJBcHBs
aWNhdGlvbl9TY2VuZSAgICAgICA9IDEsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiB3aWxs
IHN1Ym1pdCAzRCBmcmFtZXMgCi0gICAgICAgVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwgICAg
ICAgICAgICAgIC8vIEFwcGxpY2F0aW9uIG9ubHkgaW50ZXJhY3RzIHdpdGggb3ZlcmxheXMKLSAg
ICAgICBWUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLCAgICAgICAvLyBBcHBsaWNhdGlvbiBz
aG91bGQgbm90IHN0YXJ0IFN0ZWFtVlIgaWYgaXQncyBub3QgYWxyZWFkeSBydW5uaW5nLCBhbmQg
c2hvdWxkIG5vdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8ga2VlcCBpdCBydW5uaW5nIGlmIGV2ZXJ5dGhpbmcgZWxzZSBx
dWl0cy4KLSAgICAgICBWUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LCAgICAgICAgICAgICAgLy8g
SW5pdCBzaG91bGQgbm90IHRyeSB0byBsb2FkIGFueSBkcml2ZXJzLiBUaGUgYXBwbGljYXRpb24g
bmVlZHMgYWNjZXNzIHRvIHV0aWxpdHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludGVyZmFjZXMgKGxpa2UgSVZSU2V0
dGluZ3MgYW5kIElWUkFwcGxpY2F0aW9ucykgYnV0IG5vdCBoYXJkd2FyZS4KLSAgICAgICBWUkFw
cGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsICAgICAgIC8vIFJlc2VydmVkIGZvciB2cm1vbml0b3IK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LC8vIFJlc2VydmVkIGZvciBT
dGVhbQotICAgICAgIFZSQXBwbGljYXRpb25fQm9vdHN0cmFwcGVyID0gNywgLy8gU3RhcnQgdXAg
U3RlYW1WUgotCi0gICAgICAgVlJBcHBsaWNhdGlvbl9NYXgKLX07Ci0KLQotLyoqIGVycm9yIGNv
ZGVzIGZvciBmaXJtd2FyZSAqLwotZW51bSBFVlJGaXJtd2FyZUVycm9yCi17Ci0gICAgICAgVlJG
aXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIFZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0g
MSwKLSAgICAgICBWUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCi19OwotCi0KLS8qKiBlcnJvciBj
b2RlcyBmb3Igbm90aWZpY2F0aW9ucyAqLwotZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgotewot
ICAgICAgIFZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE5vdGlmaWNhdGlvbklkID0gMTAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfTm90aWZpY2F0aW9uUXVldWVGdWxsID0gMTAxLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgVlJOb3RpZmljYXRpb25F
cnJvcl9TeXN0ZW1XaXRoVXNlclZhbHVlQWxyZWFkeUV4aXN0cyA9IDEwMywKLX07Ci0KLQotLyoq
IGVycm9yIGNvZGVzIHJldHVybmVkIGJ5IFZyX0luaXQgKi8KLQotLy8gUGxlYXNlIGFkZCBhZGVx
dWF0ZSBlcnJvciBkZXNjcmlwdGlvbiB0byBodHRwczovL2RldmVsb3Blci52YWx2ZXNvZnR3YXJl
LmNvbS93L2luZGV4LnBocD90aXRsZT1DYXRlZ29yeTpTdGVhbVZSSGVscAotZW51bSBFVlJJbml0
RXJyb3IKLXsKLSAgICAgICBWUkluaXRFcnJvcl9Ob25lICAgICAgID0gMCwKLSAgICAgICBWUklu
aXRFcnJvcl9Vbmtub3duID0gMSwKLQotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0
aW9uTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgICAgICAgICA9IDEwMSwKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgICAgICAgICAgICAgICAg
ICAgICA9IDEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9GYWN0b3J5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAg
VlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTEwLAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUgICAgICAgICAgICAgID0gMTEzLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTQsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9SZXRyeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8gVXNlZCBp
bnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NiwgLy8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNpbGVudGx5IGV4aXQuIFRoZSB1
c2VyIGNhbmNlbGVkIGFwcCBzdGFydHVwCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVy
QXBwTGF1bmNoaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMTcsIAotICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTE4LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTksCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgICAgICAgICAgICAg
ID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0
b3IgICAgICAgICAgICAgID0gMTIyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxh
YmxlVG9VdGlsaXR5QXBwcyAgICAgICAgICAgICAgPSAxMjMsCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcm5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEyNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5v
dEZvdW5kUHJlc2VuY2VGYWlsZWQgICAgICAgICAgICAgICA9IDEyNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTI3LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgID0gMTI4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJX
YXRjaGRvZ05vdFN1cHBvcnRlZCAgICAgICA9IDEyOSwgCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICAgICAgICAgICAgICAgICAgICAgPSAxMzAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAgICAgICAgICAg
ICAgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyAgICAgICAgICAgICAgPSAxMzIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMzMsCi0gICAgICAgVlJJbml0RXJy
b3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgID0gMTM0LAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTM1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1
cEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTM2LAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfUmVib290aW5nQnVzeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzcs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMzgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVJl
Y292ZXJ5QnVzeSAgICAgICAgICAgICAgICAgICAgID0gMTM5LAotCi0KLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDAsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKLSAgICAgICBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIs
Ci0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDMsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZEluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDUsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDYsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X0NhbGlicmF0aW9uSW52YWxpZCAgICAgICAgICAgICAgICAgICAgID0gMjA3LAotICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9
IDIwOCwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgLy8gVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RG
b3VuZEFmdGVyRml4ID0gMjEwLCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyByZWFz
b25zCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgICAg
ICAgICAgICAgID0gMjExLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWly
cm9yZWQgICAgICAgICAgICAgICAgICAgICA9IDIxMiwKLQotICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwLAotICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0
RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDMsCi0gICAgICAg
VlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAzMDQsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9
IDMwNiwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVz
cG9uc2UgPSAzMDcsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11
bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCi0KLSAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDAsCi0gICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgICAgICAgPSA0MDEsCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlICAgICAg
ID0gNDAyLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQg
ICAgICAgICAgICAgID0gNDAzLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVu
c2hvdHNJbml0RmFpbGVkICAgICAgID0gNDA0LAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2UgICAgICAgICAgICAgID0gNDA1LAotCi0gICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lICAg
ICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAx
LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAgIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDEx
MDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRG
aXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwK
LSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVz
ZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAs
Ci0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRy
ZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25m
aWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJbml0
RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwK
LSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0gICAg
ICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVf
Q3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVtIEVW
UlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0gICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAot
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0g
MTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAg
ICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJh
bWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRP
ZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKLSAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEw
OCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAg
ICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdM
VGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRU
ZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9O
b0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVudW0g
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNh
bWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAgICAg
IFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAg
ICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9u
IHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2Vz
IHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3Rv
cnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxp
ZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdp
b25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWludDY0
X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJB
X0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0IENh
bWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0gICAg
ICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVzCi10
eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKLSNp
ZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJfSU5U
RVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5kaWYK
LQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRl
ZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9JTlRF
UkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQot
I2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vsc2UK
LSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5lIFZS
X0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBfSU5D
TFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4KLSMg
ZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIg
KSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNkZWZp
bmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIg
KQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQotI2Rl
ZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKLSNk
ZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCi0j
ZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFS
QU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJSQVlf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsi
ICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRS
KCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZSX0JV
RkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5U
RVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09VVF9T
VFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAj
Q09VTlRFUiAiOyIgKQotCi0vLyBpdnJzeXN0ZW0uaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUlN5c3RlbQotewotcHVibGljOgotCi0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBEaXNwbGF5IE1ldGhvZHMKLSAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBTdWdnZXN0
ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRpc3Rv
cnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UmVjb21tZW5kZWRS
ZW5kZXJUYXJnZXRTaXplKCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgLyoqIFRoZSBwcm9qZWN0aW9uIG1hdHJpeCBmb3IgdGhlIHNwZWNpZmll
ZCBleWUgKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDQ0X3QgR2V0UHJvamVjdGlvbk1hdHJp
eCggRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclogKSA9IDA7Ci0KLSAgICAg
ICAvKiogVGhlIGNvbXBvbmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHByb2plY3Rp
b24gbWF0cml4IGluIGNhc2UgeW91cgotICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRQ
cm9qZWN0aW9uUmF3KCBFVlJFeWUgZUV5ZSwgZmxvYXQgKnBmTGVmdCwgZmxvYXQgKnBmUmlnaHQs
IGZsb2F0ICpwZlRvcCwgZmxvYXQgKnBmQm90dG9tICkgPSAwOwotCi0gICAgICAgLyoqIEdldHMg
dGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlvbiBmdW5jdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBl
eWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZyb20gMCwwIGluIAotICAgICAgICogdGhlIHVwcGVy
IGxlZnQgb2YgdGhhdCBleWUncyB2aWV3cG9ydCBhbmQgMSwxIGluIHRoZSBsb3dlciByaWdodCBv
ZiB0aGF0IGV5ZSdzIHZpZXdwb3J0LgotICAgICAgICogUmV0dXJucyB0cnVlIGZvciBzdWNjZXNz
LiBPdGhlcndpc2UsIHJldHVybnMgZmFsc2UsIGFuZCBkaXN0b3J0aW9uIGNvb3JkaW5hdGVzIGFy
ZSBub3Qgc3VpdGFibGUuICovCi0gICAgICAgdmlydHVhbCBib29sIENvbXB1dGVEaXN0b3J0aW9u
KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWLCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNf
dCAqcERpc3RvcnRpb25Db29yZGluYXRlcyApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSB0cmFuc2Zvcm0gZnJvbSBleWUgc3BhY2UgdG8gdGhlIGhlYWQgc3BhY2UuIEV5ZSBzcGFjZSBp
cyB0aGUgcGVyLWV5ZSBmbGF2b3Igb2YgaGVhZAotICAgICAgICogc3BhY2UgdGhhdCBwcm92aWRl
cyBzdGVyZW8gZGlzcGFyaXR5LiBJbnN0ZWFkIG9mIE1vZGVsICogVmlldyAqIFByb2plY3Rpb24g
dGhlIHNlcXVlbmNlIGlzIE1vZGVsICogVmlldyAqIEV5ZV4tMSAqIFByb2plY3Rpb24uIAotICAg
ICAgICogTm9ybWFsbHkgVmlldyBhbmQgRXllXi0xIHdpbGwgYmUgbXVsdGlwbGllZCB0b2dldGhl
ciBhbmQgdHJlYXRlZCBhcyBWaWV3IGluIHlvdXIgYXBwbGljYXRpb24uIAotICAgICAgICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9ybSggRVZSRXll
IGVFeWUgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsYXBzZWQg
c2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZWNvcmRlZCB2c3luYyBldmVudC4gVGhpcyAKLSAgICAg
ICAqICAgICAgIHdpbGwgY29tZSBmcm9tIGEgdnN5bmMgdGltZXIgZXZlbnQgaW4gdGhlIHRpbWVy
IGlmIHBvc3NpYmxlIG9yIGZyb20gdGhlIGFwcGxpY2F0aW9uLXJlcG9ydGVkCi0gICAgICAgKiAg
IHRpbWUgaWYgdGhhdCBpcyBub3QgYXZhaWxhYmxlLiBJZiBubyB2c3luYyB0aW1lcyBhcmUgYXZh
aWxhYmxlIHRoZSBmdW5jdGlvbiB3aWxsIAotICAgICAgICogICByZXR1cm4gemVybyBmb3IgdnN5
bmMgdGltZSBhbmQgZnJhbWUgY291bnRlciBhbmQgcmV0dXJuIGZhbHNlIGZyb20gdGhlIG1ldGhv
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0VGltZVNpbmNlTGFzdFZzeW5jKCBmbG9hdCAq
cGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICpwdWxGcmFtZUNvdW50ZXIgKSA9IDA7
Ci0KLSAgICAgICAvKiogW0QzRDkgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIg
aW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIENyZWF0ZURldmljZSB0byBzZXQg
dXAgRDNEOSBpbiBzdWNoCi0gICAgICAgKiBhIHdheSB0aGF0IGl0IGNhbiBnbyBmdWxsIHNjcmVl
biBleGNsdXNpdmUgb24gdGhlIEhNRC4gUmV0dXJucyAtMSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Iu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0RDNEOUFkYXB0ZXJJbmRleCgp
ID0gMDsKLQotICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhl
IGFkYXB0ZXIgaW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVy
cyB0byBjcmVhdGUgdGhlIGRldmljZSAKLSAgICAgICAqIGFuZCBzd2FwIGNoYWluIGluIERYMTAg
YW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgaW5kZXggd2lsbCBiZSBzZXQgdG8gLTEu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91dHB1dEluZm8oIGludDMy
X3QgKnBuQWRhcHRlckluZGV4ICkgPSAwOwotICAgICAgIAotICAgICAgIC8qKgotICAgICAgICAq
IFJldHVybnMgcGxhdGZvcm0tIGFuZCB0ZXh0dXJlLXR5cGUgc3BlY2lmaWMgYWRhcHRlciBpZGVu
dGlmaWNhdGlvbiBzbyB0aGF0IGFwcGxpY2F0aW9ucyBhbmQgdGhlCi0gICAgICAgICogY29tcG9z
aXRvciBhcmUgY3JlYXRpbmcgdGV4dHVyZXMgYW5kIHN3YXAgY2hhaW5zIG9uIHRoZSBzYW1lIEdQ
VS4gSWYgYW4gZXJyb3Igb2NjdXJzIHRoZSBkZXZpY2UKLSAgICAgICAgKiB3aWxsIGJlIHNldCB0
byAwLgotICAgICAgICAqIHBJbnN0YW5jZSBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBp
cyByZXF1aXJlZCBvbmx5IHdoZW4gdGV4dHVyZVR5cGUgaXMgVGV4dHVyZVR5cGVfVnVsa2FuLgot
ICAgICAgICAqIFtEM0QxMC8xMS8xMiBPbmx5IChEM0Q5IE5vdCBTdXBwb3J0ZWQpXQotICAgICAg
ICAqICBSZXR1cm5zIHRoZSBhZGFwdGVyIExVSUQgdGhhdCBpZGVudGlmaWVzIHRoZSBHUFUgYXR0
YWNoZWQgdG8gdGhlIEhNRC4gVGhlIHVzZXIgc2hvdWxkCi0gICAgICAgICogIGVudW1lcmF0ZSBh
bGwgYWRhcHRlcnMgdXNpbmcgSURYR0lGYWN0b3J5OjpFbnVtQWRhcHRlcnMgYW5kIElEWEdJQWRh
cHRlcjo6R2V0RGVzYyB0byBmaW5kCi0gICAgICAgICogIHRoZSBhZGFwdGVyIHdpdGggdGhlIG1h
dGNoaW5nIExVSUQsIG9yIHVzZSBJRFhHSUZhY3Rvcnk0OjpFbnVtQWRhcHRlckJ5THVpZC4KLSAg
ICAgICAgKiAgVGhlIGRpc2NvdmVyZWQgSURYR0lBZGFwdGVyIHNob3VsZCBiZSB1c2VkIHRvIGNy
ZWF0ZSB0aGUgZGV2aWNlIGFuZCBzd2FwIGNoYWluLgotICAgICAgICAqIFtWdWxrYW4gT25seV0K
LSAgICAgICAgKiAgUmV0dXJucyB0aGUgVmtQaHlzaWNhbERldmljZSB0aGF0IHNob3VsZCBiZSB1
c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKiAgcEluc3RhbmNlIG11c3QgYmUgdGhl
IGluc3RhbmNlIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVzZSB0byBxdWVyeSBmb3IgdGhlIFZrUGh5
c2ljYWxEZXZpY2UuICBUaGUgYXBwbGljYXRpb24KLSAgICAgICAgKiAgbXVzdCBjcmVhdGUgdGhl
IFZrSW5zdGFuY2Ugd2l0aCBleHRlbnNpb25zIHJldHVybmVkIGJ5IElWUkNvbXBvc2l0b3I6Okdl
dFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkIGVuYWJsZWQuCi0gICAgICAgICogW21h
Y09TIE9ubHldCi0gICAgICAgICogIFJldHVybnMgYW4gaWQ8TVRMRGV2aWNlPiB0aGF0IHNob3Vs
ZCBiZSB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0T3V0cHV0RGV2aWNlKCB1aW50NjRfdCAqcG5EZXZpY2UsIEVUZXh0dXJlVHlwZSB0
ZXh0dXJlVHlwZSwgVmtJbnN0YW5jZV9UICpwSW5zdGFuY2UgPSBudWxscHRyICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
RGlzcGxheSBNb2RlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBVc2UgdG8gZGV0ZXJtaW5lIGlmIHRoZSBoZWFkc2V0
IGRpc3BsYXkgaXMgcGFydCBvZiB0aGUgZGVza3RvcCAoaS5lLiBleHRlbmRlZCkgb3IgaGlkZGVu
IChpLmUuIGRpcmVjdCBtb2RlKS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25E
ZXNrdG9wKCkgPSAwOwotCi0gICAgICAgLyoqIFNldCB0aGUgZGlzcGxheSB2aXNpYmlsaXR5ICh0
cnVlID0gZXh0ZW5kZWQsIGZhbHNlID0gZGlyZWN0IG1vZGUpLiAgUmV0dXJuIHZhbHVlIG9mIHRy
dWUgaW5kaWNhdGVzIHRoYXQgdGhlIGNoYW5nZSB3YXMgc3VjY2Vzc2Z1bC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoIGJvb2wgYklzVmlzaWJsZU9uRGVza3Rv
cCApID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgIC8vIFRyYWNraW5nIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBUaGUgcG9zZSB0aGF0IHRoZSB0cmFj
a2VyIHRoaW5rcyB0aGF0IHRoZSBITUQgd2lsbCBiZSBpbiBhdCB0aGUgc3BlY2lmaWVkIG51bWJl
ciBvZiBzZWNvbmRzIGludG8gdGhlIAotICAgICAgICogZnV0dXJlLiBQYXNzIDAgdG8gZ2V0IHRo
ZSBzdGF0ZSBhdCB0aGUgaW5zdGFudCB0aGUgbWV0aG9kIGlzIGNhbGxlZC4gTW9zdCBvZiB0aGUg
dGltZSB0aGUgYXBwbGljYXRpb24gc2hvdWxkCi0gICAgICAgKiBjYWxjdWxhdGUgdGhlIHRpbWUg
dW50aWwgdGhlIHBob3RvbnMgd2lsbCBiZSBlbWl0dGVkIGZyb20gdGhlIGRpc3BsYXkgYW5kIHBh
c3MgdGhhdCB0aW1lIGludG8gdGhlIG1ldGhvZC4KLSAgICAgICAqCi0gICAgICAgKiBUaGlzIGlz
IHJvdWdobHkgYW5hbG9nb3VzIHRvIHRoZSBpbnZlcnNlIG9mIHRoZSB2aWV3IG1hdHJpeCBpbiBt
b3N0IGFwcGxpY2F0aW9ucywgdGhvdWdoIAotICAgICAgICogbWFueSBnYW1lcyB3aWxsIG5lZWQg
dG8gZG8gc29tZSBhZGRpdGlvbmFsIHJvdGF0aW9uIG9yIHRyYW5zbGF0aW9uIG9uIHRvcCBvZiB0
aGUgcm90YXRpb24KLSAgICAgICAqIGFuZCB0cmFuc2xhdGlvbiBwcm92aWRlZCBieSB0aGUgaGVh
ZCBwb3NlLgotICAgICAgICoKLSAgICAgICAqIEZvciBkZXZpY2VzIHdoZXJlIGJQb3NlSXNWYWxp
ZCBpcyB0cnVlIHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBwb3NlIHRvIHBvc2l0aW9uIHRo
ZSBkZXZpY2UKLSAgICAgICAqIGluIHF1ZXN0aW9uLiBUaGUgcHJvdmlkZWQgYXJyYXkgY2FuIGJl
IGFueSBzaXplIHVwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQuIAotICAgICAgICoKLSAg
ICAgICAqIFNlYXRlZCBleHBlcmllbmNlcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIFRy
YWNraW5nVW5pdmVyc2VTZWF0ZWQgYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUKLSAgICAgICAq
IHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlLiBTdGFuZGluZyBleHBlcmllbmNlcyBzaG91bGQgY2Fs
bCB0aGlzIG1ldGhvZCB3aXRoIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyAKLSAgICAgICAqIGFu
ZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZlIHRvIHRoZSBDaGFwZXJvbmUgUGxheSBBcmVhLiBUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIHNob3VsZCAKLSAgICAgICAqIHByb2JhYmx5
IG5vdCBiZSB1c2VkIHVubGVzcyB0aGUgYXBwbGljYXRpb24gaXMgdGhlIENoYXBlcm9uZSBjYWxp
YnJhdGlvbiB0b29sIGl0c2VsZiwgYnV0IHdpbGwgcHJvdmlkZQotICAgICAgICogcG9zZXMgcmVs
YXRpdmUgdG8gdGhlIGhhcmR3YXJlLXNwZWNpZmljIGNvb3JkaW5hdGUgc3lzdGVtIGluIHRoZSBk
cml2ZXIuCi0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RGV2aWNlVG9BYnNvbHV0
ZVRyYWNraW5nUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBWUl9BUlJBWV9DT1VOVCh1blRyYWNrZWRE
ZXZpY2VQb3NlQXJyYXlDb3VudCkgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQ
b3NlQXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFNldHMgdGhlIHplcm8gcG9zZSBmb3IgdGhlIHNlYXRlZCB0cmFja2VyIGNv
b3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB5YXcgb2YgdGhlIEhN
RC4gQWZ0ZXIgCi0gICAgICAgKiBSZXNldFNlYXRlZFplcm9Qb3NlIGFsbCBHZXREZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmdQb3NlIGNhbGxzIHRoYXQgcGFzcyBUcmFja2luZ1VuaXZlcnNlU2VhdGVk
IGFzIHRoZSBvcmlnaW4gCi0gICAgICAgKiB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoaXMgbmV3IHpl
cm8gcG9zZS4gVGhlIG5ldyB6ZXJvIGNvb3JkaW5hdGUgc3lzdGVtIHdpbGwgbm90IGNoYW5nZSB0
aGUgZmFjdCB0aGF0IHRoZSBZIGF4aXMgCi0gICAgICAgKiBpcyB1cCBpbiB0aGUgcmVhbCB3b3Js
ZCwgc28gdGhlIG5leHQgcG9zZSByZXR1cm5lZCBmcm9tIEdldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UgYWZ0ZXIgYSBjYWxsIHRvIAotICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBt
YXkgbm90IGJlIGV4YWN0bHkgYW4gaWRlbnRpdHkgbWF0cml4LgotICAgICAgICoKLSAgICAgICAq
IE5PVEU6IFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSB1c2VyJ3MgcHJldmlvdXNseSBzYXZl
ZCBzZWF0ZWQgemVybyBwb3NlIGFuZCBzaG91bGQgb25seSBiZSBjYWxsZWQgYXMgdGhlIHJlc3Vs
dCBvZiBhIHVzZXIgYWN0aW9uLiAKLSAgICAgICAqIFVzZXJzIGFyZSBhbHNvIGFibGUgdG8gc2V0
IHRoZWlyIHNlYXRlZCB6ZXJvIHBvc2UgdmlhIHRoZSBPcGVuVlIgRGFzaGJvYXJkLgotICAgICAg
ICoqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZXNldFNlYXRlZFplcm9Qb3NlKCkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIHRoZSBzZWF0ZWQgemVybyBwb3Nl
IHRvIHRoZSBzdGFuZGluZyBhYnNvbHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzIAot
ICAgICAgICogYXBwbGljYXRpb25zIHRvIHJlcHJlc2VudCB0aGUgc2VhdGVkIG9yaWdpbiB0byB1
c2VkIG9yIHRyYW5zZm9ybSBvYmplY3QgcG9zaXRpb25zIGZyb20gb25lIGNvb3JkaW5hdGUKLSAg
ICAgICAqIHN5c3RlbSB0byB0aGUgb3RoZXIuIAotICAgICAgICoKLSAgICAgICAqIFRoZSBzZWF0
ZWQgb3JpZ2luIG1heSBvciBtYXkgbm90IGJlIGluc2lkZSB0aGUgUGxheSBBcmVhIG9yIENvbGxp
c2lvbiBCb3VuZHMgcmV0dXJuZWQgYnkgSVZSQ2hhcGVyb25lLiBJdHMgcG9zaXRpb24gCi0gICAg
ICAgKiBkZXBlbmRzIG9uIHdoYXQgdGhlIHVzZXIgaGFzIHNldCBmcm9tIHRoZSBEYXNoYm9hcmQg
c2V0dGluZ3MgYW5kIHByZXZpb3VzIGNhbGxzIHRvIFJlc2V0U2VhdGVkWmVyb1Bvc2UuICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5z
Zm9ybSBmcm9tIHRoZSB0cmFja2luZyBvcmlnaW4gdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRy
YWNraW5nIHN5c3RlbS4gVGhpcyBhbGxvd3MKLSAgICAgICAqIGFwcGxpY2F0aW9ucyB0byBjb252
ZXJ0IGZyb20gcmF3IHRyYWNraW5nIHNwYWNlIHRvIHRoZSBjYWxpYnJhdGVkIHN0YW5kaW5nIGNv
b3JkaW5hdGUgc3lzdGVtLiAqLwotICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKLQotICAgICAgIC8q
KiBHZXQgYSBzb3J0ZWQgYXJyYXkgb2YgZGV2aWNlIGluZGljZXMgb2YgYSBnaXZlbiBjbGFzcyBv
ZiB0cmFja2VkIGRldmljZXMgKGUuZy4gY29udHJvbGxlcnMpLiAgRGV2aWNlcyBhcmUgc29ydGVk
IHJpZ2h0IHRvIGxlZnQKLSAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgdHJhY2tl
ZCBkZXZpY2UgKGRlZmF1bHQ6IGhtZCAtLSBwYXNzIGluIC0xIGZvciBhYnNvbHV0ZSB0cmFja2lu
ZyBzcGFjZSkuICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGV2aWNlcwotICAgICAgICogaW4gdGhl
IGxpc3QsIG9yIHRoZSBzaXplIG9mIHRoZSBhcnJheSBuZWVkZWQgaWYgbm90IGxhcmdlIGVub3Vn
aC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRp
Y2VzT2ZDbGFzcyggRVRyYWNrZWREZXZpY2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBWUl9B
UlJBWV9DT1VOVCh1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQpIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tl
ZERldmljZUluZGV4QXJyYXlDb3VudCwgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRp
dmVUb1RyYWNrZWREZXZpY2VJbmRleCA9IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICkgPSAw
OwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIGxldmVsIG9mIGFjdGl2aXR5IG9uIHRoZSBkZXZp
Y2UuICovCi0gICAgICAgdmlydHVhbCBFRGV2aWNlQWN0aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2
aWNlQWN0aXZpdHlMZXZlbCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSWQgKSA9
IDA7Ci0KLSAgICAgICAvKiogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBhcHBseSB0aGUgc3BlY2lm
aWVkIHRyYW5zZm9ybSB0byB0aGUgc3BlY2lmaWVkIHBvc2UuCi0gICAgICAgKiAgIFRoaXMgcHJv
cGVybHkgdHJhbnNmb3JtcyBhbGwgcG9zZSBjb21wb25lbnRzLCBpbmNsdWRpbmcgdmVsb2NpdHkg
YW5kIGFuZ3VsYXIgdmVsb2NpdHkKLSAgICAgICAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBBcHBs
eVRyYW5zZm9ybSggVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIGNvbnN0IFRyYWNr
ZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSwgY29uc3QgSG1kTWF0cml4MzRfdCAq
cFRyYW5zZm9ybSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBkZXZpY2UgaW5kZXgg
YXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm9sZSwgZm9yIGV4YW1wbGUgdGhlIGxlZnQgaGFu
ZCBvciB0aGUgcmlnaHQgaGFuZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCBHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSggdnI6OkVUcmFj
a2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVy
bnMgdGhlIGNvbnRyb2xsZXIgdHlwZSBhc3NvY2lhdGVkIHdpdGggYSBkZXZpY2UgaW5kZXguICov
Ci0gICAgICAgdmlydHVhbCB2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSBHZXRDb250cm9sbGVy
Um9sZUZvclRyYWNrZWREZXZpY2VJbmRleCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2
aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBQcm9wZXJ0eSBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2
aWNlIGNsYXNzIG9mIGEgdHJhY2tlZCBkZXZpY2UuIElmIHRoZXJlIGhhcyBub3QgYmVlbiBhIGRl
dmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90Ci0gICAgICAgKiBzaW5jZSB0aGUgYXBwbGljYXRp
b24gc3RhcnRlZCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFRyYWNrZWREZXZpY2VfSW52YWxp
ZC4gRm9yIHByZXZpb3VzIGRldGVjdGVkCi0gICAgICAgKiBkZXZpY2VzIHRoZSBmdW5jdGlvbiB3
aWxsIHJldHVybiB0aGUgcHJldmlvdXNseSBvYnNlcnZlZCBkZXZpY2UgY2xhc3MuIAotICAgICAg
ICoKLSAgICAgICAqIFRvIGRldGVybWluZSB3aGljaCBkZXZpY2VzIGV4aXN0IG9uIHRoZSBzeXN0
ZW0sIGp1c3QgbG9vcCBmcm9tIDAgdG8ga191bk1heFRyYWNrZWREZXZpY2VDb3VudCBhbmQgY2hl
Y2sKLSAgICAgICAqIHRoZSBkZXZpY2UgY2xhc3MuIEV2ZXJ5IGRldmljZSB3aXRoIHNvbWV0aGlu
ZyBvdGhlciB0aGFuIFRyYWNrZWREZXZpY2VfSW52YWxpZCBpcyBhc3NvY2lhdGVkIHdpdGggYW4g
Ci0gICAgICAgKiBhY3R1YWwgdHJhY2tlZCBkZXZpY2UuICovCi0gICAgICAgdmlydHVhbCBFVHJh
Y2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZpY2VDbGFzcyggdnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QuICovCi0gICAgICAgdmly
dHVhbCBib29sIElzVHJhY2tlZERldmljZUNvbm5lY3RlZCggdnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgcHJv
cGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBp
cyBub3QgYSBib29sIHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8q
KiBSZXR1cm5zIGEgZmxvYXQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZh
bGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBmbG9hdCB0eXBlIHRoaXMgZnVuY3Rpb24gd2ls
bCByZXR1cm4gMC4gKi8KLSAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0VHJhY2tlZERldmlj
ZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBM
ICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgYW4gaW50IHByb3BlcnR5LiBJZiB0aGUgZGV2
aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgaW50IHR5cGUg
dGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwotICAgICAgIHZpcnR1YWwgaW50MzJfdCBH
ZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0
IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVy
dHkgaXMgbm90IGEgdWludDY0IHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwot
ICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgYSBtYXRyaXggcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXgg
aXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBtYXRyaXggdHlwZSwgdGhpcyBm
dW5jdGlvbiB3aWxsIHJldHVybiBpZGVudGl0eS4gKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJp
eDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJu
cyBhIHN0cmluZyBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCAKLSAg
ICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZwotICAgICAgICogbnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVm
ZmVycyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCi0gICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXpl
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0gICAgICAgLyoq
IHJldHVybnMgYSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJv
cGVydHkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZSAKLSAgICAgICAqIG9mIHRo
ZSBlcnJvciBlbnVtIHZhbHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KLSAgICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVycm9yICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gRXZlbnQgbWV0aG9kcwotICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlm
IHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRo
b2QgcmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVz
IG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0
RXZlbnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0
IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVu
dHMKLSAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIEZpbGxzIGluIHRoZSBwb3Nl
IG9mIHRoZSBhc3NvY2lhdGVkIHRyYWNrZWQgZGV2aWNlIGluIHRoZSBwcm92aWRlZCBwb3NlIHN0
cnVjdC4gCi0gICAgICAgKiBUaGlzIHBvc2Ugd2lsbCBhbHdheXMgYmUgb2xkZXIgdGhhbiB0aGUg
Y2FsbCB0byB0aGlzIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgdG8gcmVuZGVyIHRo
ZSBkZXZpY2UuIAotICAgICAgIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRl
cyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4
dEV2ZW50V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIFZSRXZlbnRf
dCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
KnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKLQotICAgICAgIC8qKiByZXR1cm5zIHRoZSBuYW1l
IG9mIGFuIEVWUkV2ZW50IGVudW0gdmFsdWUgKi8KLSAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIg
KkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSggRVZSRXZlbnRUeXBlIGVUeXBlICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
UmVuZGVyaW5nIGhlbHBlciBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaGlkZGVuIGFyZWEgbWVz
aCBmb3IgdGhlIGN1cnJlbnQgSE1ELiBUaGUgcGl4ZWxzIGNvdmVyZWQgYnkgdGhpcyBtZXNoIHdp
bGwgbmV2ZXIgYmUgc2VlbiBieSB0aGUgdXNlciBhZnRlciB0aGUgbGVucyBkaXN0b3J0aW9uIGlz
Ci0gICAgICAgKiBhcHBsaWVkIGJhc2VkIG9uIHZpc2liaWxpdHkgdG8gdGhlIHBhbmVscy4gSWYg
dGhpcyBITUQgZG9lcyBub3QgaGF2ZSBhIGhpZGRlbiBhcmVhIG1lc2gsIHRoZSB2ZXJ0ZXggZGF0
YSBhbmQgY291bnQgd2lsbCBiZSBOVUxMIGFuZCAwIHJlc3BlY3RpdmVseS4KLSAgICAgICAqIFRo
aXMgbWVzaCBpcyBtZWFudCB0byBiZSByZW5kZXJlZCBpbnRvIHRoZSBzdGVuY2lsIGJ1ZmZlciAo
b3IgaW50byB0aGUgZGVwdGggYnVmZmVyIHNldHRpbmcgbmVhcnopIGJlZm9yZSByZW5kZXJpbmcg
ZWFjaCBleWUncyB2aWV3LiAKLSAgICAgICAqIFRoaXMgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNl
IGJ5IGxldHRpbmcgdGhlIEdQVSBlYXJseS1yZWplY3QgcGl4ZWxzIHRoZSB1c2VyIHdpbGwgbmV2
ZXIgc2VlIGJlZm9yZSBydW5uaW5nIHRoZSBwaXhlbCBzaGFkZXIuCi0gICAgICAgKiBOT1RFOiBS
ZW5kZXIgdGhpcyBtZXNoIHdpdGggYmFja2ZhY2UgY3VsbGluZyBkaXNhYmxlZCBzaW5jZSB0aGUg
d2luZGluZyBvcmRlciBvZiB0aGUgdmVydGljZXMgY2FuIGJlIGRpZmZlcmVudCBwZXItSE1EIG9y
IHBlci1leWUuCi0gICAgICAgKiBTZXR0aW5nIHRoZSBiSW52ZXJzZSBhcmd1bWVudCB0byB0cnVl
IHdpbGwgcHJvZHVjZSB0aGUgdmlzaWJsZSBhcmVhIG1lc2ggdGhhdCBpcyBjb21tb25seSB1c2Vk
IGluIHBsYWNlIG9mIGZ1bGwtc2NyZWVuIHF1YWRzLiBUaGUgdmlzaWJsZSBhcmVhIG1lc2ggY292
ZXJzIGFsbCBvZiB0aGUgcGl4ZWxzIHRoZSBoaWRkZW4gYXJlYSBtZXNoIGRvZXMgbm90IGNvdmVy
LgotICAgICAgICogU2V0dGluZyB0aGUgYkxpbmVMb29wIGFyZ3VtZW50IHdpbGwgcmV0dXJuIGEg
bGluZSBsb29wIG9mIHZlcnRpY2VzIGluIEhpZGRlbkFyZWFNZXNoX3QtPnBWZXJ0ZXhEYXRhIHdp
dGggSGlkZGVuQXJlYU1lc2hfdC0+dW5UcmlhbmdsZUNvdW50IHNldCB0byB0aGUgbnVtYmVyIG9m
IHZlcnRpY2VzLgotICAgICAgICovCi0gICAgICAgdmlydHVhbCBIaWRkZW5BcmVhTWVzaF90IEdl
dEhpZGRlbkFyZWFNZXNoKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlID0g
a19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBDb250cm9sbGVyIG1ldGhvZHMK
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAg
IC8qKiBGaWxscyB0aGUgc3VwcGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGNvbnRyb2xsZXIuIFJldHVybnMgZmFsc2UgaWYgdGhlIGNvbnRyb2xsZXIgaW5kZXgKLSAg
ICAgICAqIGlzIGludmFsaWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbnRyb2xsZXJT
dGF0ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB2
cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250
cm9sbGVyU3RhdGVTaXplICkgPSAwOwotCi0gICAgICAgLyoqIGZpbGxzIHRoZSBzdXBwbGllZCBz
dHJ1Y3Qgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29udHJvbGxlciBhbmQgdGhlIHBy
b3ZpZGVkIHBvc2Ugd2l0aCB0aGUgcG9zZSBvZiAKLSAgICAgICAqIHRoZSBjb250cm9sbGVyIHdo
ZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgd2FzIHVwZGF0ZWQgbW9zdCByZWNlbnRseS4gVXNlIHRo
aXMgZm9ybSBpZiB5b3UgbmVlZCBhIHByZWNpc2UgY29udHJvbGxlcgotICAgICAgICogcG9zZSBh
cyBpbnB1dCB0byB5b3VyIGFwcGxpY2F0aW9uIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBvciByZWxl
YXNlcyBhIGJ1dHRvbi4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q29udHJvbGxlclN0YXRl
V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRl
X3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSwgVHJh
Y2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOwotCi0gICAgICAgLyoq
IFRyaWdnZXIgYSBzaW5nbGUgaGFwdGljIHB1bHNlIG9uIGEgY29udHJvbGxlci4gQWZ0ZXIgdGhp
cyBjYWxsIHRoZSBhcHBsaWNhdGlvbiBtYXkgbm90IHRyaWdnZXIgYW5vdGhlciBoYXB0aWMgcHVs
c2Ugb24gdGhpcyBjb250cm9sbGVyCi0gICAgICAgKiBhbmQgYXhpcyBjb21iaW5hdGlvbiBmb3Ig
NW1zLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBUcmlnZ2VySGFwdGljUHVsc2UoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMyX3QgdW5BeGlz
SWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyApID0gMDsKLQotICAgICAgIC8q
KiByZXR1cm5zIHRoZSBuYW1lIG9mIGFuIEVWUkJ1dHRvbklkIGVudW0gdmFsdWUgKi8KLSAgICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKCBFVlJCdXR0b25J
ZCBlQnV0dG9uSWQgKSA9IDA7Ci0KLSAgICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBF
VlJDb250cm9sbGVyQXhpc1R5cGUgZW51bSB2YWx1ZSAqLwotICAgICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKCBFVlJDb250cm9sbGVyQXhp
c1R5cGUgZUF4aXNUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9wZW5WUiB0aGF0IHRo
aXMgcHJvY2VzcyB3YW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIGNvbnRyb2xsZXIgYnV0dG9uIHN0
YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3aWxsIGJlIG5vdGlmaWVkIHRoYXQg
Ci0gICAgICAgKiB0aGV5IGhhdmUgbG9zdCBpbnB1dCBmb2N1cyB3aXRoIGEgVlJFdmVudF9JbnB1
dEZvY3VzQ2FwdHVyZWQgZXZlbnQuIFJldHVybnMgZmFsc2UgaWYgaW5wdXQgZm9jdXMgY291bGQg
bm90IGJlIGNhcHR1cmVkIGZvcgotICAgICAgICogc29tZSByZWFzb24uICovCi0gICAgICAgdmly
dHVhbCBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9w
ZW5WUiB0aGF0IHRoaXMgcHJvY2VzcyBubyBsb25nZXIgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0
byBidXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhlciBhcHBzIHdpbGwgYmUgbm90
aWZpZWQgCi0gICAgICAgKiB0aGF0IGlucHV0IGZvY3VzIGhhcyBiZWVuIHJlbGVhc2VkIHdpdGgg
YSBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCBldmVudC4gKi8KLSAgICAgICB2aXJ0dWFsIHZv
aWQgUmVsZWFzZUlucHV0Rm9jdXMoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IGlucHV0IGZvY3VzIGlzIGNhcHR1cmVkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCkgPSAwOwot
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
Ly8gRGVidWcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgLyoqIFNlbmRzIGEgcmVxdWVzdCB0byB0aGUgZHJpdmVyIGZvciB0
aGUgc3BlY2lmaWVkIGRldmljZSBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIFRoZSBtYXhpbXVt
IHJlc3BvbnNlIHNpemUgaXMgMzJrLAotICAgICAgICogYnV0IHRoaXMgbWV0aG9kIGNhbiBiZSBj
YWxsZWQgd2l0aCBhIHNtYWxsZXIgYnVmZmVyLiBJZiB0aGUgcmVzcG9uc2UgZXhjZWVkcyB0aGUg
c2l6ZSBvZiB0aGUgYnVmZmVyLCBpdCBpcyB0cnVuY2F0ZWQuIAotICAgICAgICogVGhlIHNpemUg
b2YgdGhlIHJlc3BvbnNlIGluY2x1ZGluZyBpdHMgdGVybWluYXRpbmcgbnVsbCBpcyByZXR1cm5l
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IERyaXZlckRlYnVnUmVxdWVzdCggdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaFJlcXVlc3Qs
IGNoYXIgKnBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSAp
ID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIEZpcm13YXJlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAKLSAgICAgICAvKiogUGVyZm9ybXMgdGhlIGFjdHVh
bCBmaXJtd2FyZSB1cGRhdGUgaWYgYXBwbGljYWJsZS4gCi0gICAgICAgICogVGhlIGZvbGxvd2lu
ZyBldmVudHMgd2lsbCBiZSBzZW50LCBpZiBWUkZpcm13YXJlRXJyb3JfTm9uZSB3YXMgcmV0dXJu
ZWQ6IFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkLCBWUkV2ZW50X0Zpcm13YXJlVXBkYXRl
RmluaXNoZWQgCi0gICAgICAgICogVXNlIHRoZSBwcm9wZXJ0aWVzIFByb3BfRmlybXdhcmVfVXBk
YXRlQXZhaWxhYmxlX0Jvb2wsIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wsIGFuZCBQ
cm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcKLSAgICAgICAgKiB0byBmaWd1cmUg
b3VyIHdoZXRoZXIgYSBmaXJtd2FyZSB1cGRhdGUgaXMgYXZhaWxhYmxlLCBhbmQgdG8gZmlndXJl
IG91dCB3aGV0aGVyIGl0cyBhIG1hbnVhbCB1cGRhdGUgCi0gICAgICAgICogUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIHNob3VsZCBwb2ludCB0byBhbiBVUkwgZGVzY3JpYmlu
ZyB0aGUgbWFudWFsIHVwZGF0ZSBwcm9jZXNzICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSRmly
bXdhcmVFcnJvciBQZXJmb3JtRmlybXdhcmVVcGRhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4ICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gQXBwbGljYXRpb24gbGlmZSBjeWNsZSBtZXRob2Rz
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAg
ICAvKiogQ2FsbCB0aGlzIHRvIGFja25vd2xlZGdlIHRvIHRoZSBzeXN0ZW0gdGhhdCBWUkV2ZW50
X1F1aXQgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHRoYXQgdGhlIHByb2Nlc3MgaXMgZXhpdGluZy4K
LSAgICAgICAqIFRoaXMgZXh0ZW5kcyB0aGUgdGltZW91dCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBr
aWxsZWQuICovCi0gICAgICAgdmlydHVhbCB2b2lkIEFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCkg
PSAwOwotCi0gICAgICAgLyoqIENhbGwgdGhpcyB0byB0ZWxsIHRoZSBzeXN0ZW0gdGhhdCB0aGUg
dXNlciBpcyBiZWluZyBwcm9tcHRlZCB0byBzYXZlIGRhdGEuIFRoaXMKLSAgICAgICAqIGhhbHRz
IHRoZSB0aW1lb3V0IGFuZCBkaXNtaXNzZXMgdGhlIGRhc2hib2FyZCAoaWYgaXQgd2FzIHVwKS4g
QXBwbGljYXRpb25zIHNob3VsZCBiZSBzdXJlIHRvIGFjdHVhbGx5IAotICAgICAgICogcHJvbXB0
IHRoZSB1c2VyIHRvIHNhdmUgYW5kIHRoZW4gZXhpdCBhZnRlcndhcmQsIG90aGVyd2lzZSB0aGUg
dXNlciB3aWxsIGJlIGxlZnQgaW4gYSBjb25mdXNpbmcgc3RhdGUuICovCi0gICAgICAgdmlydHVh
bCB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkgPSAwOwotCi19OwotCi1zdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3RlbV8wMTciOwot
Ci19Ci0KLQotLy8gaXZyYXBwbGljYXRpb25zLmgKLW5hbWVzcGFjZSB2cgotewotCi0gICAgICAg
LyoqIFVzZWQgZm9yIGFsbCBlcnJvcnMgcmVwb3J0ZWQgYnkgdGhlIElWUkFwcGxpY2F0aW9ucyBp
bnRlcmZhY2UgKi8KLSAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwgICAgICAgLy8g
T25seSBvbmUgYXBwbGljYXRpb24gY2FuIHVzZSBhbnkgZ2l2ZW4ga2V5Ci0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0ID0gMTAxLCAgICAgICAgICAgICAgICAgICAg
IC8vIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYSBtYW5pZmVzdAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwgICAgICAg
ICAgICAgICAgICAgICAvLyBObyBhcHBsaWNhdGlvbiBpcyBydW5uaW5nCi0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24gPSAxMDQsICAgICAgIC8vIHRoZSBh
cHBsaWNhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX0lQQ0ZhaWxlZCA9IDEwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW4g
SVBDIGZhaWx1cmUgY2F1c2VkIHRoZSByZXF1ZXN0IHRvIGZhaWwKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsIAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0gMTA3LAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkID0gMTA5LCAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoZSBwcm9jZXNzIGRpZG4ndCBzdGFydAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsIC8vIHRo
ZSBzeXN0ZW0gd2FzIGFscmVhZHkgc3RhcnRpbmcgdGhlIHNhbWUgYXBwbGljYXRpb24KLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsICAgICAg
ICAgICAgICAvLyBUaGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIGEgZGlmZmVyZW50IGFw
cGxpY2F0aW9uCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlv
blF1aXR0aW5nID0gMTEyLCAKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5z
aXRpb25BYm9ydGVkID0gMTEzLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSXNU
ZW1wbGF0ZSA9IDExNCwgLy8gZXJyb3Igd2hlbiB5b3UgdHJ5IHRvIGNhbGwgTGF1bmNoQXBwbGlj
YXRpb24oKSBvbiBhIHRlbXBsYXRlIHR5cGUgYXBwICh1c2UgTGF1bmNoVGVtcGxhdGVBcHBsaWNh
dGlvbikKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1N0ZWFtVlJJc0V4aXRpbmcg
PSAxMTUsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxs
ID0gMjAwLCAgICAgICAgICAgICAgLy8gVGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxs
IHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRhdGEKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX1Byb3BlcnR5Tm90U2V0ID0gMjAxLCAgICAgICAgICAgICAgLy8gVGhlIHJlcXVlc3RlZCBw
cm9wZXJ0eSB3YXMgbm90IHNldAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5r
bm93blByb3BlcnR5ID0gMjAyLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwMywKLSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVt
IGxlbmd0aCBvZiBhbiBhcHBsaWNhdGlvbiBrZXkgKi8KLSAgICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4OwotCi0gICAgICAgLyoqIHRo
ZXNlIGFyZSB0aGUgcHJvcGVydGllcyBhdmFpbGFibGUgb24gYXBwbGljYXRpb25zLiAqLwotICAg
ICAgIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotICAgICAgIHsKLSAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMCwKLQotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlw
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgICAgICAgPSAxMiwKLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgPSAxMywKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0Fy
Z3VtZW50c19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDE0LAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDE1LAotCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlv
bl9TdHJpbmcgICAgICAgICAgICAgID0gNTAsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9OZXdzVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTEsCi0gICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nICAgICAgICAgICAg
ICAgICAgICAgPSA1MiwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJj
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MywKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wgICAgICAgPSA2
MCwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCAg
ICAgICAgICAgICAgICAgICAgID0gNjEsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0luc3RhbmNlZF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MiwKLSAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW50ZXJuYWxfQm9vbCAgICAgICAgICAgICAg
ICAgICAgID0gNjMsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9XYW50c0Nv
bXBvc2l0b3JQYXVzZUluU3RhbmRieV9Cb29sID0gNjQsCi0KLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCAgICAgICAgICAgICAgPSA3MCwK
LSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZXNlIGFyZSBzdGF0ZXMgdGhlIHNjZW5lIGFwcGxp
Y2F0aW9uIHN0YXJ0dXAgcHJvY2VzcyB3aWxsIGdvIHRocm91Z2guICovCi0gICAgICAgZW51bSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvblRyYW5zaXRpb25fTm9uZSA9IDAsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVu
Y2hlZCA9IDIwLAotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaEtleTsKLSAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqcGNoVmFsdWU7Ci0gICAgICAgfTsKLQotICAgICAgIC8qKiBDdXJyZW50
bHkgcmVjb2duaXplZCBtaW1lIHR5cGVzICovCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwICAgICAgICAgICAgICA9ICJ2ci9ob21lIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVy
ICAgICAgID0gInZyL2dhbWVfdGhlYXRlciI7Ci0KLSAgICAgICBjbGFzcyBJVlJBcHBsaWNhdGlv
bnMKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLSAgQXBwbGljYXRpb24gbWFuYWdlbWVudCAgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAg
ICAgICAgICAgICAgLyoqIEFkZHMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgdG8gdGhlIGxpc3Qg
dG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBhcHBsaWNhdGlvbnMu
IAotICAgICAgICAgICAgICAqIFRlbXBvcmFyeSBtYW5pZmVzdHMgYXJlIG5vdCBhdXRvbWF0aWNh
bGx5IGxvYWRlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
QWRkQXBwbGljYXRpb25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVz
dEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkgPSBmYWxzZSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmVtb3ZlcyBhbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCBmcm9tIHRoZSBsaXN0IHRvIGxv
YWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBwbGljYXRpb25zLiAqLwot
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUmVtb3ZlQXBwbGljYXRp
b25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW4gYXBwbGljYXRpb24g
aXMgaW5zdGFsbGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0FwcGxpY2F0aW9u
SW5zdGFsbGVkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBs
aXN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25Db3Vu
dCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBzcGVj
aWZpZWQgYXBwbGljYXRpb24uIFRoZSBpbmRleCBpcyBhdCBsZWFzdCAwIGFuZCBpcyBsZXNzIHRo
YW4gdGhlIHJldHVybiAKLSAgICAgICAgICAgICAgKiB2YWx1ZSBvZiBHZXRBcHBsaWNhdGlvbkNv
dW50KCkuIFRoZSBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGtfdW5NYXhBcHBsaWNhdGlvbktl
eUxlbmd0aCBpbiBvcmRlciB0byAKLSAgICAgICAgICAgICAgKiBmaXQgdGhlIGtleS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5
QnlJbmRleCggdWludDMyX3QgdW5BcHBsaWNhdGlvbkluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBhcHBsaWNhdGlvbiBmb3Ig
dGhlIHNwZWNpZmllZCBQcm9jZXNzIElkLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCAK
LSAgICAgICAgICAgICAgKiBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8g
Zml0IHRoZSBrZXkuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9uLiBUaGUgZXhpc3Rpbmcg
c2NlbmUgYXBwbGljYXRpb24gd2lsbCBleGl0IGFuZCB0aGVuIHRoZSBuZXcgYXBwbGljYXRpb24g
d2lsbCBzdGFydC4KLSAgICAgICAgICAgICAgKiBUaGlzIGNhbGwgaXMgbm90IHZhbGlkIGZvciBk
YXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbnMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbiggY29uc3QgY2hhciAqcGNoQXBw
S2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyBhbiBpbnN0YW5jZSBvZiBh
biBhcHBsaWNhdGlvbiBvZiB0eXBlIHRlbXBsYXRlLCB3aXRoIGl0cyBhcHAga2V5IGJlaW5nIHBj
aE5ld0FwcEtleSAod2hpY2ggbXVzdCBiZSB1bmlxdWUpIGFuZCBvcHRpb25hbGx5IG92ZXJyaWRl
IHNlY3Rpb25zCi0gICAgICAgICAgICAgICogZnJvbSB0aGUgbWFuaWZlc3QgZmlsZSB2aWEgQXBw
T3ZlcnJpZGVLZXlzX3QKLSAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBF
VlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24oIGNvbnN0IGNoYXIg
KnBjaFRlbXBsYXRlQXBwS2V5LCBjb25zdCBjaGFyICpwY2hOZXdBcHBLZXksIFZSX0FSUkFZX0NP
VU5UKCB1bktleXMgKSBjb25zdCBBcHBPdmVycmlkZUtleXNfdCAqcEtleXMsIHVpbnQzMl90IHVu
S2V5cyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogbGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9u
IGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtaW1lIHR5cGUgYW5kIHBhc3NlcyBpdCB0
aGUgb3B0aW9uIGFyZ3MsIHR5cGljYWxseSB0aGUgZmlsZW5hbWUgb3Igb2JqZWN0IG5hbWUgb2Yg
dGhlIGl0ZW0gYmVpbmcgbGF1bmNoZWQgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
QXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZSggY29uc3QgY2hh
ciAqcGNoTWltZVR5cGUsIGNvbnN0IGNoYXIgKnBjaEFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIExhdW5jaGVzIHRoZSBkYXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbiBpZiBpdCBp
cyBub3QgYWxyZWFkeSBydW5uaW5nLiBUaGlzIGNhbGwgaXMgb25seSB2YWxpZCBmb3IgCi0gICAg
ICAgICAgICAgICogZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSgg
Y29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBDYW5jZWwg
YSBwZW5kaW5nIGxhdW5jaCBmb3IgYW4gYXBwbGljYXRpb24gKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIElkZW50aWZpZXMgYSBydW5uaW5nIGFwcGxpY2F0
aW9uLiBPcGVuVlIgY2FuJ3QgYWx3YXlzIHRlbGwgd2hpY2ggcHJvY2VzcyBzdGFydGVkIGluIHJl
c3BvbnNlCi0gICAgICAgICAgICAgICogdG8gYSBVUkwuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGEg
VVJMIGhhbmRsZXIgKG9yIHRoZSBwcm9jZXNzIGl0c2VsZikgdG8gaWRlbnRpZnkgdGhlIGFwcCBr
ZXkgCi0gICAgICAgICAgICAgICogZm9yIHRoZSBub3cgcnVubmluZyBhcHBsaWNhdGlvbi4gUGFz
c2luZyBhIHByb2Nlc3MgSUQgb2YgMCBpZGVudGlmaWVzIHRoZSBjYWxsaW5nIHByb2Nlc3MuIAot
ICAgICAgICAgICAgICAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IGJlIG9uZSB0aGF0J3Mga25vd24g
dG8gdGhlIHN5c3RlbSB2aWEgYSBjYWxsIHRvIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QuICovCi0g
ICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBJZGVudGlmeUFwcGxpY2F0
aW9uKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElEIGZvciBhbiBhcHBsaWNh
dGlvbi4gUmV0dXJuIDAgaWYgdGhlIGFwcGxpY2F0aW9uIHdhcyBub3QgZm91bmQgb3IgaXMgbm90
IHJ1bm5pbmcuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRp
b25Qcm9jZXNzSWQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb25zIGVycm9yICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJv
bUVudW0oIEVWUkFwcGxpY2F0aW9uRXJyb3IgZXJyb3IgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzICAtLS0tLS0tLS0tLS0t
LS0gLy8KLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHZhbHVlIGZvciBhbiBhcHBsaWNh
dGlvbiBwcm9wZXJ0eS4gVGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplIHRvIGZpdCB0aGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBFVlJBcHBs
aWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFByb3Bl
cnR5VmFsdWVCdWZmZXIsIHVpbnQzMl90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBw
bGljYXRpb25FcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgYSBib29sIHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0
dXJucyBmYWxzZSBpbiBhbGwgZXJyb3IgY2FzZXMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBF
VlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50
NjQgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBSZXR1cm5zIDAgaW4gYWxsIGVy
cm9yIGNhc2VzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldEFwcGxpY2F0
aW9uUHJvcGVydHlVaW50NjQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhcHBsaWNhdGlvbiBhdXRvLWxh
dW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCByZXR1
cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29s
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGlj
YXRpb25BdXRvTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFwcGxpY2F0aW9uIGF1dG8tbGF1
bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIHJldHVy
biB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wu
ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2go
IGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQWRkcyB0
aGlzIG1pbWUtdHlwZSB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhp
cyBhcHBsaWNhdGlvbiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29uc3QgY2hhciAqcGNoQXBwS2V5
LCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0
dXJuIHRoZSBhcHAga2V5IHRoYXQgd2lsbCBvcGVuIHRoaXMgbWltZSB0eXBlICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29u
c3QgY2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlCdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbGlzdCBv
ZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgY29tbWEtZGVsaW1p
dGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlcyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBjaGFyICpwY2hNaW1lVHlwZXNCdWZm
ZXIsIHVpbnQzMl90IHVuTWltZVR5cGVzQnVmZmVyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXQgdGhlIGxpc3Qgb2YgYXBwLWtleXMgdGhhdCBzdXBwb3J0IHRoaXMgbWltZSB0eXBlLCBj
b21tYS1kZWxpbWl0ZWQsIHRoZSByZXR1cm4gdmFsdWUgaXMgbnVtYmVyIG9mIGJ5dGVzIHlvdSBu
ZWVkIHRvIHJldHVybiB0aGUgZnVsbCBzdHJpbmcgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKCBjb25zdCBjaGFyICpw
Y2hNaW1lVHlwZSwgY2hhciAqcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0
IHRoZSBhcmdzIGxpc3QgZnJvbSBhbiBhcHAgbGF1bmNoIHRoYXQgaGFkIHRoZSBwcm9jZXNzIGFs
cmVhZHkgcnVubmluZywgeW91IGNhbGwgdGhpcyB3aGVuIHlvdSBnZXQgYSBWUkV2ZW50X0FwcGxp
Y2F0aW9uTWltZVR5cGVMb2FkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMoIHVpbnQzMl90IHVuSGFuZGxlLCBjaGFyICpwY2hB
cmdzLCB1aW50MzJfdCB1bkFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tICBUcmFuc2l0aW9uIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGFwcCBrZXkgZm9yIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGlz
IHN0YXJ0aW5nIHVwICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRTdGFydGluZ0FwcGxpY2F0aW9uKCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90
IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNpdGlvblN0YXRlKCkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGVycm9ycyB0aGF0IHdvdWxkIHByZXZlbnQgdGhl
IHNwZWNpZmllZCBhcHBsaWNhdGlvbiBmcm9tIGxhdW5jaGluZyBpbW1lZGlhdGVseS4gQ2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uIHdpbGwKLSAgICAgICAgICAgICAgKiBjYXVzZSB0aGUgY3VycmVudCBz
Y2VuZSBhcHBsaWNhdGlvbiB0byBxdWl0LCBzbyBvbmx5IGNhbGwgaXQgd2hlbiB5b3UgYXJlIGFj
dHVhbGx5IGFib3V0IHRvIGxhdW5jaCBzb21ldGhpbmcgZWxzZS4KLSAgICAgICAgICAgICAgKiBX
aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGRvIGFib3V0IHRoZXNlIGZhaWx1cmVzIGRlcGVuZHMgb24g
dGhlIGZhaWx1cmU6Ci0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBw
bGljYXRpb25RdWl0dGluZyAtIEFuIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHRvbGQg
dG8gcXVpdC4gV2FpdCBmb3IgYSBWUkV2ZW50X1Byb2Nlc3NRdWl0Ci0gICAgICAgICAgICAgICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0cnkgYWdh
aW4uCi0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJl
YWR5U3RhcnRpbmcgLSBUaGlzIGFwcGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMg
aXMgYSBwZXJtYW5lbnQgZmFpbHVyZS4KLSAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25F
cnJvcl9MYXVuY2hJblByb2dyZXNzICAgICAgICAgICAgIC0gQSBkaWZmZXJlbnQgYXBwbGljYXRp
b24gaXMgYWxyZWFkeSBzdGFydGluZy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgotICAg
ICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgICAgICAgICAgICAgICAgICAg
LSBHbyBhaGVhZCBhbmQgbGF1bmNoLiBFdmVyeXRoaW5nIGlzIGNsZWFyLgotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUGVyZm9ybUFw
cGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb24gdHJh
bnNpdGlvbiBzdGF0ZSAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25UcmFu
c2l0aW9uU3RhdGUgc3RhdGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgb3V0Z29pbmcgc2NlbmUgYXBwIGhhcyByZXF1ZXN0ZWQgYSBzYXZlIHByb21wdCBi
ZWZvcmUgZXhpdGluZyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNRdWl0VXNlclBy
b21wdFJlcXVlc3RlZCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogU3RhcnRzIGEgc3VicHJv
Y2VzcyB3aXRoaW4gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24uIFRoaXMKLSAgICAgICAgICAgICAg
KiBzdXBwcmVzc2VzIGFsbCBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIFVJIGFuZCBhdXRvbWF0aWNh
bGx5IGlkZW50aWZpZXMgdGhlIG5ldyBleGVjdXRhYmxlIAotICAgICAgICAgICAgICAqIGFzIHBh
cnQgb2YgdGhlIHNhbWUgYXBwbGljYXRpb24uIE9uIHN1Y2Nlc3MgdGhlIGNhbGxpbmcgcHJvY2Vz
cyBzaG91bGQgZXhpdCBpbW1lZGlhdGVseS4gCi0gICAgICAgICAgICAgICogSWYgd29ya2luZyBk
aXJlY3RvcnkgaXMgTlVMTCBvciAiIiB0aGUgZGlyZWN0b3J5IHBvcnRpb24gb2YgdGhlIGJpbmFy
eSBwYXRoIHdpbGwgYmUgCi0gICAgICAgICAgICAgICogdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoSW50ZXJu
YWxQcm9jZXNzKCBjb25zdCBjaGFyICpwY2hCaW5hcnlQYXRoLCBjb25zdCBjaGFyICpwY2hBcmd1
bWVudHMsIGNvbnN0IGNoYXIgKnBjaFdvcmtpbmdEaXJlY3RvcnkgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgc2NlbmUgcHJvY2VzcyBJRCBhY2NvcmRpbmcg
dG8gdGhlIGFwcGxpY2F0aW9uIHN5c3RlbS4gQSBzY2VuZSBwcm9jZXNzIHdpbGwgZ2V0IHNjZW5l
Ci0gICAgICAgICAgICAgICogZm9jdXMgb25jZSBpdCBzdGFydHMgcmVuZGVyaW5nLCBidXQgaXQg
d2lsbCBhcHBlYXIgaGVyZSBvbmNlIGl0IGNhbGxzIFZSX0luaXQgd2l0aCB0aGUgU2NlbmUgYXBw
bGljYXRpb24KLSAgICAgICAgICAgICAgKiB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCgpID0gMDsKLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9
ICJJVlJBcHBsaWNhdGlvbnNfMDA2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQotLy8gaXZyc2V0
dGluZ3MuaAotbmFtZXNwYWNlIHZyCi17Ci0gICAgICAgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi0g
ICAgICAgewotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAsCi0gICAgICAg
ICAgICAgIFZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAotICAgICAgICAgICAgICBWUlNl
dHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQgPSAyLAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJy
b3JfUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5n
SGFzTm9EZWZhdWx0ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBzZXR0aW5n
IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxlIGFuZCBoYXMg
bm90IGJlZW4gc2V0Ci0gICAgICAgfTsKLQotICAgICAgIC8vIFRoZSBtYXhpbXVtIGxlbmd0aCBv
ZiBhIHNldHRpbmdzIGtleQotICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4U2V0
dGluZ3NLZXlMZW5ndGggPSAxMjg7Ci0KLSAgICAgICBjbGFzcyBJVlJTZXR0aW5ncwotICAgICAg
IHsKLSAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBvY2N1cnJlZCAo
Zm9yY2Ugb3Igc2V0dGluZ3MgZGlydHkpCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTeW5j
KCBib29sIGJGb3JjZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0
ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCggY29uc3QgY2hh
ciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBF
VlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RmxvYXQo
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBmbG9h
dCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZhbHVlLCBFVlJT
ZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICAv
LyBVc2VycyBvZiB0aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBkZWZhdWx0IGlu
IGRlZmF1bHQudnJzZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBkaXJlY3RvcnkK
LSAgICAgICAgICAgICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBkcml2ZXJfeHh4
IGRpcmVjdG9yeS4gT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2UsIDAsIDAuMCBv
ciAiIgotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3QgY2hhciAqcGNo
U2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBl
RXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0
SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAg
ICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3Qg
Y2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBjb25zdCBjaGFy
ICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5nc0Vycm9yICpw
ZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVt
b3ZlU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVL
ZXlJblNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRp
bmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAg
ICB9OwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIHN0ZWFtdnIga2V5cwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZWN0aW9uID0g
InN0ZWFtdnIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3Jj
ZWREcml2ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlE
ZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rl
YnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0g
ImRpc3BsYXlEZWJ1Z1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9B
bGxBcHBzX0Jvb2w9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2
ZWwiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JUERf
RmxvYXQgPSAiaXBkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlv
bl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWlnaHRfRmxv
YXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJw
bGF5QXJlYUNvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9
ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRW
aWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiA9ICJkaXJlY3RN
b2RlRWRpZFBpZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0
RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dl
ck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nl
c19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX1N1cGVyc2FtcGxlU2NhbGVfRmxvYXQgPSAic3VwZXJzYW1w
bGVTY2FsZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXBy
b2plY3Rpb25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25f
Qm9vbCA9ICJmb3JjZVJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZh
ZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93TWlycm9y
Vmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JW
aWV3R2VvbWV0cnkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21E
YXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9FbmFibGVIb21lQXBwID0gImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50
MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8i
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JcGRPZmZz
ZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfQWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZ19Cb29sID0gImFsbG93U3Vw
ZXJzYW1wbGVGaWx0ZXJpbmciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9FbmFibGVMaW51eFZ1bGthbkFzeW5jX0Jvb2wgPSAiZW5hYmxlTGludXhWdWxr
YW5Bc3luYyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbGln
aHRob3VzZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdo
dGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlzYWJs
ZWltdSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9u
RGVidWdfSW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9
ICJwcmltYXJ5YmFzZXN0YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotCi0gICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIG51bGwga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VyaWFsTnVtYmVy
X1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndp
bmRvd1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5k
b3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3
aW5kb3dIZWlnaHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVs
bF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWNvbmRz
RnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVl
bmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVuY3kiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIC8vIHVzZXIgaW50ZXJmYWNlIGtleXMKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJm
YWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZh
Y2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNPblRvcCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9U
cmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3Rz
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBub3RpZmljYXRpb24ga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlm
aWNhdGlvbnMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZp
Y2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOwotCi0gICAgICAgLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGtleWJvYXJkIGtleXMKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfVHV0b3Jp
YWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENvbXBsZXRpb25zIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWCA9ICJTY2FsZVgiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNjYWxl
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZz
ZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TbW9v
dGhpbmcgPSAiU21vb3RoaW5nIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwZXJmIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlJbkhN
RF9Cb29sID0gIndhcm5JbkhNRCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fybk9ubHlPbmNlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9Cb29s
ID0gImFsbG93VGltaW5nU3RvcmUiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfVGVzdERhdGFfRmxv
YXQgPSAicGVyZlRlc3REYXRhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1BlcmZfTGludXhHUFVQcm9maWxpbmdfQm9vbCA9ICJsaW51eEdQVVByb2ZpbGluZyI7Ci0K
LSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29sbGlzaW9uIGJvdW5k
cyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0dy
b3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0Nl
bnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFj
ZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19D
b2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2FtZXJh
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVD
YW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JD
b2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0lu
dDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFC
b3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1t
YUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQz
MiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBsYXli
YWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlv
X09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0
cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQbGF5
YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRp
b19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhE
TUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBwb3dl
ciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhpdCI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVu
c1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVvdXRf
RmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9
ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0b0xh
dW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1Bvd2VyX1BhdXNlQ29tcG9zaXRvck9uU3RhbmRieV9Cb29sID0gInBhdXNlQ29t
cG9zaXRvck9uU3RhbmRieSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAg
ICAgLy8gZGFzaGJvYXJkIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5h
YmxlRGFzaGJvYXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rh
c2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbW9kZWwgc2tpbiBrZXlzCi0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9tb2RlbHNraW5fU2VjdGlvbiA9ICJtb2RlbHNraW5z
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkcml2ZXIga2V5
cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNrZWQgaW4gYW55IGRyaXZlcl88bmFtZT4gc2VjdGlvbgot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29s
ID0gImVuYWJsZSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLS8vIGl2cmNoYXBlcm9uZS5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotZW51bSBDaGFwZXJv
bmVDYWxpYnJhdGlvblN0YXRlCi17Ci0gICAgICAgLy8gT0shCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9PSyA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhcGVyb25lIGlzIGZ1bGx5IGNhbGlicmF0
ZWQgYW5kIHdvcmtpbmcgY29ycmVjdGx5Ci0KLSAgICAgICAvLyBXYXJuaW5ncwotICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyA9IDEwMCwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQgPSAxMDEsICAg
ICAgIC8vIEEgYmFzZSBzdGF0aW9uIHRoaW5rcyB0aGF0IGl0IG1pZ2h0IGhhdmUgbW92ZWQKLSAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVk
ID0gMTAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBsZXNzIGJhc2Ugc3RhdGlv
bnMgdGhhbiB3aGVuIGNhbGlicmF0ZWQKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywgICAgICAgICAgICAgIC8vIFNlYXRl
ZCBib3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNraW5n
IGNlbnRlcgotCi0gICAgICAgLy8gRXJyb3JzCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9FcnJvciA9IDIwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFRoZSBVbml2ZXJzZUlEIGlzIGludmFsaWQKLSAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIw
MSwgICAgICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBoYXNuJ3QgYmUgY2FsaWJyYXRlZCBm
b3IgYXQgbGVhc3Qgb25lIG9mIHRoZSBiYXNlIHN0YXRpb25zCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLCAgICAgICAgICAg
ICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBpcyBjYWxpYnJhdGVkLCBidXQgYmFzZSBzdGF0
aW9ucyBkaXNhZ3JlZSBvbiB0aGUgdHJhY2tpbmcgc3BhY2UKLSAgICAgICBDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCA9IDIwMywgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gUGxheSBBcmVhIGhhc24ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBj
dXJyZW50IHRyYWNraW5nIGNlbnRlcgotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVf
RXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9IDIwNCwgICAgICAgICAgICAgIC8vIENvbGxp
c2lvbiBCb3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNr
aW5nIGNlbnRlcgotfTsKLQotCi0vKiogSElHSCBMRVZFTCBUUkFDS0lORyBTUEFDRSBBU1NVTVBU
SU9OUzoKLSogMCwwLDAgaXMgdGhlIHByZWZlcnJlZCBzdGFuZGluZyBhcmVhIGNlbnRlci4KLSog
MFkgaXMgdGhlIGZsb29yIGhlaWdodC4KLSogLVogaXMgdGhlIHByZWZlcnJlZCBmb3J3YXJkIGZh
Y2luZyBkaXJlY3Rpb24uICovCi1jbGFzcyBJVlJDaGFwZXJvbmUKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgQ2hhcGVyb25lIGNhbGlicmF0aW9uLiBU
aGlzIHN0YXRlIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgZHVyaW5nIGEgc2Vzc2lvbiBkdWUgdG8g
cGh5c2ljYWwgYmFzZSBzdGF0aW9uIGNoYW5nZXMuICoqLwotICAgICAgIHZpcnR1YWwgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkgPSAwOwotCi0gICAgICAg
LyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBkZXB0aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJs
eSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBhbmQgWi4gCi0gICAgICAgKiBUcmFja2luZyBzcGFj
ZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICoqLwotICAg
ICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpw
U2l6ZVogKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25z
IG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKS4KLSAgICAgICAq
IENvcm5lcnMgYXJlIGluIGNvdW50ZXItY2xvY2t3aXNlIG9yZGVyLgotICAgICAgICogU3RhbmRp
bmcgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLgotICAgICAg
ICogSXQncyBhIHJlY3RhbmdsZS4KLSAgICAgICAqIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRo
ZSBYIGF4aXMgYW5kIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBaIGF4aXMuCi0gICAgICAg
KiBIZWlnaHQgb2YgZXZlcnkgY29ybmVyIGlzIDBZIChvbiB0aGUgZmxvb3IpLiAqKi8KLSAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFSZWN0KCBIbWRRdWFkX3QgKnJlY3QgKSA9IDA7Ci0K
LSAgICAgICAvKiogUmVsb2FkIENoYXBlcm9uZSBkYXRhIGZyb20gdGhlIC52cmNoYXAgZmlsZSBv
biBkaXNrLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRJbmZvKCB2b2lkICkgPSAwOwot
Ci0gICAgICAgLyoqIE9wdGlvbmFsbHkgZ2l2ZSB0aGUgY2hhcGVyb25lIHN5c3RlbSBhIGhpdCBh
Ym91dCB0aGUgY29sb3IgYW5kIGJyaWdodG5lc3MgaW4gdGhlIHNjZW5lICoqLwotICAgICAgIHZp
cnR1YWwgdm9pZCBTZXRTY2VuZUNvbG9yKCBIbWRDb2xvcl90IGNvbG9yICkgPSAwOwotCi0gICAg
ICAgLyoqIEdldCB0aGUgY3VycmVudCBjaGFwZXJvbmUgYm91bmRzIGRyYXcgY29sb3IgYW5kIGJy
aWdodG5lc3MgKiovCi0gICAgICAgdmlydHVhbCB2b2lkIEdldEJvdW5kc0NvbG9yKCBIbWRDb2xv
cl90ICpwT3V0cHV0Q29sb3JBcnJheSwgaW50IG5OdW1PdXRwdXRDb2xvcnMsIGZsb2F0IGZsQ29s
bGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLCBIbWRDb2xvcl90ICpwT3V0cHV0Q2FtZXJhQ29sb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJvdW5kcyBhcmUgc2hv
d2luZyByaWdodCBub3cgKiovCi0gICAgICAgdmlydHVhbCBib29sIEFyZUJvdW5kc1Zpc2libGUo
KSA9IDA7Ci0KLSAgICAgICAvKiogRm9yY2UgdGhlIGJvdW5kcyB0byBzaG93LCBtb3N0bHkgZm9y
IHV0aWxpdGllcyAqKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKCBi
b29sIGJGb3JjZSApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hh
cGVyb25lX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotfQotCi0vLyBpdnJjaGFwZXJvbmVzZXR1cC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotZW51
bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQotewotICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX0xp
dmUgPSAxLCAgICAgICAgICAgICAgLy8gVGhlIGxpdmUgY2hhcGVyb25lIGNvbmZpZywgdXNlZCBi
eSBtb3N0IGFwcGxpY2F0aW9ucyBhbmQgZ2FtZXMKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmls
ZV9UZW1wID0gMiwgICAgICAgICAgICAgIC8vIFRoZSB0ZW1wb3JhcnkgY2hhcGVyb25lIGNvbmZp
ZywgdXNlZCB0byBsaXZlLXByZXZpZXcgY29sbGlzaW9uIGJvdW5kcyBpbiByb29tIHNldHVwCi19
OwotCi1lbnVtIEVDaGFwZXJvbmVJbXBvcnRGbGFncwotewotICAgICAgIEVDaGFwZXJvbmVJbXBv
cnRfQm91bmRzT25seSA9IDB4MDAwMSwKLX07Ci0KLS8qKiBNYW5hZ2VzIHRoZSB3b3JraW5nIGNv
cHkgb2YgdGhlIGNoYXBlcm9uZSBpbmZvLiBCeSBkZWZhdWx0IHRoaXMgd2lsbCBiZSB0aGUgc2Ft
ZSBhcyB0aGUgCi0qIGxpdmUgY29weS4gQW55IGNoYW5nZXMgbWFkZSB3aXRoIHRoaXMgaW50ZXJm
YWNlIHdpbGwgc3RheSBpbiB0aGUgd29ya2luZyBjb3B5IHVudGlsIAotKiBDb21taXRXb3JraW5n
Q29weSgpIGlzIGNhbGxlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIHdvcmtpbmcgY29weSBhbmQgdGhl
IGxpdmUgY29weSB3aWxsIGJlIAotKiB0aGUgc2FtZSBhZ2Fpbi4gKi8KLWNsYXNzIElWUkNoYXBl
cm9uZVNldHVwCi17Ci1wdWJsaWM6Ci0KLSAgICAgICAvKiogU2F2ZXMgdGhlIGN1cnJlbnQgd29y
a2luZyBjb3B5IHRvIGRpc2sgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgQ29tbWl0V29ya2luZ0Nv
cHkoIEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV2ZXJ0cyB0aGUgd29ya2luZyBjb3B5IHRvIG1hdGNoIHRoZSBsaXZlIGNoYXBlcm9uZSBjYWxp
YnJhdGlvbi4KLSAgICAgICAqIFRvIG1vZGlmeSBleGlzdGluZyBkYXRhIHRoaXMgTVVTVCBiZSBk
byBXSElMRSBnZXR0aW5nIGEgbm9uLWVycm9yIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdHVzLgot
ICAgICAgICogT25seSBhZnRlciB0aGlzIHNob3VsZCB5b3UgZG8gZ2V0cyBhbmQgc2V0cyBvbiB0
aGUgZXhpc3RpbmcgZGF0YS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUmV2ZXJ0V29ya2luZ0Nv
cHkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRlcHRoIG9mIHRo
ZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFuZCBaIGZyb20g
dGhlIHdvcmtpbmcgY29weS4KLSAgICAgICAqIFRyYWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDAp
IGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgKnBTaXplWCwgZmxvYXQgKnBTaXplWiApID0g
MDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSA0IGNvcm5lciBwb3NpdGlvbnMgb2YgdGhlIFBs
YXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGZyb20gdGhlIHdvcmtpbmcgY29w
eS4KLSAgICAgICAqIENvcm5lcnMgYXJlIGluIGNsb2Nrd2lzZSBvcmRlci4KLSAgICAgICAqIFRy
YWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJl
YS4KLSAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCi0gICAgICAgKiAyIHNpZGVzIGFyZSBwYXJh
bGxlbCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlz
LgotICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4g
KiovCi0gICAgICAgdmlydHVhbCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVJlY3QoIEhtZFF1YWRf
dCAqcmVjdCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMg
aWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8gbnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMg
Ci0gICAgICAgKiBpbnRvIHRoZSBidWZmZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQgZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRf
dCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMgaWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8g
bnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMgCi0gICAgICAgKiBpbnRvIHRoZSBidWZm
ZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVhZHNDb3VudCkg
SG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFJldHVybnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24gZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgc3Rh
bmRpbmcgb3JpZ2luIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4
MzRfdCAqcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBTZXRzIHRoZSBQbGF5IEFyZWEgaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgc2l6ZVgsIGZsb2F0
IHNpemVaICkgPSAwOwotCi0gICAgICAgLyoqIFNldHMgdGhlIENvbGxpc2lvbiBCb3VuZHMgaW4g
dGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ0NvbGxp
c2lvbkJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1kUXVhZF90ICpw
UXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAgIC8qKiBT
ZXRzIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKCBjb25zdCBIbWRNYXRyaXgzNF90ICpwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSApID0gMDsKLQotICAgICAgIC8qKiBTZXRzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcg
cG9zaXRpb24gaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4
MzRfdCAqcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBUZWFyIGV2ZXJ5dGhpbmcgZG93biBhbmQgcmVsb2FkIGl0IGZyb20gdGhlIGZpbGUg
b24gZGlzayAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRGcm9tRGlzayggRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBw
cmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZl
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blRhZ0Nv
dW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwgdWludDMyX3QgdW5UYWdDb3VudCApID0gMDsKLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9PVVRf
QVJSQVlfQ09VTlQocHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1aW50MzJfdCAq
cHVuVGFnQ291bnQgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIGJvb2wgU2V0V29ya2luZ1BoeXNp
Y2FsQm91bmRzSW5mbyggVlJfQVJSQVlfQ09VTlQodW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBR
dWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50ICkgPSAwOwotICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVh
ZHNDb3VudCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50
ICkgPSAwOwotCi0gICAgICAgdmlydHVhbCBib29sIEV4cG9ydExpdmVUb0J1ZmZlciggVlJfT1VU
X1NUUklORygpIGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90ICpwbkJ1ZmZlckxlbmd0aCApID0gMDsK
LSAgICAgICB2aXJ0dWFsIGJvb2wgSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyggY29uc3QgY2hh
ciAqcEJ1ZmZlciwgdWludDMyX3QgbkltcG9ydEZsYWdzICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9u
ZVNldHVwXzAwNSI7Ci0KLQotfQotCi0vLyBpdnJjb21wb3NpdG9yLmgKLW5hbWVzcGFjZSB2cgot
ewotCi0jcHJhZ21hIHBhY2soIHB1c2gsIDggKQotCi0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3Vy
IHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgKi8KLWVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0g
ICAgICAgVlJDb21wb3NpdG9yRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMCwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJv
cl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkNvbXBv
c2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyAgICAgICAgICAgICAgICAgICAgID0gMTAxLAotICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uICAg
ICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlICAgICAgID0gMTA0LAotICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVV
c2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfU2hh
cmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgPSAxMDYsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCAgICAgICAgICAgICAgICAgICAgID0gMTA4LAot
ICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRCb3VuZHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDksCi19OwotCi1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVwcm9q
ZWN0aW9uUmVhc29uX0NwdSA9IDB4MDE7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVw
cm9qZWN0aW9uUmVhc29uX0dwdSA9IDB4MDI7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3Jf
UmVwcm9qZWN0aW9uQXN5bmMgICAgICA9IDB4MDQ7ICAgICAgIC8vIFRoaXMgZmxhZyBpbmRpY2F0
ZXMgdGhlIGFzeW5jIHJlcHJvamVjdGlvbiBtb2RlIGlzIGFjdGl2ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBkb2VzIG5vdCBpbmRpY2F0
ZSBpZiByZXByb2plY3Rpb24gYWN0dWFsbHkgaGFwcGVuZWQgb3Igbm90LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBSZXByb2plY3Rp
b25SZWFzb24gZmxhZ3MgYWJvdmUgdG8gY2hlY2sgaWYgcmVwcm9qZWN0aW9uCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXMgYWN0dWFsbHkgYXBw
bGllZCAoaS5lLiBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQpLgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtRnJhbWVQcmVzZW50cyA+IDEgYWxz
byBpbmRpY2F0ZXMgdGhlIHNjZW5lIHRleHR1cmUgd2FzIHJldXNlZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhbHNvIHRoZSBudW1iZXIg
b2YgdGltZXMgdGhhdCBpdCB3YXMgcHJlc2VudGVkIGluIHRvdGFsLgotCi0vKiogUHJvdmlkZXMg
YSBzaW5nbGUgZnJhbWUncyB0aW1pbmcgaW5mb3JtYXRpb24gdG8gdGhlIGFwcCAqLwotc3RydWN0
IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcKLXsKLSAgICAgICB1aW50MzJfdCBtX25TaXplOyAvLyBT
ZXQgdG8gc2l6ZW9mKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICkKLSAgICAgICB1aW50MzJfdCBt
X25GcmFtZUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIG51
bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVzZW50ZWQKLSAgICAgICB1aW50MzJfdCBt
X25OdW1NaXNQcmVzZW50ZWQ7IC8vIG51bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVz
ZW50ZWQgb24gYSB2c3luYyBvdGhlciB0aGFuIGl0IHdhcyBvcmlnaW5hbGx5IHByZWRpY3RlZCB0
bwotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIG51bWJlciBvZiBhZGRp
dGlvbmFsIHRpbWVzIHByZXZpb3VzIGZyYW1lIHdhcyBzY2FubmVkIG91dAotICAgICAgIHVpbnQz
Ml90IG1fblJlcHJvamVjdGlvbkZsYWdzOwotCi0gICAgICAgLyoqIEFic29sdXRlIHRpbWUgcmVm
ZXJlbmNlIGZvciBjb21wYXJpbmcgZnJhbWVzLiAgVGhpcyBhbGlnbnMgd2l0aCB0aGUgdnN5bmMg
dGhhdCBydW5uaW5nIHN0YXJ0IGlzIHJlbGF0aXZlIHRvLiAqLwotICAgICAgIGRvdWJsZSBtX2Zs
U3lzdGVtVGltZUluU2Vjb25kczsKLQotICAgICAgIC8qKiBUaGVzZSB0aW1lcyBtYXkgaW5jbHVk
ZSB3b3JrIGZyb20gb3RoZXIgcHJvY2Vzc2VzIGR1ZSB0byBPUyBzY2hlZHVsaW5nLgotICAgICAg
ICogVGhlIGZld2VyIHBhY2tldHMgb2Ygd29yayB0aGVzZSBhcmUgYnJva2VuIHVwIGludG8sIHRo
ZSBsZXNzIGxpa2VseSB0aGlzIHdpbGwgaGFwcGVuLgotICAgICAgICogR1BVIHdvcmsgY2FuIGJl
IGJyb2tlbiB1cCBieSBjYWxsaW5nIEZsdXNoLiAgVGhpcyBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1
bCB0byBnZXQgdGhlIEdQVSBzdGFydGVkCi0gICAgICAgKiBwcm9jZXNzaW5nIHRoYXQgd29yayBl
YXJsaWVyIGluIHRoZSBmcmFtZS4gKi8KLSAgICAgICBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7
IC8vIHRpbWUgc3BlbnQgcmVuZGVyaW5nIHRoZSBzY2VuZSAoZ3B1IHdvcmsgc3VibWl0dGVkIGJl
dHdlZW4gV2FpdEdldFBvc2VzIGFuZCBzZWNvbmQgU3VibWl0KQotICAgICAgIGZsb2F0IG1fZmxQ
b3N0U3VibWl0R3B1TXM7IC8vIGFkZGl0aW9uYWwgdGltZSBzcGVudCByZW5kZXJpbmcgYnkgYXBw
bGljYXRpb24gKGUuZy4gY29tcGFuaW9uIHdpbmRvdykKLSAgICAgICBmbG9hdCBtX2ZsVG90YWxS
ZW5kZXJHcHVNczsgLy8gdGltZSBiZXR3ZWVuIHdvcmsgc3VibWl0dGVkIGltbWVkaWF0ZWx5IGFm
dGVyIHByZXNlbnQgKGlkZWFsbHkgdnN5bmMpIHVudGlsIHRoZSBlbmQgb2YgY29tcG9zaXRvciBz
dWJtaXR0ZWQgd29yawotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyR3B1TXM7IC8v
IHRpbWUgc3BlbmQgcGVyZm9ybWluZyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24sIHJlbmRlcmluZyBj
aGFwZXJvbmUsIG92ZXJsYXlzLCBldGMuCi0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5k
ZXJDcHVNczsgLy8gdGltZSBzcGVudCBvbiBjcHUgc3VibWl0dGluZyB0aGUgYWJvdmUgd29yayBm
b3IgdGhpcyBmcmFtZQotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOyAvLyB0
aW1lIHNwZW50IHdhaXRpbmcgZm9yIHJ1bm5pbmcgc3RhcnQgKGFwcGxpY2F0aW9uIGNvdWxkIGhh
dmUgdXNlZCB0aGlzIG11Y2ggbW9yZSB0aW1lKQotCi0gICAgICAgLyoqIE1pc2NlbGxhbmVvdXMg
bWVhc3VyZWQgaW50ZXJ2YWxzLiAqLwotICAgICAgIGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVy
dmFsTXM7IC8vIHRpbWUgYmV0d2VlbiBjYWxscyB0byBXYWl0R2V0UG9zZXMKLSAgICAgICBmbG9h
dCBtX2ZsUHJlc2VudENhbGxDcHVNczsgLy8gdGltZSBibG9ja2VkIG9uIGNhbGwgdG8gcHJlc2Vu
dCAodXN1YWxseSAwLjAsIGJ1dCBjYW4gZ28gbG9uZykKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZv
clByZXNlbnRDcHVNczsgLy8gdGltZSBzcGVudCBzcGluLXdhaXRpbmcgZm9yIGZyYW1lIGluZGV4
IHRvIGNoYW5nZSAobm90IG5lYXItemVybyBpbmRpY2F0ZXMgd2FpdCBvYmplY3QgZmFpbHVyZSkK
LSAgICAgICBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsgLy8gdGltZSBzcGVudCBpbiBJVlJDb21w
b3NpdG9yOjpTdWJtaXQgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIGRyaXZlciBpc3N1ZSkKLQot
ICAgICAgIC8qKiBUaGUgZm9sbG93aW5nIGFyZSBhbGwgcmVsYXRpdmUgdG8gdGhpcyBmcmFtZSdz
IFN5c3RlbVRpbWVJblNlY29uZHMgKi8KLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2Fs
bGVkTXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBt
X2ZsTmV3RnJhbWVSZWFkeU1zOyAvLyBzZWNvbmQgY2FsbCB0byBJVlJDb21wb3NpdG9yOjpTdWJt
aXQKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAgICAgZmxv
YXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRv
clJlbmRlclN0YXJ0TXM7Ci0KLSAgICAgICB2cjo6VHJhY2tlZERldmljZVBvc2VfdCBtX0htZFBv
c2U7IC8vIHBvc2UgdXNlZCBieSBhcHAgdG8gcmVuZGVyIHRoaXMgZnJhbWUKLX07Ci0KLS8qKiBD
dW11bGF0aXZlIHN0YXRzIGZvciBjdXJyZW50IGFwcGxpY2F0aW9uLiAgVGhlc2UgYXJlIG5vdCBj
bGVhcmVkIHVudGlsIGEgbmV3IGFwcCBjb25uZWN0cywKLSogYnV0IHRoZXkgZG8gc3RvcCBhY2N1
bXVsYXRpbmcgb25jZSB0aGUgYXNzb2NpYXRlZCBhcHAgZGlzY29ubmVjdHMuICovCi1zdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7IC8v
IFByb2Nlc3MgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIHN0YXRzIChtYXkgbm8gbG9uZ2VyIGJl
IHJ1bm5pbmcpLgotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIHRvdGFs
IG51bWJlciBvZiB0aW1lcyB3ZSBjYWxsZWQgcHJlc2VudCAoaW5jbHVkZXMgcmVwcm9qZWN0ZWQg
ZnJhbWVzKQotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIHRvdGFsIG51
bWJlciBvZiB0aW1lcyBhbiBvbGQgZnJhbWUgd2FzIHJlLXNjYW5uZWQgb3V0ICh3aXRob3V0IHJl
cHJvamVjdGlvbikKLSAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsgLy8g
dG90YWwgbnVtYmVyIG9mIHRpbWVzIGEgZnJhbWUgd2FzIHNjYW5uZWQgb3V0IGEgc2Vjb25kIHRp
bWUgKHdpdGggcmVwcm9qZWN0aW9uKQotCi0gICAgICAgLyoqIFZhbHVlcyByZWNvcmRlZCBhdCBz
dGFydHVwIGJlZm9yZSBhcHBsaWNhdGlvbiBoYXMgZnVsbHkgZmFkZWQgaW4gdGhlIGZpcnN0IHRp
bWUuICovCi0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09uU3RhcnR1cDsKLSAg
ICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOwotCi0gICAgICAgLyoqIEFwcGxp
Y2F0aW9ucyBtYXkgZXhwbGljaXRseSBmYWRlIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhpcyBpcyB1
c3VhbGx5IHRvIGhhbmRsZSBsZXZlbCB0cmFuc2l0aW9ucywgYW5kIGxvYWRpbmcgb2Z0ZW4gY2F1
c2VzCi0gICAgICAgKiBzeXN0ZW0gd2lkZSBoaXRjaGVzLiAgVGhlIGZvbGxvd2luZyBzdGF0cyBh
cmUgY29sbGVjdGVkIGR1cmluZyB0aGlzIHBlcmlvZC4gIERvZXMgbm90IGluY2x1ZGUgdmFsdWVz
IHJlY29yZGVkIGR1cmluZyBzdGFydHVwLiAqLwotICAgICAgIHVpbnQzMl90IG1fbk51bUxvYWRp
bmc7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c0xvYWRpbmc7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7Ci0gICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOwotCi0gICAgICAgLyoqIElmIHdlIGRvbid0IGdl
dCBhIG5ldyBmcmFtZSBmcm9tIHRoZSBhcHAgaW4gbGVzcyB0aGFuIDIuNSBmcmFtZXMsIHRoZW4g
d2UgYXNzdW1lIHRoZSBhcHAgaGFzIGh1bmcgYW5kIHN0YXJ0Ci0gICAgICAgKiBmYWRpbmcgYmFj
ayB0byB0aGUgY29tcG9zaXRvci4gIFRoZSBmb2xsb3dpbmcgc3RhdHMgYXJlIGEgcmVzdWx0IG9m
IHRoaXMsIGFuZCBhcmUgYSBzdWJzZXQgb2YgdGhvc2UgcmVjb3JkZWQgYWJvdmUuCi0gICAgICAg
KiBEb2VzIG5vdCBpbmNsdWRlIHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnQgdXAgb3IgbG9h
ZGluZy4gKi8KLSAgICAgICB1aW50MzJfdCBtX25OdW1UaW1lZE91dDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJh
bWVzVGltZWRPdXQ7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCApCi0KLS8qKiBBbGxvd3MgdGhl
IGFwcGxpY2F0aW9uIHRvIGludGVyYWN0IHdpdGggdGhlIGNvbXBvc2l0b3IgKi8KLWNsYXNzIElW
UkNvbXBvc2l0b3IKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogU2V0cyB0cmFja2luZyBzcGFjZSBy
ZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0VHJhY2tp
bmdTcGFjZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiApID0gMDsKLQotICAgICAg
IC8qKiBHZXRzIGN1cnJlbnQgdHJhY2tpbmcgc3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2Vz
ICovCi0gICAgICAgdmlydHVhbCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBHZXRUcmFja2luZ1Nw
YWNlKCkgPSAwOwotCi0gICAgICAgLyoqIFNjZW5lIGFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbCB0
aGlzIGZ1bmN0aW9uIHRvIGdldCBwb3NlcyB0byByZW5kZXIgd2l0aCAoYW5kIG9wdGlvbmFsbHkg
cG9zZXMgcHJlZGljdGVkIGFuIGFkZGl0aW9uYWwgZnJhbWUgb3V0IHRvIHVzZSBmb3IgZ2FtZXBs
YXkpLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJsb2NrIHVudGlsICJydW5uaW5nIHN0
YXJ0IiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUsIGFuZCBzaG91
bGQgYmUgY2FsbGVkIGF0IHRoZSBsYXN0IG1vbWVudCBiZWZvcmUgbmVlZGluZyB0bwotICAgICAg
ICogc3RhcnQgcmVuZGVyaW5nLgotICAgICAgICoKLSAgICAgICAqIFJldHVybiBjb2RlczoKLSAg
ICAgICAqICAgICAgIC0gSXNOb3RTY2VuZUFwcGxpY2F0aW9uIChtYWtlIHN1cmUgdG8gY2FsbCBW
Ul9Jbml0IHdpdGggVlJBcHBsaWNhaXRvbl9TY2VuZSkKLSAgICAgICAqICAgICAgIC0gRG9Ob3RI
YXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBwIGhhcyB0YWtlbiBmb2N1cyAtIHRoaXMgd2lsbCB0aHJv
dHRsZSB0aGUgY2FsbCB0byAxMGh6IHRvIHJlZHVjZSB0aGUgaW1wYWN0IG9uIHRoYXQgYXBwKQot
ICAgICAgICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2Vz
KCBWUl9BUlJBWV9DT1VOVCh1blJlbmRlclBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9z
ZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LAot
ICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCh1bkdhbWVQb3NlQXJyYXlDb3VudCkgVHJhY2tl
ZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50ICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJu
ZWQgYnkgV2FpdEdldFBvc2VzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9y
IEdldExhc3RQb3NlcyggVlJfQVJSQVlfQ09VTlQoIHVuUmVuZGVyUG9zZUFycmF5Q291bnQgKSBU
cmFja2VkRGV2aWNlUG9zZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBv
c2VBcnJheUNvdW50LAotICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCggdW5HYW1lUG9zZUFy
cmF5Q291bnQgKSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3Qg
dW5HYW1lUG9zZUFycmF5Q291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogSW50ZXJmYWNlIGZvciBh
Y2Nlc3NpbmcgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzIG9uZSBh
dCBhIHRpbWUuCi0gICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX0luZGV4T3V0T2ZS
YW5nZSBpZiB1bkRldmljZUluZGV4IG5vdCBsZXNzIHRoYW4ga191bk1heFRyYWNrZWREZXZpY2VD
b3VudCBvdGhlcndpc2UgVlJDb21wb3NpdG9yRXJyb3JfTm9uZS4KLSAgICAgICAqIEl0IGlzIG9r
YXkgdG8gcGFzcyBOVUxMIGZvciBlaXRoZXIgcG9zZSBpZiB5b3Ugb25seSB3YW50IG9uZSBvZiB0
aGUgdmFsdWVzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4KCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0UG9zZSwgVHJhY2tlZERldmljZVBvc2Vf
dCAqcE91dHB1dEdhbWVQb3NlICkgPSAwOwotCi0gICAgICAgLyoqIFVwZGF0ZWQgc2NlbmUgdGV4
dHVyZSB0byBkaXNwbGF5LiBJZiBwQm91bmRzIGlzIE5VTEwgdGhlIGVudGlyZSB0ZXh0dXJlIHdp
bGwgYmUgdXNlZC4gIElmIGNhbGxlZCBmcm9tIGFuIE9wZW5HTCBhcHAsIGNvbnNpZGVyIGFkZGlu
ZyBhIGdsRmx1c2ggYWZ0ZXIKLSAgICAgICAqIFN1Ym1pdHRpbmcgYm90aCBmcmFtZXMgdG8gc2ln
bmFsIHRoZSBkcml2ZXIgdG8gc3RhcnQgcHJvY2Vzc2luZywgb3RoZXJ3aXNlIGl0IG1heSB3YWl0
IHVudGlsIHRoZSBjb21tYW5kIGJ1ZmZlciBmaWxscyB1cCwgY2F1c2luZyB0aGUgYXBwIHRvIG1p
c3MgZnJhbWVzLgotICAgICAgICoKLSAgICAgICAqIE9wZW5HTCBkaXJ0eSBzdGF0ZToKLSAgICAg
ICAqICAgICAgIGdsQmluZFRleHR1cmUKLSAgICAgICAqCi0gICAgICAgKiBSZXR1cm4gY29kZXM6
Ci0gICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJlIHRvIGNh
bGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCi0gICAgICAgKiAgICAgICAtIERv
Tm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMpCi0gICAgICAgKiAg
ICAgICAtIFRleHR1cmVJc09uV3JvbmdEZXZpY2UgKGFwcGxpY2F0aW9uIGRpZCBub3QgdXNlIHBy
b3BlciBBZGFwdGVySW5kZXggLSBzZWUgSVZSU3lzdGVtLkdldERYR0lPdXRwdXRJbmZvKQotICAg
ICAgICogICAgICAgLSBTaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCAoYXBwbGljYXRpb24gbmVl
ZHMgdG8gY2FsbCBDcmVhdGVEWEdJRmFjdG9yeTEgb3IgbGF0ZXIgYmVmb3JlIGNyZWF0aW5nIERY
IGRldmljZSkKLSAgICAgICAqICAgICAgIC0gVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCAo
c2NlbmUgdGV4dHVyZXMgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggRFhHSSBzaGFyaW5nIHJ1bGVz
IC0gZS5nLiB1bmNvbXByZXNzZWQsIG5vIG1pcHMsIGV0Yy4pCi0gICAgICAgKiAgICAgICAtIElu
dmFsaWRUZXh0dXJlICh1c3VhbGx5IG1lYW5zIGJhZCBhcmd1bWVudHMgcGFzc2VkIGluKQotICAg
ICAgICogICAgICAgLSBBbHJlYWR5U3VibWl0dGVkIChhcHAgaGFzIHN1Ym1pdHRlZCB0d28gbGVm
dCB0ZXh0dXJlcyBvciB0d28gcmlnaHQgdGV4dHVyZXMgaW4gYSBzaW5nbGUgZnJhbWUgLSBpLmUu
IGJlZm9yZSBjYWxsaW5nIFdhaXRHZXRQb3NlcyBhZ2FpbikKLSAgICAgICAqLwotICAgICAgIHZp
cnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdCggRVZSRXllIGVFeWUsIGNvbnN0IFRleHR1
cmVfdCAqcFRleHR1cmUsIGNvbnN0IFZSVGV4dHVyZUJvdW5kc190KiBwQm91bmRzID0gMCwgRVZS
U3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzID0gU3VibWl0X0RlZmF1bHQgKSA9IDA7Ci0KLSAgICAg
ICAvKiogQ2xlYXJzIHRoZSBmcmFtZSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIGxhc3QgY2FsbCB0
byBTdWJtaXQuIFRoaXMgd2lsbCBjYXVzZSB0aGUgCi0gICAgICAgKiBjb21wb3NpdG9yIHRvIHNo
b3cgdGhlIGdyaWQgdW50aWwgU3VibWl0IGlzIGNhbGxlZCBhZ2Fpbi4gKi8KLSAgICAgICB2aXJ0
dWFsIHZvaWQgQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ2Fs
bCBpbW1lZGlhdGVseSBhZnRlciBwcmVzZW50aW5nIHlvdXIgYXBwJ3Mgd2luZG93IChpLmUuIGNv
bXBhbmlvbiB3aW5kb3cpIHRvIHVuYmxvY2sgdGhlIGNvbXBvc2l0b3IuCi0gICAgICAgKiBUaGlz
IGlzIGFuIG9wdGlvbmFsIGNhbGwsIHdoaWNoIG9ubHkgbmVlZHMgdG8gYmUgdXNlZCBpZiB5b3Ug
Y2FuJ3QgaW5zdGVhZCBjYWxsIFdhaXRHZXRQb3NlcyBpbW1lZGlhdGVseSBhZnRlciBQcmVzZW50
LgotICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHlvdXIgZW5naW5lJ3MgcmVuZGVyIGFuZCBnYW1l
IGxvb3AgYXJlIG5vdCBvbiBzZXBhcmF0ZSB0aHJlYWRzLCBvciBibG9ja2luZyB0aGUgcmVuZGVy
IHRocmVhZCB1bnRpbCAzbXMgYmVmb3JlIHRoZSBuZXh0IHZzeW5jIHdvdWxkCi0gICAgICAgKiBp
bnRyb2R1Y2UgYSBkZWFkbG9jayBvZiBzb21lIHNvcnQuICBUaGlzIGZ1bmN0aW9uIHRlbGxzIHRo
ZSBjb21wb3NpdG9yIHRoYXQgeW91IGhhdmUgZmluaXNoZWQgYWxsIHJlbmRlcmluZyBhZnRlciBo
YXZpbmcgU3VibWl0dGVkIGJ1ZmZlcnMgZm9yIGJvdGgKLSAgICAgICAqIGV5ZXMsIGFuZCBpdCBp
cyBmcmVlIHRvIHN0YXJ0IGl0cyByZW5kZXJpbmcgd29yay4gIFRoaXMgc2hvdWxkIG9ubHkgYmUg
Y2FsbGVkIGZyb20gdGhlIHNhbWUgdGhyZWFkIHlvdSBhcmUgcmVuZGVyaW5nIG9uLiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBQb3N0UHJlc2VudEhhbmRvZmYoKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV0dXJucyB0cnVlIGlmIHRpbWluZyBkYXRhIGlzIGZpbGxlZCBpdC4gIFNldHMgb2xkZXN0IHRp
bWluZyBpbmZvIGlmIG5GcmFtZXNBZ28gaXMgbGFyZ2VyIHRoYW4gdGhlIHN0b3JlZCBoaXN0b3J5
LgotICAgICAgICogQmUgc3VyZSB0byBzZXQgdGltaW5nLnNpemUgPSBzaXplb2YoQ29tcG9zaXRv
cl9GcmFtZVRpbWluZykgb24gc3RydWN0IHBhc3NlZCBpbiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1
bmN0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRGcmFtZVRpbWluZyggQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyAqcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28gPSAwICkgPSAwOwot
Ci0gICAgICAgLyoqIEludGVyZmFjZSBmb3IgY29weWluZyBhIHJhbmdlIG9mIHRpbWluZyBkYXRh
LiAgRnJhbWVzIGFyZSByZXR1cm5lZCBpbiBhc2NlbmRpbmcgb3JkZXIgKG9sZGVzdCB0byBuZXdl
c3QpIHdpdGggdGhlIGxhc3QgYmVpbmcgdGhlIG1vc3QgcmVjZW50IGZyYW1lLgotICAgICAgICog
T25seSB0aGUgZmlyc3QgZW50cnkncyBtX25TaXplIG5lZWRzIHRvIGJlIHNldCwgYXMgdGhlIHJl
c3Qgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoYXQuICBSZXR1cm5zIHRvdGFsIG51bWJlciBvZiBl
bnRyaWVzIGZpbGxlZCBvdXQuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRGcmFtZVRp
bWluZ3MoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IG5GcmFtZXMg
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdGltZSBpbiBzZWNvbmRzIGxlZnQgaW4g
dGhlIGN1cnJlbnQgKGFzIGlkZW50aWZpZWQgYnkgRnJhbWVUaW1pbmcncyBmcmFtZUluZGV4KSBm
cmFtZS4KLSAgICAgICAqIER1ZSB0byAicnVubmluZyBzdGFydCIsIHRoaXMgdmFsdWUgbWF5IHJv
bGwgb3ZlciB0byB0aGUgbmV4dCBmcmFtZSBiZWZvcmUgZXZlciByZWFjaGluZyAwLjAuICovCi0g
ICAgICAgdmlydHVhbCBmbG9hdCBHZXRGcmFtZVRpbWVSZW1haW5pbmcoKSA9IDA7Ci0KLSAgICAg
ICAvKiogRmlsbHMgb3V0IHN0YXRzIGFjY3VtdWxhdGVkIGZvciB0aGUgbGFzdCBjb25uZWN0ZWQg
YXBwbGljYXRpb24uICBQYXNzIGluIHNpemVvZiggQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMg
KSBhcyBzZWNvbmQgcGFyYW1ldGVyLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRDdW11bGF0
aXZlU3RhdHMoIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICpwU3RhdHMsIHVpbnQzMl90IG5T
dGF0c1NpemVJbkJ5dGVzICkgPSAwOwotCi0gICAgICAgLyoqIEZhZGVzIHRoZSB2aWV3IG9uIHRo
ZSBITUQgdG8gdGhlIHNwZWNpZmllZCBjb2xvci4gVGhlIGZhZGUgd2lsbCB0YWtlIGZTZWNvbmRz
LCBhbmQgdGhlIGNvbG9yIHZhbHVlcyBhcmUgYmV0d2VlbgotICAgICAgICogMC4wIGFuZCAxLjAu
IFRoaXMgY29sb3IgaXMgZmFkZWQgb24gdG9wIG9mIHRoZSBzY2VuZSBiYXNlZCBvbiB0aGUgYWxw
aGEgcGFyYW1ldGVyLiBSZW1vdmluZyB0aGUgZmFkZSBjb2xvciBpbnN0YW50bHkgCi0gICAgICAg
KiB3b3VsZCBiZSBGYWRlVG9Db2xvciggMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAgKS4gIFZhbHVl
cyBhcmUgaW4gdW4tcHJlbXVsdGlwbGllZCBhbHBoYSBzcGFjZS4gKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgRmFkZVRvQ29sb3IoIGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3Jl
ZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQgPSBmYWxzZSAp
ID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBmYWRlIGNvbG9yIHZhbHVlLiAqLwotICAg
ICAgIHZpcnR1YWwgSG1kQ29sb3JfdCBHZXRDdXJyZW50RmFkZUNvbG9yKCBib29sIGJCYWNrZ3Jv
dW5kID0gZmFsc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogRmFkaW5nIHRoZSBHcmlkIGluIG9yIG91
dCBpbiBmU2Vjb25kcyAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBGYWRlR3JpZCggZmxvYXQgZlNl
Y29uZHMsIGJvb2wgYkZhZGVJbiApID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBhbHBo
YSB2YWx1ZSBvZiBncmlkLiAqLwotICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0Q3VycmVudEdyaWRB
bHBoYSgpID0gMDsKLQotICAgICAgIC8qKiBPdmVycmlkZSB0aGUgc2t5Ym94IHVzZWQgaW4gdGhl
IGNvbXBvc2l0b3IgKGUuZy4gZm9yIGR1cmluZyBsZXZlbCBsb2FkcyB3aGVuIHRoZSBhcHAgY2Fu
J3QgZmVlZCBzY2VuZSBpbWFnZXMgZmFzdCBlbm91Z2gpCi0gICAgICAgKiBPcmRlciBpcyBGcm9u
dCwgQmFjaywgTGVmdCwgUmlnaHQsIFRvcCwgQm90dG9tLiAgSWYgb25seSBhIHNpbmdsZSB0ZXh0
dXJlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBpbiBsYXQtbG9uZyBmb3JtYXQuCi0gICAgICAg
KiBJZiB0d28gYXJlIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBhIGxhdC1sb25nIHN0ZXJlbyBwYWly
LiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFNldFNreWJveE92ZXJyaWRl
KCBWUl9BUlJBWV9DT1VOVCggdW5UZXh0dXJlQ291bnQgKSBjb25zdCBUZXh0dXJlX3QgKnBUZXh0
dXJlcywgdWludDMyX3QgdW5UZXh0dXJlQ291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogUmVzZXRz
IGNvbXBvc2l0b3Igc2t5Ym94IGJhY2sgdG8gZGVmYXVsdHMuICovCi0gICAgICAgdmlydHVhbCB2
b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKSA9IDA7Ci0KLSAgICAgICAvKiogQnJpbmdzIHRoZSBj
b21wb3NpdG9yIHdpbmRvdyB0byB0aGUgZnJvbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBjb3Zlcmlu
ZyBhbnkgb3RoZXIgd2luZG93IHRoYXQgbWF5IGJlIG9uIHRoZSBITUQKLSAgICAgICAqIGFuZCBp
cyBvYnNjdXJpbmcgdGhlIGNvbXBvc2l0b3Igd2luZG93LiAqLwotICAgICAgIHZpcnR1YWwgdm9p
ZCBDb21wb3NpdG9yQnJpbmdUb0Zyb250KCkgPSAwOwotCi0gICAgICAgLyoqIFB1c2hlcyB0aGUg
Y29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGJhY2suIFRoaXMgaXMgdXNlZnVsIGZvciBhbGxvd2lu
ZyBvdGhlciBhcHBsaWNhdGlvbnMgdG8gZHJhdyBkaXJlY3RseSB0byB0aGUgSE1ELiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yR29Ub0JhY2soKSA9IDA7Ci0KLSAgICAgICAvKiog
VGVsbHMgdGhlIGNvbXBvc2l0b3IgcHJvY2VzcyB0byBjbGVhbiB1cCBhbmQgZXhpdC4gWW91IGRv
IG5vdCBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBhdCBzaHV0ZG93bi4gVW5kZXIgbm9ybWFs
IAotICAgICAgICogY2lyY3Vtc3RhbmNlcyB0aGUgY29tcG9zaXRvciB3aWxsIG1hbmFnZSBpdHMg
b3duIGxpZmUgY3ljbGUgYmFzZWQgb24gd2hhdCBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JRdWl0KCkgPSAwOwotICAgICAgIAotICAg
ICAgIC8qKiBSZXR1cm4gd2hldGhlciB0aGUgY29tcG9zaXRvciBpcyBmdWxsc2NyZWVuICovCi0g
ICAgICAgdmlydHVhbCBib29sIElzRnVsbHNjcmVlbigpID0gMDsKLQotICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBwcm9jZXNzIElEIG9mIHRoZSBwcm9jZXNzIHRoYXQgaXMgY3VycmVudGx5IHJlbmRl
cmluZyB0aGUgc2NlbmUgKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEN1cnJlbnRTY2Vu
ZUZvY3VzUHJvY2VzcygpID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElE
IG9mIHRoZSBwcm9jZXNzIHRoYXQgcmVuZGVyZWQgdGhlIGxhc3QgZnJhbWUgKG9yIDAgaWYgdGhl
IGNvbXBvc2l0b3IgaXRzZWxmIHJlbmRlcmVkIHRoZSBmcmFtZS4pCi0gICAgICAgKiBSZXR1cm5z
IDAgd2hlbiBmYWRpbmcgb3V0IGZyb20gYW4gYXBwIGFuZCB0aGUgYXBwJ3MgcHJvY2VzcyBJZCB3
aGVuIGZhZGluZyBpbnRvIGFuIGFwcC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldExh
c3RGcmFtZVJlbmRlcmVyKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUg
Y3VycmVudCBwcm9jZXNzIGhhcyB0aGUgc2NlbmUgZm9jdXMgKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgQ2FuUmVuZGVyU2NlbmUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIHdpbmRvdyBv
biB0aGUgcHJpbWFyeSBtb25pdG9yIHRvIGRpc3BsYXkgd2hhdCBpcyBiZWluZyBzaG93biBpbiB0
aGUgaGVhZHNldC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2hvd01pcnJvcldpbmRvdygpID0g
MDsKLQotICAgICAgIC8qKiBDbG9zZXMgdGhlIG1pcnJvciB3aW5kb3cuICovCi0gICAgICAgdmly
dHVhbCB2b2lkIEhpZGVNaXJyb3JXaW5kb3coKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0
cnVlIGlmIHRoZSBtaXJyb3Igd2luZG93IGlzIHNob3duLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBJc01pcnJvcldpbmRvd1Zpc2libGUoKSA9IDA7Ci0KLSAgICAgICAvKiogV3JpdGVzIGFsbCBp
bWFnZXMgdGhhdCB0aGUgY29tcG9zaXRvciBrbm93cyBhYm91dCAoaW5jbHVkaW5nIG92ZXJsYXlz
KSB0byBhICdzY3JlZW5zaG90cycgZm9sZGVyIGluIHRoZSBTdGVhbVZSIHJ1bnRpbWUgcm9vdC4g
Ki8KLSAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckR1bXBJbWFnZXMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogTGV0IGFuIGFwcCBrbm93IGl0IHNob3VsZCBiZSByZW5kZXJpbmcgd2l0aCBsb3cg
cmVzb3VyY2VzLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBTaG91bGRBcHBSZW5kZXJXaXRoTG93
UmVzb3VyY2VzKCkgPSAwOwotCi0gICAgICAgLyoqIE92ZXJyaWRlIGludGVybGVhdmVkIHJlcHJv
amVjdGlvbiBsb2dpYyB0byBmb3JjZSBvbi4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKCBib29sIGJPdmVycmlkZSApID0gMDsKLQotICAgICAg
IC8qKiBGb3JjZSByZWNvbm5lY3RpbmcgdG8gdGhlIGNvbXBvc2l0b3IgcHJvY2Vzcy4gKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkgPSAwOwotCi0gICAgICAg
LyoqIFRlbXBvcmFyaWx5IHN1c3BlbmRzIHJlbmRlcmluZyAodXNlZnVsIGZvciBmaW5lciBjb250
cm9sIG92ZXIgc2NlbmUgdHJhbnNpdGlvbnMpLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBTdXNw
ZW5kUmVuZGVyaW5nKCBib29sIGJTdXNwZW5kICkgPSAwOwotCi0gICAgICAgLyoqIE9wZW5zIGEg
c2hhcmVkIEQzRDExIHRleHR1cmUgd2l0aCB0aGUgdW5kaXN0b3J0ZWQgY29tcG9zaXRlZCBpbWFn
ZSBmb3IgZWFjaCBleWUuICBVc2UgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSB3aGVuIGZpbmlz
aGVkCi0gICAgICAgKiBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGUgcmVzb3VyY2Ug
aXRzZWxmLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBHZXRNaXJy
b3JUZXh0dXJlRDNEMTEoIHZyOjpFVlJFeWUgZUV5ZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNv
dXJjZSwgdm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7Ci0gICAgICAgdmly
dHVhbCB2b2lkIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEoIHZvaWQgKnBEM0QxMVNoYWRlclJl
c291cmNlVmlldyApID0gMDsKLQotICAgICAgIC8qKiBBY2Nlc3MgdG8gbWlycm9yIHRleHR1cmVz
IGZyb20gT3BlbkdMLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRNaXJyb3JUZXh0dXJlR0woIHZyOjpFVlJFeWUgZUV5ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0
dXJlSWQsIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqcGdsU2hhcmVkVGV4dHVyZUhhbmRs
ZSApID0gMDsKLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSggdnI6
OmdsVUludF90IGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBMb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBVbmxvY2tHTFNoYXJlZFRleHR1
cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVI
YW5kbGUgKSA9IDA7Ci0KLSAgICAgICAvKiogW1Z1bGthbiBPbmx5XQotICAgICAgICogcmV0dXJu
IDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRl
cyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0g
ICAgICAgKiBudWxsLiAgVGhlIHN0cmluZyB3aWxsIGJlIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qg
b2YtcmVxdWlyZWQgaW5zdGFuY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4gVmtDcmVhdGVJbnN0
YW5jZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5C
dWZmZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIFtWdWxrYW4gb25seV0KLSAgICAgICAqIHJl
dHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGlu
ZwotICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFyYXRlZCBs
aXN0IG9mIHJlcXVpcmVkIGRldmljZSBleHRlbnNpb25zIHRvIGVuYWJsZSBpbiBWa0NyZWF0ZURl
dmljZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9u
c1JlcXVpcmVkKCBWa1BoeXNpY2FsRGV2aWNlX1QgKnBQaHlzaWNhbERldmljZSwgVlJfT1VUX1NU
UklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAg
ICAgICAvKiogWyBWdWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBUaGVyZSBhcmUgdHdvIHB1
cnBvc2VzIGZvciBTZXRFeHBsaWNpdFRpbWluZ01vZGU6Ci0gICAgICAgKiAgICAgICAxLiBUbyBn
ZXQgYSBtb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGZyYW1lIGJlZ2lu
cyBpbiBWdWxrYW4vRDNEMTIgYXBwbGljYXRpb25zLgotICAgICAgICogICAgICAgMi4gKE9wdGlv
bmFsKSBUbyBhdm9pZCBoYXZpbmcgV2FpdEdldFBvc2VzIGFjY2VzcyB0aGUgVnVsa2FuIHF1ZXVl
IHNvIHRoYXQgdGhlIHF1ZXVlIGNhbiBiZSBhY2Nlc3NlZCBmcm9tCi0gICAgICAgKiAgICAgICBh
bm90aGVyIHRocmVhZCB3aGlsZSBXYWl0R2V0UG9zZXMgaXMgZXhlY3V0aW5nLgotICAgICAgICoK
LSAgICAgICAqIE1vcmUgYWNjdXJhdGUgR1BVIHRpbWVzdGFtcCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBmcmFtZSBpcyBhY2hpZXZlZCBieSB0aGUgYXBwbGljYXRpb24gY2FsbGluZwotICAgICAgICog
U3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIGltbWVkaWF0ZWx5IGJlZm9yZSBpdHMgZmlyc3Qgc3Vi
bWlzc2lvbiB0byB0aGUgVnVsa2FuL0QzRDEyIHF1ZXVlLgotICAgICAgICogVGhpcyBpcyBtb3Jl
IGFjY3VyYXRlIGJlY2F1c2Ugbm9ybWFsbHkgdGhpcyBHUFUgdGltZXN0YW1wIGlzIHJlY29yZGVk
IGR1cmluZyBXYWl0R2V0UG9zZXMuICBJbiBEM0QxMSwgCi0gICAgICAgKiBXYWl0R2V0UG9zZXMg
cXVldWVzIGEgR1BVIHRpbWVzdGFtcCB3cml0ZSwgYnV0IGl0IGRvZXMgbm90IGFjdHVhbGx5IGdl
dCBzdWJtaXR0ZWQgdG8gdGhlIEdQVSB1bnRpbCB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlvbiBm
bHVzaGVzLiAgQnkgdXNpbmcgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhLCB0aGUgdGltZXN0YW1w
IGlzIHJlY29yZGVkIGF0IHRoZSBzYW1lIHBsYWNlIGZvciAKLSAgICAgICAqIFZ1bGthbi9EM0Qx
MiBhcyBpdCBpcyBmb3IgRDNEMTEsIHJlc3VsdGluZyBpbiBhIG1vcmUgYWNjdXJhdGUgR1BVIHRp
bWUgbWVhc3VyZW1lbnQgZm9yIHRoZSBmcmFtZS4KLSAgICAgICAqCi0gICAgICAgKiBBdm9pZGlu
ZyBXYWl0R2V0UG9zZXMgYWNjZXNzaW5nIHRoZSBWdWxrYW4gcXVldWUgY2FuIGJlIGFjaGlldmVk
IHVzaW5nIFNldEV4cGxpY2l0VGltaW5nTW9kZSBhcyB3ZWxsLiAgSWYgdGhpcyBpcyBkZXNpcmVk
LAotICAgICAgICogdGhlIGFwcGxpY2F0aW9uICpNVVNUKiBjYWxsIFBvc3RQcmVzZW50SGFuZG9m
ZiBpdHNlbGYgcHJpb3IgdG8gV2FpdEdldFBvc2VzLiAgSWYgU2V0RXhwbGljaXRUaW1pbmdNb2Rl
IGlzIHRydWUgYW5kIHRoZQotICAgICAgICogYXBwbGljYXRpb24gY2FsbHMgUG9zdFByZXNlbnRI
YW5kb2ZmLCB0aGVuIFdhaXRHZXRQb3NlcyBpcyBndWFyYW50ZWVkIG5vdCB0byBhY2Nlc3MgdGhl
IHF1ZXVlLiAgTm90ZSB0aGF0IFBvc3RQcmVzZW50SGFuZG9mZgotICAgICAgICogYW5kIFN1Ym1p
dEV4cGxpY2l0VGltaW5nRGF0YSB3aWxsIGFjY2VzcyB0aGUgcXVldWUsIHNvIG9ubHkgV2FpdEdl
dFBvc2VzIGJlY29tZXMgc2FmZSBmb3IgYWNjZXNzaW5nIHRoZSBxdWV1ZSBmcm9tIGFub3RoZXIK
LSAgICAgICAqIHRocmVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RXhwbGljaXRUaW1p
bmdNb2RlKCBib29sIGJFeHBsaWNpdFRpbWluZ01vZGUgKSA9IDA7Ci0KLSAgICAgICAvKiogWyBW
dWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBTdWJtaXQgZXhwbGljaXQgdGltaW5nIGRhdGEu
ICBXaGVuIFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyB0cnVlLCB0aGlzIG11c3QgYmUgY2FsbGVk
IGltbWVkaWF0ZWx5IGJlZm9yZQotICAgICAgICogdGhlIGFwcGxpY2F0aW9uJ3MgZmlyc3QgdmtR
dWV1ZVN1Ym1pdCAoVnVsa2FuKSBvciBJRDNEMTJDb21tYW5kUXVldWU6OkV4ZWN1dGVDb21tYW5k
TGlzdHMgKEQzRDEyKSBvZiBlYWNoIGZyYW1lLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxs
IGluc2VydCBhIEdQVSB0aW1lc3RhbXAgd3JpdGUganVzdCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9u
IHN0YXJ0cyBpdHMgcmVuZGVyaW5nLiAgVGhpcyBmdW5jdGlvbgotICAgICAgICogd2lsbCBwZXJm
b3JtIGEgdmtRdWV1ZVN1Ym1pdCBvbiBWdWxrYW4gc28gbXVzdCBub3QgYmUgZG9uZSBzaW11bHRh
bmVvdXNseSB3aXRoIFZrUXVldWUgb3BlcmF0aW9ucyBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAg
ICAqIFJldHVybnMgVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVzdEZhaWxlZCBpZiBTZXRFeHBsaWNp
dFRpbWluZ01vZGUgaXMgbm90IGVuYWJsZWQuICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3Np
dG9yRXJyb3IgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhKCkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8w
MjEiOwotCi19IC8vIG5hbWVzcGFjZSB2cgotCi0KLQotLy8gaXZybm90aWZpY2F0aW9ucy5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotLy8gVXNlZCBmb3Ig
cGFzc2luZyBncmFwaGljIGRhdGEKLXN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdAotewotICAg
ICAgIE5vdGlmaWNhdGlvbkJpdG1hcF90KCkKLSAgICAgICAgICAgICAgOiBtX3BJbWFnZURhdGEo
IG51bGxwdHIgKQotICAgICAgICAgICAgICAsIG1fbldpZHRoKCAwICkKLSAgICAgICAgICAgICAg
LCBtX25IZWlnaHQoIDAgKQotICAgICAgICAgICAgICAsIG1fbkJ5dGVzUGVyUGl4ZWwoIDAgKQot
ICAgICAgIHsKLSAgICAgICB9OwotCi0gICAgICAgdm9pZCAqbV9wSW1hZ2VEYXRhOwotICAgICAg
IGludDMyX3QgbV9uV2lkdGg7Ci0gICAgICAgaW50MzJfdCBtX25IZWlnaHQ7Ci0gICAgICAgaW50
MzJfdCBtX25CeXRlc1BlclBpeGVsOwotfTsKLQotCi0vKiogQmUgYXdhcmUgdGhhdCB0aGUgbm90
aWZpY2F0aW9uIHR5cGUgaXMgdXNlZCBhcyAncHJpb3JpdHknIHRvIHBpY2sgdGhlIG5leHQgbm90
aWZpY2F0aW9uICovCi1lbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICAvKiogVHJh
bnNpZW50IG5vdGlmaWNhdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgaGlkZGVuIGFmdGVyIGEgcGVy
aW9kIG9mIHRpbWUgc2V0IGJ5IHRoZSB1c2VyLiAKLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9y
IHRoaW5ncyBsaWtlIGluZm9ybWF0aW9uIGFuZCBjaGF0IG1lc3NhZ2VzIHRoYXQgZG8gbm90IHJl
cXVpcmUgdXNlciBpbnRlcmFjdGlvbi4gKi8KLSAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1Ry
YW5zaWVudCA9IDAsCi0KLSAgICAgICAvKiogUGVyc2lzdGVudCBub3RpZmljYXRpb25zIGFyZSBz
aG93biB0byB0aGUgdXNlciB1bnRpbCB0aGV5IGFyZSBoaWRkZW4gYnkgY2FsbGluZyBSZW1vdmVO
b3RpZmljYXRpb24oKS4KLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9yIHRoaW5ncyBsaWtlIHBo
b25lIGNhbGxzIGFuZCBhbGFybXMgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwKLQotICAgICAgIC8qKiBT
eXN0ZW0gbm90aWZpY2F0aW9ucyBhcmUgc2hvd24gbm8gbWF0dGVyIHdoYXQuIEl0IGlzIGV4cGVj
dGVkLCB0aGF0IHRoZSB1bFVzZXJWYWx1ZSBpcyB1c2VkIGFzIElELgotICAgICAgICAqIElmIHRo
ZXJlIGlzIGFscmVhZHkgYSBzeXN0ZW0gbm90aWZpY2F0aW9uIGluIHRoZSBxdWV1ZSB3aXRoIHRo
YXQgSUQgaXQgaXMgbm90IGFjY2VwdGVkIGludG8gdGhlIHF1ZXVlCi0gICAgICAgICogdG8gcHJl
dmVudCBzcGFtbWluZyB3aXRoIHN5c3RlbSBub3RpZmljYXRpb24gKi8KLSAgICAgICBFVlJOb3Rp
ZmljYXRpb25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKLX07Ci0KLWVu
dW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKLXsKLSAgICAgICAvKiogQ3JlYXRlcyBhIG5vdGlmaWNh
dGlvbiB3aXRoIG1pbmltYWwgZXh0ZXJuYWwgc3R5bGluZy4gKi8KLSAgICAgICBFVlJOb3RpZmlj
YXRpb25TdHlsZV9Ob25lID0gMCwKLQotICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25z
IGFib3V0IG92ZXJsYXktbGV2ZWwgc3RhdHVzLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGV2
ZW50cyBsaWtlIGRvd25sb2FkcyBjb21wbGV0aW5nLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotCi0gICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNh
dGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgdW5rbm93biBvciBub3QgYXZhaWxhYmxlLiBJ
biBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZyaWVuZCBpbnZpdGF0aW9ucyBhbmQgb2ZmbGluZSBm
cmllbmRzLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRGlzYWJsZWQg
PSAyMDAsCi0KLSAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0
cyB0aGF0IGFyZSBhdmFpbGFibGUgYnV0IGluYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQg
Zm9yIGZyaWVuZHMgdGhhdCBhcmUgb25saW5lIGJ1dCBub3QgcGxheWluZyBhIGdhbWUuICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9FbmFibGVkID0gMjAxLAotCi0gICAg
ICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgYXZh
aWxhYmxlIGFuZCBhY3RpdmUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0
IGFyZSBvbmxpbmUgYW5kIGN1cnJlbnRseSBydW5uaW5nIGEgZ2FtZS4gKi8KLSAgICAgICBFVlJO
b3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSA9IDIwMiwKLX07Ci0KLXN0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci0KLXR5cGVkZWYg
dWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLQotCi0KLSNwcmFnbWEgcGFjayggcG9wICkKLQot
LyoqIEFsbG93cyBub3RpZmljYXRpb24gc291cmNlcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBWUiBz
eXN0ZW0KLSAgICAgICBUaGlzIGN1cnJlbnQgaW50ZXJmYWNlIGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQuIERvIG5vdCB1c2UgeWV0LiAqLwotY2xhc3MgSVZSTm90aWZpY2F0aW9ucwotewotcHVibGlj
OgotICAgICAgIC8qKiBDcmVhdGUgYSBub3RpZmljYXRpb24gYW5kIGVucXVldWUgaXQgdG8gYmUg
c2hvd24gdG8gdGhlIHVzZXIuCi0gICAgICAgKiBBbiBvdmVybGF5IGhhbmRsZSBpcyByZXF1aXJl
ZCB0byBjcmVhdGUgYSBub3RpZmljYXRpb24sIGFzIG90aGVyd2lzZSBpdCB3b3VsZCBiZSBpbXBv
c3NpYmxlIGZvciBhIHVzZXIgdG8gYWN0IG9uIGl0LgotICAgICAgICogVG8gY3JlYXRlIGEgdHdv
LWxpbmUgbm90aWZpY2F0aW9uLCB1c2UgYSBsaW5lIGJyZWFrICgnXG4nKSB0byBzcGxpdCB0aGUg
dGV4dCBpbnRvIHR3byBsaW5lcy4KLSAgICAgICAqIFRoZSBwSW1hZ2UgYXJndW1lbnQgbWF5IGJl
IE5VTEwsIGluIHdoaWNoIGNhc2UgdGhlIHNwZWNpZmllZCBvdmVybGF5J3MgaWNvbiB3aWxsIGJl
IHVzZWQgaW5zdGVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIENy
ZWF0ZU5vdGlmaWNhdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
NjRfdCB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjb25zdCBjaGFyICpw
Y2hUZXh0LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgY29uc3QgTm90aWZpY2F0aW9uQml0
bWFwX3QgKnBJbWFnZSwgLyogb3V0ICovIFZSTm90aWZpY2F0aW9uSWQgKnBOb3RpZmljYXRpb25J
ZCApID0gMDsKLQotICAgICAgIC8qKiBEZXN0cm95IGEgbm90aWZpY2F0aW9uLCBoaWRpbmcgaXQg
Zmlyc3QgaWYgaXQgY3VycmVudGx5IHNob3duIHRvIHRoZSB1c2VyLiAqLwotICAgICAgIHZpcnR1
YWwgRVZSTm90aWZpY2F0aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKCBWUk5vdGlmaWNhdGlv
bklkIG5vdGlmaWNhdGlvbklkICkgPSAwOwotCi19OwotCi1zdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0K
LX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJvdmVybGF5LmgKLW5hbWVzcGFjZSB2cgot
ewotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IGtleSBpbiBi
eXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiAqLwotICAgICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owot
Ci0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IG5hbWUgaW4gYnl0
ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4gKi8KLSAgICAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7Ci0K
LSAgICAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIG92ZXJsYXlzIHRoYXQgY2FuIGV4aXN0
IGluIHRoZSBzeXN0ZW0gYXQgb25lIHRpbWUuICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKLQotICAgICAgIC8qKiBUaGUgbWF4aW11bSBu
dW1iZXIgb2Ygb3ZlcmxheSBpbnRlcnNlY3Rpb24gbWFzayBwcmltaXRpdmVzIHBlciBvdmVybGF5
ICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotCi0gICAgICAgLyoqIFR5cGVzIG9mIGlucHV0
IHN1cHBvcnRlZCBieSBWUiBPdmVybGF5cyAqLwotICAgICAgIGVudW0gVlJPdmVybGF5SW5wdXRN
ZXRob2QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUg
ICAgICAgICAgICAgID0gMCwgLy8gTm8gaW5wdXQgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIGF1
dG9tYXRpY2FsbHkgZm9yIHRoaXMgb3ZlcmxheQotICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1
dE1ldGhvZF9Nb3VzZSAgICAgICAgICAgICAgPSAxLCAvLyBUcmFja2VkIGNvbnRyb2xsZXJzIHdp
bGwgZ2V0IG1vdXNlIGV2ZW50cyBhdXRvbWF0aWNhbGx5Ci0gICAgICAgfTsKLQotICAgICAgIC8q
KiBBbGxvd3MgdGhlIGNhbGxlciB0byBmaWd1cmUgb3V0IHdoaWNoIG92ZXJsYXkgdHJhbnNmb3Jt
IGdldHRlciB0byBjYWxsLiAqLwotICAgICAgIGVudW0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRpdmUgICAgICAgPSAxLAotICAgICAgICAgICAg
ICBWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSAgICAgICAgICAgICAgICAgICAgID0g
MiwKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQgICAg
ICAgICAgICAgICA9IDMsCi0gICAgICAgfTsKLQotICAgICAgIC8qKiBPdmVybGF5IGNvbnRyb2wg
c2V0dGluZ3MgKi8KLSAgICAgICBlbnVtIFZST3ZlcmxheUZsYWdzCi0gICAgICAgewotICAgICAg
ICAgICAgICBWUk92ZXJsYXlGbGFnc19Ob25lICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0g
ICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgb25seSB0YWtlIGVmZmVjdCB3aGVuIHJlbmRl
cmVkIHVzaW5nIHRoZSBoaWdoIHF1YWxpdHkgcmVuZGVyIHBhdGggKHNlZSBTZXRIaWdoUXVhbGl0
eU92ZXJsYXkpLgotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgICAgICAgICAg
ICAgID0gMSwKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdTUzRYICAgICAgICAgICAg
ICA9IDIsCi0KLSAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBvbiBhIGRhc2hib2FyZCBv
dmVybGF5IHRvIHByZXZlbnQgYSB0YWIgZnJvbSBzaG93aW5nIHVwIGZvciB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNoYm9hcmRUYWIgPSAzLAotCi0gICAg
ICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBkYXNoYm9hcmQgdGhhdCBpcyBhYmxlIHRv
IGRlYWwgd2l0aCBnYW1lcGFkIGZvY3VzIGV2ZW50cwotICAgICAgICAgICAgICBWUk92ZXJsYXlG
bGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0KLSAgICAgICAgICAgICAgLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIG92ZXJsYXkgc2hvdWxkIGRpbS9icmlnaHRlbiB0byBzaG93IGdhbWVwYWQg
Zm9jdXMKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUs
Ci0KLSAgICAgICAgICAgICAgLy8gV2hlbiBpbiBWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSB5
b3UgY2FuIG9wdGlvbmFsbHkgZW5hYmxlIHNlbmRpbmcgVlJTY3JvbGxfdCAKLSAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMgPSA3LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCB0aGlzIHdpbGwgcmVuZGVyIGEgdmVydGljYWwgc2Nyb2xsIHdoZWVsIG9uIHRo
ZSBwcmltYXJ5IGNvbnRyb2xsZXIsIAotICAgICAgICAgICAgICAvLyAgb25seSBuZWVkZWQgaWYg
bm90IHVzaW5nIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyBidXQgeW91IHN0aWxs
IHdhbnQgdG8gcmVwcmVzZW50IGEgc2Nyb2xsIHdoZWVsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsID0gOCwKLQotICAgICAgICAgICAgICAvLyBJ
ZiB0aGlzIGlzIHNldCBvd25lcnNoaXAgYW5kIHJlbmRlciBhY2Nlc3MgdG8gdGhlIG92ZXJsYXkg
YXJlIHRyYW5zZmVycmVkIAotICAgICAgICAgICAgICAvLyB0byB0aGUgbmV3IHNjZW5lIHByb2Nl
c3Mgb24gYSBjYWxsIHRvIElWUkFwcGxpY2F0aW9uczo6TGF1bmNoSW50ZXJuYWxQcm9jZXNzCi0g
ICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRlcm5hbFBy
b2Nlc3MgPSA5LAotCi0gICAgICAgICAgICAgIC8vIElmIHNldCwgcmVuZGVycyA1MCUgb2YgdGhl
IHRleHR1cmUgaW4gZWFjaCBleWUsIHNpZGUgYnkgc2lkZQotICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsID0gMTAsIC8vIFRleHR1cmUgaXMgbGVmdC9yaWdo
dAotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwg
Ly8gVGV4dHVyZSBpcyBjcm9zc2VkIGFuZCByaWdodC9sZWZ0Ci0KLSAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwgLy8gVGV4dHVyZSBpcyBhIHBhbm9yYW1hCi0gICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsIC8vIFRleHR1cmUg
aXMgYSBzdGVyZW8gcGFub3JhbWEKLQotICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHNldCBv
biBhbiBvdmVybGF5IG93bmVkIGJ5IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgLy8gd2lsbCBiZSBzb3J0ZWQgd2l0aCB0aGUgIk90aGVyIiBvdmVybGF5
cyBvbiB0b3Agb2YgYWxsIG90aGVyIHNjZW5lIG92ZXJsYXlzCi0gICAgICAgICAgICAgIFZST3Zl
cmxheUZsYWdzX1NvcnRXaXRoTm9uU2NlbmVPdmVybGF5cyA9IDE0LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCwgdGhlIG92ZXJsYXkgd2lsbCBiZSBzaG93biBpbiB0aGUgZGFzaGJvYXJkLCBv
dGhlcndpc2UgaXQgd2lsbCBiZSBoaWRkZW4uCi0gICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdz
X1Zpc2libGVJbkRhc2hib2FyZCA9IDE1LAotICAgICAgIH07Ci0KLSAgICAgICBlbnVtIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zl
cmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzAgPSAwLAotICAgICAgICAgICAgICBWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSA9IDEsCi0gICAgICAgICAgICAgIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18yID0gMiwKLSAgICAgICAgICAgICAgVlJNZXNz
YWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAotICAgICAgICAgICAgICBWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0gNCwKLSAgICAg
ICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kT3JDcmVhdGVDbGll
bnRPdmVybGF5PSA1LAotICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQXBw
bGljYXRpb25RdWl0ID0gNgotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50
ZXJzZWN0aW9uUGFyYW1zX3QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2
U291cmNlOwotICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKLSAgICAgICAg
ICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKLSAgICAgICB9OwotCi0gICAg
ICAgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAotICAgICAgIHsKLSAgICAg
ICAgICAgICAgSG1kVmVjdG9yM190IHZQb2ludDsKLSAgICAgICAgICAgICAgSG1kVmVjdG9yM190
IHZOb3JtYWw7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjJfdCB2VVZzOwotICAgICAgICAgICAg
ICBmbG9hdCBmRGlzdGFuY2U7Ci0gICAgICAgfTsKLQotICAgICAgIC8vIElucHV0IG1vZGVzIGZv
ciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5Ci0gICAgICAgZW51bSBFR2FtZXBh
ZFRleHRJbnB1dE1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlTm9ybWFsID0gMCwKLSAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVQ
YXNzd29yZCA9IDEsCi0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0
ID0gMiwKLSAgICAgICB9OwotCi0gICAgICAgLy8gQ29udHJvbHMgbnVtYmVyIG9mIGFsbG93ZWQg
bGluZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRleHQgZW50cnkKLSAgICAgICBlbnVt
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdh
bWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgICAgICAgICBrX0VH
YW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMQotICAgICAgIH07Ci0KLSAg
ICAgICAvKiogRGlyZWN0aW9ucyBmb3IgY2hhbmdpbmcgZm9jdXMgYmV0d2VlbiBvdmVybGF5cyB3
aXRoIHRoZSBnYW1lcGFkICovCi0gICAgICAgZW51bSBFT3ZlcmxheURpcmVjdGlvbgotICAgICAg
IHsKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9VcCA9IDAsCi0gICAgICAgICAgICAg
IE92ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rp
b25fTGVmdCA9IDIsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fUmlnaHQgPSAzLAot
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQs
Ci0gICAgICAgfTsKLQotICAgICAgIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlCi0gICAgICAgewotICAgICAgICAgICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJp
bWl0aXZlVHlwZV9SZWN0YW5nbGUsCi0gICAgICAgICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX0NpcmNsZSwKLSAgICAgICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2Vj
dGlvbk1hc2tSZWN0YW5nbGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbFRv
cExlZnRYOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgICAgICAg
IGZsb2F0IG1fZmxXaWR0aDsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLSAgICAg
ICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdAotICAgICAgIHsK
LSAgICAgICAgICAgICAgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgICAgICAgIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsUmFkaXVzOwotICAgICAgIH07Ci0K
LSAgICAgICAvKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1VU1QgbWFudWFsbHkg
dXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5IGFuZCBvcGVudnJfYXBpX2ZsYXQuaC5weSAqLwot
ICAgICAgIHR5cGVkZWYgdW5pb24KLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludGVyc2VjdGlv
bk1hc2tSZWN0YW5nbGVfdCBtX1JlY3RhbmdsZTsKLSAgICAgICAgICAgICAgSW50ZXJzZWN0aW9u
TWFza0NpcmNsZV90IG1fQ2lyY2xlOwotICAgICAgIH0gVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV90Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICAgICAgICAg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci0g
ICAgICAgfTsKLQotICAgICAgIGNsYXNzIElWUk92ZXJsYXkKLSAgICAgICB7Ci0gICAgICAgcHVi
bGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IG1hbmFnZW1lbnQgbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogRmluZHMgYW4gZXhpc3Rpbmcgb3ZlcmxheSB3
aXRoIHRoZSBzcGVjaWZpZWQga2V5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBGaW5kT3ZlcmxheSggY29uc3QgY2hhciAqcGNoT3ZlcmxheUtleSwgVlJPdmVybGF5
SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ3Jl
YXRlcyBhIG5ldyBuYW1lZCBvdmVybGF5LiBBbGwgb3ZlcmxheXMgc3RhcnQgaGlkZGVuIGFuZCB3
aXRoIGRlZmF1bHQgc2V0dGluZ3MuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIENyZWF0ZU92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNo
YXIgKnBjaE92ZXJsYXlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBEZXN0cm95cyB0aGUgc3BlY2lmaWVkIG92ZXJsYXku
IFdoZW4gYW4gYXBwbGljYXRpb24gY2FsbHMgVlJfU2h1dGRvd24gYWxsIG92ZXJsYXlzIGNyZWF0
ZWQgYnkgdGhhdCBhcHAgYXJlCi0gICAgICAgICAgICAgICogYXV0b21hdGljYWxseSBkZXN0cm95
ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIERlc3Ryb3lPdmVy
bGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFNwZWNpZnkgd2hpY2ggb3ZlcmxheSB0byB1c2UgdGhlIGhpZ2ggcXVhbGl0eSBy
ZW5kZXIgcGF0aC4gIFRoaXMgb3ZlcmxheSB3aWxsIGJlIGNvbXBvc2l0ZWQgaW4gZHVyaW5nIHRo
ZSBkaXN0b3J0aW9uIHBhc3Mgd2hpY2gKLSAgICAgICAgICAgICAgKiByZXN1bHRzIGluIGl0IGRy
YXdpbmcgb24gdG9wIG9mIGV2ZXJ5dGhpbmcgZWxzZSwgYnV0IGFsc28gYXQgYSBoaWdoZXIgcXVh
bGl0eSBhcyBpdCBzYW1wbGVzIHRoZSBzb3VyY2UgdGV4dHVyZSBkaXJlY3RseSByYXRoZXIgdGhh
bgotICAgICAgICAgICAgICAqIHJhc3Rlcml6aW5nIGludG8gZWFjaCBleWUncyByZW5kZXIgdGV4
dHVyZSBmaXJzdC4gIEJlY2F1c2UgaWYgdGhpcywgb25seSBvbmUgb2YgdGhlc2UgaXMgc3VwcG9y
dGVkIGF0IGFueSBnaXZlbiB0aW1lLiAgSXQgaXMgbW9zdCB1c2VmdWwKLSAgICAgICAgICAgICAg
KiBmb3Igb3ZlcmxheXMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gdGFrZSB1cCBtb3N0IG9mIHRoZSB1
c2VyJ3MgdmlldyAoZS5nLiBzdHJlYW1pbmcgdmlkZW8pLgotICAgICAgICAgICAgICAqIFRoaXMg
bW9kZSBkb2VzIG5vdCBzdXBwb3J0IG1vdXNlIGlucHV0IHRvIHlvdXIgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0SGlnaFF1YWxpdHlPdmVybGF5
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdGhlIG92ZXJsYXkgaGFuZGxlIG9mIHRoZSBjdXJyZW50IG92ZXJsYXkg
YmVpbmcgcmVuZGVyZWQgdXNpbmcgdGhlIHNpbmdsZSBoaWdoIHF1YWxpdHkgb3ZlcmxheSByZW5k
ZXIgcGF0aC4KLSAgICAgICAgICAgICAgKiBPdGhlcndpc2UgaXQgd2lsbCByZXR1cm4ga191bE92
ZXJsYXlIYW5kbGVJbnZhbGlkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJs
YXlIYW5kbGVfdCBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIEZpbGxzIHRoZSBwcm92aWRlZCBidWZmZXIgd2l0aCB0aGUgc3RyaW5nIGtleSBvZiB0aGUg
b3ZlcmxheS4gUmV0dXJucyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhl
IGtleSwgaW5jbHVkaW5nCi0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hh
cmFjdGVyLiBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoIHdpbGwgYmUgZW5vdWdoIGJ5dGVzIHRv
IGZpdCB0aGUgc3RyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92
ZXJsYXlLZXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJv
ciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEZpbGxzIHRoZSBwcm92
aWRlZCBidWZmZXIgd2l0aCB0aGUgZnJpZW5kbHkgbmFtZSBvZiB0aGUgb3ZlcmxheS4gUmV0dXJu
cyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhlIGtleSwgaW5jbHVkaW5n
Ci0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiBrX3VuVlJP
dmVybGF5TWF4TmFtZUxlbmd0aCB3aWxsIGJlIGVub3VnaCBieXRlcyB0byBmaXQgdGhlIHN0cmlu
Zy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5TmFtZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNo
VmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICpwRXJyb3IgPSAw
TCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogc2V0IHRoZSBuYW1lIHRvIHVzZSBmb3IgdGhp
cyBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlOYW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIg
KnBjaE5hbWUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHJhdyBpbWFnZSBk
YXRhIGZyb20gYW4gb3ZlcmxheS4gT3ZlcmxheSBpbWFnZSBkYXRhIGlzIGFsd2F5cyByZXR1cm5l
ZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBpeGVsLiBJZiB0aGUgYnVmZmVyIGlzIG5vdCBs
YXJnZSBlbm91Z2gsIHdpZHRoIGFuZCBoZWlnaHQgCi0gICAgICAgICAgICAgICogd2lsbCBiZSBz
ZXQgYW5kIFZST3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwgaXMgcmV0dXJuZWQuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbWFnZURhdGEoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90
IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKnB1bldpZHRoLCB1aW50MzJfdCAqcHVuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9u
ZHMgd2l0aCB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0
aGUgbmFtZSAKLSAgICAgICAgICAgICAgKiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxs
IHZhbGlkIGVycm9yIGNvZGVzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAq
R2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKCBFVlJPdmVybGF5RXJyb3IgZXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgcmVuZGVyaW5nIG1ldGhvZHMKLSAg
ICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHBpZCB0aGF0IGlzIGFsbG93ZWQgdG8g
cmVuZGVyIHRvIHRoaXMgb3ZlcmxheSAodGhlIGNyZWF0b3IgcGlkIGlzIGFsd2F5cyBhbGxvdyB0
byByZW5kZXIpLAotICAgICAgICAgICAgICAqICAgICAgIGJ5IGRlZmF1bHQgdGhpcyBpcyB0aGUg
cGlkIG9mIHRoZSBwcm9jZXNzIHRoYXQgbWFkZSB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUElEICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBwaWQgdGhhdCBpcyBhbGxvd2VkIHRvIHJlbmRlciB0byB0
aGlzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5
UmVuZGVyaW5nUGlkKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNwZWNpZnkgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZs
YWcoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRz
IGZsYWcgc2V0dGluZyBmb3IgYSBnaXZlbiBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCAqcGJFbmFibGVk
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjb2xvciB0aW50IG9mIHRoZSBv
dmVybGF5IHF1YWQuIFVzZSAwLjAgdG8gMS4wIHBlciBjaGFubmVsLiAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1
ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgY29sb3IgdGludCBvZiB0aGUg
b3ZlcmxheSBxdWFkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQg
KnBmUmVkLCBmbG9hdCAqcGZHcmVlbiwgZmxvYXQgKnBmQmx1ZSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogU2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDEuMCBmb3Ig
MTAwIHBlcmNlbnQgb3BhY2l0eSB0byAwLjAgZm9yIDAgcGVyY2VudCBvcGFjaXR5LiAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5QWxwaGEoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZkFscGhhICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmxheSBxdWFkLiBCeSBkZWZh
dWx0IG92ZXJsYXlzIGFyZSByZW5kZXJpbmcgYXQgMTAwIHBlcmNlbnQgYWxwaGEgKDEuMCkuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZBbHBoYSApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMg
aW4gdGhlIG92ZXJsYXkuIDEuMCBtZWFucyB0aGUgdGV4ZWxzIGFyZSBzcXVhcmUuIDIuMCBtZWFu
cyB0aGUgdGV4ZWxzCi0gICAgICAgICAgICAgICogYXJlIHR3aWNlIGFzIHdpZGUgYXMgdGhleSBh
cmUgdGFsbC4gRGVmYXVsdHMgdG8gMS4wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHRleGVscyBpbiB0aGUgb3ZlcmxheS4gRGVm
YXVsdHMgdG8gMS4wICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdl
dE92ZXJsYXlUZXhlbEFzcGVjdCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBm
bG9hdCAqcGZUZXhlbEFzcGVjdCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUg
cmVuZGVyaW5nIHNvcnQgb3JkZXIgZm9yIHRoZSBvdmVybGF5LiBPdmVybGF5cyBhcmUgcmVuZGVy
ZWQgdGhpcyBvcmRlcjoKLSAgICAgICAgICAgICAgKiAgICAgIE92ZXJsYXlzIG93bmVkIGJ5IHRo
ZSBzY2VuZSBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqICAgICAgT3ZlcmxheXMgb3duZWQg
Ynkgc29tZSBvdGhlciBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqCi0gICAgICAgICAgICAg
ICogICAgICAgV2l0aGluIGEgY2F0ZWdvcnkgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIGxvd2VzdCBz
b3J0IG9yZGVyIHRvIGhpZ2hlc3Qgc29ydCBvcmRlci4gT3ZlcmxheXMgd2l0aCB0aGUgc2FtZSAK
LSAgICAgICAgICAgICAgKiAgICAgICBzb3J0IG9yZGVyIGFyZSByZW5kZXJlZCBiYWNrIHRvIGZy
b250IGJhc2Ugb24gZGlzdGFuY2UgZnJvbSB0aGUgSE1ELgotICAgICAgICAgICAgICAqCi0gICAg
ICAgICAgICAgICogICAgICAgU29ydCBvcmRlciBkZWZhdWx0cyB0byAwLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuU29ydE9yZGVyICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBzb3J0IG9yZGVyIG9mIHRoZSBvdmVybGF5LiBT
ZWUgU2V0T3ZlcmxheVNvcnRPcmRlciBmb3IgaG93IHRoaXMgd29ya3MuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blNvcnRPcmRlciApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBp
biBtZXRlcnMuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0
IGlzIDEgbWV0ZXIgYWNyb3NzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgb3ZlcmxheSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVs
dCBvdmVybGF5cyBhcmUgcmVuZGVyZWQgb24gYSBxdWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3Mg
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVdpZHRo
SW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmV2lk
dGhJbk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBj
dXJ2ZWQgb3ZlcmxheXMgb25seSwgc2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZy
b20gdGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAg
ICogdGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hl
biB0aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3Vy
dmVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJ
bk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBjdXJ2
ZWQgb3ZlcmxheXMgb25seSwgZ2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZyb20g
dGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAgICog
dGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hlbiB0
aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3VydmVk
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QXV0
b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0ICpwZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICpwZk1heERpc3RhbmNl
SW5NZXRlcnMgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGNvbG9yc3BhY2Ug
dGhlIG92ZXJsYXkgdGV4dHVyZSdzIGRhdGEgaXMgaW4uICBEZWZhdWx0cyB0byAnYXV0bycuCi0g
ICAgICAgICAgICAgICogSWYgdGhlIHRleHR1cmUgbmVlZHMgdG8gYmUgcmVzb2x2ZWQsIHlvdSBz
aG91bGQgY2FsbCBTZXRPdmVybGF5VGV4dHVyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb2xvcnNw
YWNlIGluc3RlYWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIEdldHMgdGhlIG92ZXJsYXkncyBjdXJyZW50IGNvbG9yc3BhY2Ugc2V0dGluZy4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNl
ICpwZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJsYXkuIFVWIE1pbiBpcyB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93ZXIgcmlnaHQgY29ybmVy
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUlRl
eHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBHZXRzIHRoZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJs
YXkuIFVWIE1pbiBpcyB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93
ZXIgcmlnaHQgY29ybmVyLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBWUlRleHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBHZXRzIHJlbmRlciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92
ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5UmVuZGVy
TW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKnBjaFZh
bHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEhtZENvbG9yX3QgKnBDb2xvciwgdnI6OkVWUk92
ZXJsYXlFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHJlbmRl
ciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92ZXJsYXkgYW5kIHRoZSB2ZXJ0ZXggY29sb3Ig
dG8gdXNlLCBwYXNzIG51bGwgZm9yIHBDb2xvciB0byBtYXRjaCB0aGUgb3ZlcmxheXMgdmVydGV4
IGNvbG9yLiAKLSAgICAgICAgICAgICAgICAgICAgIFRoZSBtb2RlbCBpcyBzY2FsZWQgYnkgdGhl
IHNhbWUgYW1vdW50IGFzIHRoZSBvdmVybGF5LCB3aXRoIGEgZGVmYXVsdCBvZiAxbS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSZW5kZXJN
b2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAq
cGNoUmVuZGVyTW9kZWwsIGNvbnN0IEhtZENvbG9yX3QgKnBDb2xvciApID0gMDsKLQotICAgICAg
ICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIHR5cGUgb2YgdGhpcyBvdmVybGF5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICpwZVRyYW5zZm9ybVR5cGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHRyYW5zZm9ybSB0byBhYnNvbHV0ZSB0cmFja2luZyBvcmlnaW4uICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlVHJhY2tpbmdPcmlnaW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09y
aWdpblRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgdHJhbnNmb3JtIGlmIGl0IGlzIGFic29sdXRlLiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0
cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKnBlVHJhY2tpbmdP
cmlnaW4sIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9y
bSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0
aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNwZWNpZmllZCB0cmFja2VkIGRldmljZS4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blRyYWNrZWREZXZpY2UsIGNvbnN0IEhtZE1hdHJpeDM0
X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYSB0cmFj
a2VkIGRldmljZS4gUmV0dXJucyBhbiBlcnJvciBpZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3Ro
ZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZSwgSG1k
TWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byBkcmF3IHRoZSBvdmVybGF5
IG9uIGEgcmVuZGVybW9kZWwgY29tcG9uZW50IG1lc2ggaW5zdGVhZCBvZiBhIHF1YWQuIFRoaXMg
d2lsbCBvbmx5IGRyYXcgd2hlbiB0aGUgc3lzdGVtIGlzCi0gICAgICAgICAgICAgICogZHJhd2lu
ZyB0aGUgZGV2aWNlLiBPdmVybGF5cyB3aXRoIHRoaXMgdHJhbnNmb3JtIHR5cGUgY2Fubm90IHJl
Y2VpdmUgbW91c2UgZXZlbnRzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAwOwotCi0gICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaW5mb3JtYXRpb24gd2hlbiB0aGUgb3ZlcmxheSBpcyBy
ZW5kZXJpbmcgb24gYSBjb21wb25lbnQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5E
ZXZpY2VJbmRleCwgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRO
YW1lU2l6ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlm
IGl0IGlzIHJlbGF0aXZlIHRvIGFub3RoZXIgb3ZlcmxheS4gUmV0dXJucyBhbiBlcnJvciBpZiB0
aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVh
bCB2cjo6RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnVs
T3ZlcmxheUhhbmRsZVBhcmVudCwgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJsYXlUb092
ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNw
ZWNpZmllZCBvdmVybGF5LiBUaGlzIG92ZXJsYXlzIHZpc2liaWxpdHkgd2lsbCBhbHNvIHRyYWNr
IHRoZSBwYXJlbnRzIHZpc2liaWxpdHkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlUGFyZW50LCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0UGFyZW50T3ZlcmxheVRvT3Zlcmxh
eVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2hvd3MgdGhlIFZSIG92ZXJs
YXkuICBGb3IgZGFzaGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBp
cyBhbGxvd2VkIHRvIGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgU2hvd092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogSGlkZXMgdGhlIFZSIG92ZXJsYXkuICBGb3IgZGFz
aGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBpcyBhbGxvd2VkIHRv
IGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgSGlk
ZU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBvdmVybGF5IGlzIHZpc2libGUuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc092ZXJsYXlWaXNpYmxlKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0
aGUgdHJhbnNmb3JtIGluIDNkIHNwYWNlIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIDJkIHBv
aW50IGluIHRoZSBvdmVybGF5J3MgY29vcmRpbmF0ZSBzcGFjZSAod2hlcmUgMCwwIGlzIHRoZSBs
b3dlciBsZWZ0KS4gLVogcG9pbnRzIG91dCBvZiB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0
ZXMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFuc2Zvcm0gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAg
ICAgIC8vIE92ZXJsYXkgaW5wdXQgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0
aGUgb3ZlcmxheSdzIGV2ZW50IHF1ZXVlLCBpZiB0aGVyZSBpcyBvbmUuIAotICAgICAgICAgICAg
ICAqIElmIHRoZXJlIGFyZSBubyBldmVudHMgdGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4gdW5j
YlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3Ry
dWN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dE92ZXJsYXlFdmVudCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUkV2ZW50X3QgKnBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhl
IGN1cnJlbnQgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUlucHV0TWV0aG9k
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9k
ICpwZUlucHV0TWV0aG9kICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBpbnB1
dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBvdmVybGF5LiAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgZUlucHV0TWV0aG9k
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBtb3VzZSBzY2FsaW5nIGZhY3Rv
ciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0dXJlIG1heSBi
ZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcwotICAgICAgICAgICAgICAqIHR5cGljYWxs
eSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIG1vdXNlIHNjYWxpbmcgZmFjdG9y
IHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZlbnRzLiBUaGUgYWN0dWFsIHRleHR1cmUgbWF5IGJl
IGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlzIGlzCi0gICAgICAgICAgICAgICogdHlwaWNhbGx5
IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscyAobm90IGluIHdvcmxkIHNw
YWNlKS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eU1vdXNlU2NhbGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgSG1k
VmVjdG9yMl90ICpwdmVjTW91c2VTY2FsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ29t
cHV0ZXMgdGhlIG92ZXJsYXktc3BhY2UgcGl4ZWwgY29vcmRpbmF0ZXMgb2Ygd2hlcmUgdGhlIHJh
eSBpbnRlcnNlY3RzIHRoZSBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAgICogc3BlY2lm
aWVkIHNldHRpbmdzLiBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIGludGVyc2VjdGlvbi4g
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IFZST3ZlcmxheUludGVy
c2VjdGlvblBhcmFtc190ICpwUGFyYW1zLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Qg
KnBSZXN1bHRzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBQcm9jZXNzZXMgbW91c2UgaW5w
dXQgZnJvbSB0aGUgc3BlY2lmaWVkIGNvbnRyb2xsZXIgYXMgdGhvdWdoIGl0IHdlcmUgYSBtb3Vz
ZSBwb2ludGVkIGF0IGEgY29tcG9zaXRvciBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAg
ICogc3BlY2lmaWVkIHNldHRpbmdzLiBUaGUgY29udHJvbGxlciBpcyB0cmVhdGVkIGxpa2UgYSBs
YXNlciBwb2ludGVyIG9uIHRoZSAteiBheGlzLiBUaGUgcG9pbnQgd2hlcmUgdGhlIGxhc2VyIHBv
aW50ZXIgd291bGQKLSAgICAgICAgICAgICAgKiBpbnRlcnNlY3Qgd2l0aCB0aGUgb3ZlcmxheSBp
cyB0aGUgbW91c2UgcG9zaXRpb24sIHRoZSB0cmlnZ2VyIGlzIGxlZnQgbW91c2UsIGFuZCB0aGUg
dHJhY2sgcGFkIGlzIHJpZ2h0IG1vdXNlLiAKLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAg
ICAqIFJldHVybiB0cnVlIGlmIHRoZSBjb250cm9sbGVyIGlzIHBvaW50ZWQgYXQgdGhlIG92ZXJs
YXkgYW5kIGFuIGV2ZW50IHdhcyBnZW5lcmF0ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0LiBBbiBvdmVybGF5IGlz
IHRoZSBob3ZlciB0YXJnZXQgd2hlbiBpdCBpcyB0aGUgbGFzdCBvdmVybGF5ICJtb3VzZWQgb3Zl
ciIgCi0gICAgICAgICAgICAgICogYnkgdGhlIHZpcnR1YWwgbW91c2UgcG9pbnRlciAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJu
cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgYW4gb3ZlcmxheSdzIG5laWdoYm9yLiBUaGlzIHdpbGwg
YWxzbyBzZXQgdGhlIG5laWdoYm9yIG9mIHRoZSAidG8iIG92ZXJsYXkKLSAgICAgICAgICAgICAg
KiB0byBwb2ludCBiYWNrIHRvIHRoZSAiZnJvbSIgb3ZlcmxheS4gSWYgYW4gb3ZlcmxheSdzIG5l
aWdoYm9yIGlzIHNldCB0byBpbnZhbGlkIGJvdGgKLSAgICAgICAgICAgICAgKiBlbmRzIHdpbGwg
YmUgY2xlYXJlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRP
dmVybGF5TmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhh
bmRsZV90IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogQ2hhbmdlcyB0aGUgR2FtZXBhZCBmb2N1cyBmcm9tIG9uZSBvdmVybGF5IHRvIG9u
ZSBvZiBpdHMgbmVpZ2hib3JzLiBSZXR1cm5zIFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgaWYg
dGhlcmUgaXMgbm8KLSAgICAgICAgICAgICAgKiBuZWlnaGJvciBpbiB0aGF0IGRpcmVjdGlvbiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBNb3ZlR2FtZXBhZEZvY3Vz
VG9OZWlnaGJvciggRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxl
X3QgdWxGcm9tICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IHRleHR1
cmUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogVGV4dHVyZSB0byBkcmF3IGZv
ciB0aGUgb3ZlcmxheS4gVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92
ZXJsYXkncyBjcmVhdG9yIG9yIHJlbmRlcmVyIHByb2Nlc3MgKHNlZSBTZXRPdmVybGF5UmVuZGVy
aW5nUGlkKSAuCi0gICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBPcGVuR0wgZGlydHkg
c3RhdGU6Ci0gICAgICAgICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBUZXh0dXJlX3Qg
KnBUZXh0dXJlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBVc2UgdGhpcyB0byB0ZWxsIHRo
ZSBvdmVybGF5IHN5c3RlbSB0byByZWxlYXNlIHRoZSB0ZXh0dXJlIHNldCBmb3IgdGhpcyBvdmVy
bGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDbGVhck92ZXJs
YXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAg
ICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvdmlkaW5nIHRoZSBkYXRh
IGFzIGEgc3RyZWFtIG9mIGJ5dGVzLCBidXQgdGhlcmUgaXMgYW4gdXBwZXIgYm91bmQgb24gZGF0
YSAKLSAgICAgICAgICAgICAgKiB0aGF0IGNhbiBiZSBzZW50LiBUaGlzIGZ1bmN0aW9uIGNhbiBv
bmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3MuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSYXcoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lk
dGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50MzJfdCB1bkRlcHRoICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGluZyB0aGUgaW1hZ2UgdGhy
b3VnaCBhIGZpbGVuYW1lOiBjYW4gYmUgcG5nIG9yIGpwZywgYW5kIHNob3VsZCBub3QgYmUgYmln
Z2VyIHRoYW4gMTkyMHgxMDgwLgotICAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIG9u
bHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgcmVuZGVyZXIgcHJvY2VzcyAqLwotICAgICAg
ICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5RnJvbUZpbGUoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAqcGNoRmlsZVBhdGggKSA9
IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbmF0aXZlIHRleHR1cmUgaGFuZGxlL2Rl
dmljZSBmb3IgYW4gb3ZlcmxheSB5b3UgaGF2ZSBjcmVhdGVkLgotICAgICAgICAgICAgICAqIE9u
IHdpbmRvd3MgdGhpcyBoYW5kbGUgd2lsbCBiZSBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyB3
aXRoIGEgSUQzRDExVGV4dHVyZTJEIGJvdW5kLgotICAgICAgICAgICAgICAqCi0gICAgICAgICAg
ICAgICogVGhlIHRleHR1cmUgd2lsbCBhbHdheXMgYmUgc2l6ZWQgdG8gbWF0Y2ggdGhlIGJhY2tp
bmcgdGV4dHVyZSB5b3Ugc3VwcGxpZWQgaW4gU2V0T3ZlcmxheVRleHR1cmUgYWJvdmUuCi0gICAg
ICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBZb3UgTVVTVCBjYWxsIFJlbGVhc2VOYXRpdmVP
dmVybGF5SGFuZGxlKCkgd2l0aCBwTmF0aXZlVGV4dHVyZUhhbmRsZSBvbmNlIHlvdSBhcmUgZG9u
ZSB3aXRoIHRoaXMgdGV4dHVyZS4KLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAgICAqIHBO
YXRpdmVUZXh0dXJlSGFuZGxlIGlzIGFuIE9VVFBVVCwgaXQgd2lsbCBiZSBhIHBvaW50ZXIgdG8g
YSBJRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKi4KLSAgICAgICAgICAgICAgKiBwTmF0aXZlVGV4
dHVyZVJlZiBpcyBhbiBJTlBVVCBhbmQgc2hvdWxkIGJlIGEgSUQzRDExUmVzb3VyY2UgKi4gVGhl
IGRldmljZSB1c2VkIGJ5IHBOYXRpdmVUZXh0dXJlUmVmIHdpbGwgYmUgdXNlZCB0byBiaW5kIHBO
YXRpdmVUZXh0dXJlSGFuZGxlLgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB2b2lkICoqcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKnBOYXRp
dmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCwgdWludDMy
X3QgKnBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAqcEFQSVR5cGUsIEVDb2xvclNwYWNlICpw
Q29sb3JTcGFjZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBSZWxlYXNlIHRoZSBwTmF0aXZlVGV4dHVyZUhhbmRsZSBwcm92aWRl
ZCBmcm9tIHRoZSBHZXRPdmVybGF5VGV4dHVyZSBjYWxsLCB0aGlzIGFsbG93cyB0aGUgc3lzdGVt
IHRvIGZyZWUgdGhlIHVuZGVybHlpbmcgR1BVIHJlc291cmNlcyBmb3IgdGhpcyBvYmplY3QsCi0g
ICAgICAgICAgICAgICogc28gb25seSBkbyBpdCBvbmNlIHlvdSBzdG9wIHJlbmRlcmluZyB0aGlz
IHRleHR1cmUuCi0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnBOYXRpdmVUZXh0dXJlSGFuZGxlICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXQgdGhlIHNpemUgb2YgdGhlIG92ZXJsYXkgdGV4dHVyZSAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZVNpemUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBXaWR0aCwgdWlu
dDMyX3QgKnBIZWlnaHQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBEYXNoYm9h
cmQgT3ZlcmxheSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogQ3JlYXRlcyBh
IGRhc2hib2FyZCBvdmVybGF5IGFuZCByZXR1cm5zIGl0cyBoYW5kbGUgKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSggY29uc3Qg
Y2hhciAqcGNoT3ZlcmxheUtleSwgY29uc3QgY2hhciAqcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnBUaHVt
Ym5haWxIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIElz
RGFzaGJvYXJkVmlzaWJsZSgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSBhbmQgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlz
IHRoZSBhY3RpdmUgc3lzdGVtIE92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29s
IElzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBkYXNoYm9hcmQgb3Zlcmxh
eSB0byBvbmx5IGFwcGVhciB3aGVuIHRoZSBzcGVjaWZpZWQgcHJvY2VzcyBJRCBoYXMgc2NlbmUg
Zm9jdXMgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0RGFzaGJv
YXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCB1aW50MzJfdCB1blByb2Nlc3NJZCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgcHJvY2VzcyBJRCB0aGF0IHRoaXMgZGFzaGJvYXJkIG92ZXJsYXkgcmVxdWlyZXMgdG8gaGF2
ZSBzY2VuZSBmb2N1cyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Qcm9jZXNzSWQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFNob3dzIHRoZSBkYXNoYm9hcmQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBT
aG93RGFzaGJvYXJkKCBjb25zdCBjaGFyICpwY2hPdmVybGF5VG9TaG93ICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFja2VkIGRldmljZSB0aGF0IGhhcyB0aGUgbGFz
ZXIgcG9pbnRlciBpbiB0aGUgZGFzaGJvYXJkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90IEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgICAgICAgICAgIC8vIEtleWJvYXJkIG1ldGhvZHMKLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgdmlydHVhbCBrZXlib2FyZCB0byBh
Y2NlcHQgaW5wdXQgKiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNo
b3dLZXlib2FyZCggRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4
dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNvbnN0IGNoYXIgKnBjaERlc2NyaXB0aW9u
LCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNoYXIgKnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBi
VXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFsdWUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0
TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY29uc3QgY2hh
ciAqcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3QgY2hhciAqcGNoRXhp
c3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSApID0g
MDsKLQotICAgICAgICAgICAgICAvKiogR2V0IHRoZSB0ZXh0IHRoYXQgd2FzIGVudGVyZWQgaW50
byB0aGUgdGV4dCBpbnB1dCAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRL
ZXlib2FyZFRleHQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hUZXh0LCB1aW50MzJfdCBjY2hU
ZXh0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBIaWRlIHRoZSB2aXJ0dWFsIGtleWJvYXJk
ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgSGlkZUtleWJvYXJkKCkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBrZXlib2FyZCBpbiB3b3Js
ZCBzcGFjZSAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJkVHJhbnNm
b3JtQWJzb2x1dGUoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29u
c3QgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9h
cmQgaW4gb3ZlcmxheSBzcGFjZSBieSB0ZWxsaW5nIGl0IHRvIGF2b2lkIGEgcmVjdGFuZ2xlIGlu
IHRoZSBvdmVybGF5LiBSZWN0YW5nbGUgY29vcmRzIGhhdmUgKDAsMCkgaW4gdGhlIGJvdHRvbSBs
ZWZ0ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0S2V5Ym9hcmRQb3NpdGlvbkZv
ck92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBh
dm9pZFJlY3QgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgaW5wdXQg
bWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2V0cyBhIGxpc3Qgb2YgcHJpbWl0
aXZlcyB0byBiZSB1c2VkIGZvciBjb250cm9sbGVyIHJheSBpbnRlcnNlY3Rpb24KLSAgICAgICAg
ICAgICAgKiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxz
IChub3QgaW4gd29ybGQgc3BhY2UpLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKnBNYXNr
UHJpbWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5Qcmlt
aXRpdmVTaXplID0gc2l6ZW9mKCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3Qg
KSApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5RmxhZ3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBG
bGFncyApID0gMDsKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gTWVzc2FnZSBib3ggbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgbWVzc2FnZSBvdmVybGF5LiBU
aGlzIHdpbGwgYmxvY2sgYW5kIHJldHVybiB5b3UgYSByZXN1bHQuICoqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2FnZU92ZXJsYXkoIGNv
bnN0IGNoYXIqIHBjaFRleHQsIGNvbnN0IGNoYXIqIHBjaENhcHRpb24sIGNvbnN0IGNoYXIqIHBj
aEJ1dHRvbjBUZXh0LCBjb25zdCBjaGFyKiBwY2hCdXR0b24xVGV4dCA9IG51bGxwdHIsIGNvbnN0
IGNoYXIqIHBjaEJ1dHRvbjJUZXh0ID0gbnVsbHB0ciwgY29uc3QgY2hhciogcGNoQnV0dG9uM1Rl
eHQgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBJZiB0aGUgY2FsbGluZyBw
cm9jZXNzIG93bnMgdGhlIG92ZXJsYXkgYW5kIGl0J3Mgb3BlbiwgdGhpcyB3aWxsIGNsb3NlIGl0
LiAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIENsb3NlTWVzc2FnZU92ZXJsYXkoKSA9
IDA7Ci0gICAgICAgfTsKLQotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXZycmVuZGVybW9kZWxzLmgKLW5hbWVzcGFjZSB2cgotewotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7
ICAgLy8gQ2Fub25pY2FsIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZSBnZGMgMjAxNSB3aXJlZCBj
b250cm9sbGVyLCBwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKLXN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNl
IjsgICAgICAgICAvLyBGb3IgY29udHJvbGxlcnMgd2l0aCBhbiB1bmFtYmlndW91cyAnYmFzZScu
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1Rp
cCA9ICJ0aXAiOyAgICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3Vv
dXMgJ3RpcCcgKHVzZWQgZm9yICdsYXNlci1wb2ludGluZycpCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsg
Ly8gTmV1dHJhbCwgYW1iaWRleHRyb3VzIGhhbmQtcG9zZSB3aGVuIGhvbGRpbmcgY29udHJvbGxl
ci4gT24gcGxhbmUgYmV0d2VlbiBuZXV0cmFsbHkgcG9zZWQgaW5kZXggZmluZ2VyIGFuZCB0aHVt
Ygotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9T
dGF0dXMgPSAic3RhdHVzIjsgICAgICAgICAgICAgIC8vIDE6MSBhc3BlY3QgcmF0aW8gc3RhdHVz
IGFyZWEsIHdpdGggY2Fub25pY2FsIFswLDFdIHV2IG1hcHBpbmcKLQotI3ByYWdtYSBwYWNrKCBw
dXNoLCA4ICkKLQotLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3Np
dG9yICovCi1lbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAxMDAs
Ci0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRlZCA9IDIwMCwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZEFyZyA9IDMwMCwKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob1No
YXBlcyA9IDMwMiwKLSAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMgPSAz
MDMsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9IDMwNCwKLSAg
ICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCi0gICAgICAgVlJSZW5kZXJN
b2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVy
cm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLQotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJv
cl9JbnZhbGlkVGV4dHVyZSA9IDQwMCwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgVlJDb21wb25l
bnRQcm9wZXJ0aWVzOwotCi1lbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAgVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyA9ICgxIDw8IDApLAotICAgICAgIFZSQ29tcG9uZW50
UHJvcGVydHlfSXNWaXNpYmxlID0gKDEgPDwgMSksCi0gICAgICAgVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1RvdWNoZWQgPSAoMSA8PCAyKSwKLSAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCA9ICgxIDw8IDMpLAotICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTY3JvbGxlZCA9
ICgxIDw8IDQpLAotfTsKLQotLyoqIERlc2NyaWJlcyBzdGF0ZSBpbmZvcm1hdGlvbiBhYm91dCBh
IHJlbmRlci1tb2RlbCBjb21wb25lbnQsIGluY2x1ZGluZyB0cmFuc2Zvcm1zIGFuZCBvdGhlciBk
eW5hbWljIHByb3BlcnRpZXMgKi8KLXN0cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVs
OyAgLy8gVHJhbnNmb3JtIHJlcXVpcmVkIHdoZW4gZHJhd2luZyB0aGUgY29tcG9uZW50IHJlbmRl
ciBtb2RlbAotICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsg
ICAgICAgIC8vIFRyYW5zZm9ybSBhdmFpbGFibGUgZm9yIGF0dGFjaGluZyB0byBhIGxvY2FsIGNv
bXBvbmVudCBjb29yZGluYXRlIHN5c3RlbSAoLVogb3V0IGZyb20gc3VyZmFjZSApCi0gICAgICAg
VlJDb21wb25lbnRQcm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfTsKLQotLyoqIEEgc2luZ2xlIHZl
cnRleCBpbiBhIHJlbmRlciBtb2RlbCAqLwotc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Ci17
Ci0gICAgICAgSG1kVmVjdG9yM190IHZQb3NpdGlvbjsgICAgICAgICAgICAgIC8vIHBvc2l0aW9u
IGluIG1ldGVycyBpbiBkZXZpY2Ugc3BhY2UKLSAgICAgICBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsK
LSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsKLX07Ci0KLS8qKiBBIHRleHR1cmUgbWFw
IGZvciB1c2Ugb24gYSByZW5kZXIgbW9kZWwgKi8KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwg
ZGVmaW5lZChfX0FQUExFX18pIAotLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVm
aW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0
eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gsIDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QKLXsKLSAgICAgICB1aW50MTZfdCB1bldpZHRoLCB1bkhlaWdodDsgLy8g
d2lkdGggYW5kIGhlaWdodCBvZiB0aGUgdGV4dHVyZSBtYXAgaW4gcGl4ZWxzCi0gICAgICAgY29u
c3QgdWludDhfdCAqcnViVGV4dHVyZU1hcERhdGE7ICAgICAgIC8vIE1hcCB0ZXh0dXJlIGRhdGEu
IEFsbCB0ZXh0dXJlcyBhcmUgUkdCQSB3aXRoIDggYml0cyBwZXIgY2hhbm5lbCBwZXIgcGl4ZWwu
IERhdGEgc2l6ZSBpcyB3aWR0aCAqIGhlaWdodCAqIDR1YgotfTsKLSNpZiBkZWZpbmVkKF9fbGlu
dXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotI3ByYWdtYSBwYWNrKCBwb3AgKQotI2VuZGlm
Ci0KLS8qKiAgU2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBSZW5kZXJtb2RlbHMg
d2hpY2ggc2hhcmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgaWQuCi1JRHMg
PDAgZGVub3RlIHRoZSB0ZXh0dXJlIGlzIG5vdCBwcmVzZW50ICovCi0KLXR5cGVkZWYgaW50MzJf
dCBUZXh0dXJlSURfdDsKLQotY29uc3QgVGV4dHVyZUlEX3QgSU5WQUxJRF9URVhUVVJFX0lEID0g
LTE7Ci0KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotLy8g
VGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4
LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gs
IDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2RlbF90Ci17Ci0gICAgICAgY29uc3QgUmVu
ZGVyTW9kZWxfVmVydGV4X3QgKnJWZXJ0ZXhEYXRhOyAgICAgICAvLyBWZXJ0ZXggZGF0YSBmb3Ig
dGhlIG1lc2gKLSAgICAgICB1aW50MzJfdCB1blZlcnRleENvdW50OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBvZiB2ZXJ0aWNlcyBpbiB0aGUgdmVy
dGV4IGRhdGEKLSAgICAgICBjb25zdCB1aW50MTZfdCAqckluZGV4RGF0YTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEluZGljZXMgaW50byB0aGUgdmVydGV4IGRhdGEgZm9y
IGVhY2ggdHJpYW5nbGUKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdHJpYW5nbGVzIGluIHRoZSBt
ZXNoLiBJbmRleCBjb3VudCBpcyAzICogVHJpYW5nbGVDb3VudAotICAgICAgIFRleHR1cmVJRF90
IGRpZmZ1c2VUZXh0dXJlSWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlc3Npb24g
dW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVuZGVybW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBz
YW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1lIGlkLiA8MCA9PSB0ZXh0dXJlIG5vdCBwcmVz
ZW50Ci19OwotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCi0j
cHJhZ21hIHBhY2soIHBvcCApCi0jZW5kaWYKLQotCi1zdHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wgYlNjcm9sbFdoZWVsVmlzaWJsZTsgLy8g
aXMgdGhpcyBjb250cm9sbGVyIGN1cnJlbnRseSBzZXQgdG8gYmUgaW4gYSBzY3JvbGwgd2hlZWwg
bW9kZQotfTsKLQotI3ByYWdtYSBwYWNrKCBwb3AgKQotCi1jbGFzcyBJVlJSZW5kZXJNb2RlbHMK
LXsKLXB1YmxpYzoKLQotICAgICAgIC8qKiBMb2FkcyBhbmQgcmV0dXJucyBhIHJlbmRlciBtb2Rl
bCBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4gcGNoUmVuZGVyTW9kZWxOYW1lIHNob3VsZCBi
ZSBhIHJlbmRlciBtb2RlbCBuYW1lCi0gICAgICAgKiBmcm9tIHRoZSBQcm9wX1JlbmRlck1vZGVs
TmFtZV9TdHJpbmcgcHJvcGVydHkgb3IgYW4gYWJzb2x1dGUgcGF0aCBuYW1lIHRvIGEgcmVuZGVy
IG1vZGVsIG9uIGRpc2suIAotICAgICAgICoKLSAgICAgICAqIFRoZSByZXN1bHRpbmcgcmVuZGVy
IG1vZGVsIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3duKCkgaXMgY2FsbGVkIG9yIHVudGlsIEZy
ZWVSZW5kZXJNb2RlbCgpIGlzIGNhbGxlZC4gV2hlbiB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlv
biBpcyBmaW5pc2hlZCB3aXRoIHRoZSByZW5kZXIgbW9kZWwgaXQgc2hvdWxkIGNhbGwgRnJlZVJl
bmRlck1vZGVsKCkgdG8gZnJlZSB0aGUgbWVtb3J5IGFzc29jaWF0ZWQKLSAgICAgICAqIHdpdGgg
dGhlIG1vZGVsLgotICAgICAgICoKLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRl
ck1vZGVsRXJyb3JfTG9hZGluZyB3aGlsZSB0aGUgcmVuZGVyIG1vZGVsIGlzIHN0aWxsIGJlaW5n
IGxvYWRlZC4KLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRlck1vZGVsRXJyb3Jf
Tm9uZSBvbmNlIGxvYWRlZCBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSB3aWxsIHJldHVybiBhbiBl
cnJvci4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJlbmRlck1v
ZGVsX0FzeW5jKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFJlbmRlck1vZGVsX3Qg
KipwcFJlbmRlck1vZGVsICkgPSAwOwotCi0gICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSBy
ZXR1cm5lZCByZW5kZXIgbW9kZWwKLSAgICAgICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMg
b24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVJlbmRlck1vZGVsKCBS
ZW5kZXJNb2RlbF90ICpwUmVuZGVyTW9kZWwgKSA9IDA7Ci0KLSAgICAgICAvKiogTG9hZHMgYW5k
IHJldHVybnMgYSB0ZXh0dXJlIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLiAqLwotICAgICAg
IHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkVGV4dHVyZV9Bc3luYyggVGV4dHVyZUlE
X3QgdGV4dHVyZUlkLCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKipwcFRleHR1cmUgKSA9IDA7
Ci0KLSAgICAgICAvKiogRnJlZXMgYSBwcmV2aW91c2x5IHJldHVybmVkIHRleHR1cmUKLSAgICAg
ICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgb24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2
aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmUoIFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqcFRleHR1
cmUgKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIEQzRDExIHRleHR1cmUgYW5kIGxvYWRz
IGRhdGEgaW50byBpdC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFRleHR1cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICpwRDNEMTFE
ZXZpY2UsIHZvaWQgKipwcEQzRDExVGV4dHVyZTJEICkgPSAwOwotCi0gICAgICAgLyoqIEhlbHBl
ciBmdW5jdGlvbiB0byBjb3B5IHRoZSBiaXRzIGludG8gYW4gZXhpc3RpbmcgdGV4dHVyZS4gKi8K
LSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZEludG9UZXh0dXJlRDNEMTFf
QXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqcERzdFRleHR1cmUgKSA9IDA7Ci0K
LSAgICAgICAvKiogVXNlIHRoaXMgdG8gZnJlZSB0ZXh0dXJlcyBjcmVhdGVkIHdpdGggTG9hZFRl
eHR1cmVEM0QxMV9Bc3luYyBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGVtLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZUQzRDExKCB2b2lkICpwRDNEMTFUZXh0dXJl
MkQgKSA9IDA7Ci0KLSAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFp
bGFibGUgcmVuZGVyIG1vZGVscy4gIEluZGV4IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNr
ZWQgZGV2aWNlIGluZGV4LCBidXQKLSAgICAgICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5n
IG92ZXIgYWxsIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBv
ZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgotICAgICAgICogT3RoZXJ3aXNl
LCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUg
bmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsTmFtZSggdWlu
dDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoUmVuZGVy
TW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxlbiApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICovCi0g
ICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbENvdW50KCkgPSAwOwotCi0KLSAg
ICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgb2YgdGhlIHNwZWNpZmll
ZCByZW5kZXIgbW9kZWwuCi0gICAgICAgKiAgQ29tcG9uZW50cyBhcmUgdXNlZnVsIHdoZW4gY2xp
ZW50IGFwcGxpY2F0aW9uIHdpc2ggdG8gZHJhdywgbGFiZWwsIG9yIG90aGVyd2lzZSBpbnRlcmFj
dCB3aXRoIGNvbXBvbmVudHMgb2YgdHJhY2tlZCBvYmplY3RzLgotICAgICAgICogIEV4YW1wbGVz
IGNvbnRyb2xsZXIgY29tcG9uZW50czoKLSAgICAgICAqICAgcmVuZGVyYWJsZSB0aGluZ3Mgc3Vj
aCBhcyB0cmlnZ2VycywgYnV0dG9ucwotICAgICAgICogICBub24tcmVuZGVyYWJsZSB0aGluZ3Mg
d2hpY2ggaW5jbHVkZSBjb29yZGluYXRlIHN5c3RlbXMgc3VjaCBhcyAndGlwJywgJ2Jhc2UnLCBh
IG5ldXRyYWwgY29udHJvbGxlciBhZ25vc3RpYyBoYW5kLXBvc2UKLSAgICAgICAqICAgSWYgYWxs
IGNvbnRyb2xsZXIgY29tcG9uZW50cyBhcmUgZW51bWVyYXRlZCBhbmQgcmVuZGVyZWQsIGl0IHdp
bGwgYmUgZXF1aXZhbGVudCB0byBkcmF3aW5nIHRoZSB0cmFkaXRpb25hbCByZW5kZXIgbW9kZWwK
LSAgICAgICAqICAgUmV0dXJucyAwIGlmIGNvbXBvbmVudHMgbm90IHN1cHBvcnRlZCwgPjAgb3Ro
ZXJ3aXNlICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDb21wb25lbnRDb3VudCggY29u
c3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lICkgPSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlz
IHRvIGdldCB0aGUgbmFtZXMgb2YgYXZhaWxhYmxlIGNvbXBvbmVudHMuICBJbmRleCBkb2VzIG5v
dCBjb3JyZWxhdGUgdG8gYSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0Ci0gICAgICAgKiBpcyBv
bmx5IHVzZWQgZm9yIGl0ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgY29tcG9uZW50cy4gIElm
IHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4K
LSAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRD
b21wb25lbnROYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50SW5kZXgsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwg
dWludDMyX3QgdW5Db21wb25lbnROYW1lTGVuICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUg
YnV0dG9uIG1hc2sgZm9yIGFsbCBidXR0b25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVu
dAotICAgICAgICogICBJZiBubyBidXR0b25zIChvciBheGVzKSBhcmUgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgY29tcG9uZW50LCByZXR1cm4gMAotICAgICAgICogICBOb3RlOiBtdWx0aXBsZSBjb21w
b25lbnRzIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgYnV0dG9uLiBFeDogdHdvIGdy
aXAgYnV0dG9ucyBvbiBhIHNpbmdsZSBjb250cm9sbGVyLgotICAgICAgICogICBOb3RlOiBBIHNp
bmdsZSBjb21wb25lbnQgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBidXR0b25zLiBF
eDogQSB0cmFja3BhZCB3aGljaCBhbHNvIHByb3ZpZGVzICJELXBhZCIgZnVuY3Rpb25hbGl0eSAq
LwotICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0Q29tcG9uZW50QnV0dG9uTWFzayggY29uc3Qg
Y2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkg
PSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgcmVuZGVyIG1vZGVsIG5hbWUg
Zm9yIHRoZSBzcGVjaWZpZWQgcmVuZGVybW9kZS9jb21wb25lbnQgY29tYmluYXRpb24sIHRvIGJl
IHBhc3NlZCB0byBMb2FkUmVuZGVyTW9kZWwuCi0gICAgICAgKiBJZiB0aGUgY29tcG9uZW50IG5h
bWUgaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCi0gICAgICAg
KiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWly
ZWQgZm9yIHRoZSBuYW1lLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNo
YXIgKnBjaENvbXBvbmVudE5hbWUsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbiAp
ID0gMDsKLQotICAgICAgIC8qKiBVc2UgdGhpcyB0byBxdWVyeSBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgY29tcG9uZW50LCBhcyBhIGZ1bmN0aW9uIG9mIHRoZSBjb250cm9sbGVyIHN0YXRlLgotICAg
ICAgICoKLSAgICAgICAqIEZvciBkeW5hbWljIGNvbnRyb2xsZXIgY29tcG9uZW50cyAoZXg6IHRy
aWdnZXIpIHZhbHVlcyB3aWxsIHJlZmxlY3QgY29tcG9uZW50IG1vdGlvbnMKLSAgICAgICAqIEZv
ciBzdGF0aWMgY29tcG9uZW50cyB0aGlzIHdpbGwgcmV0dXJuIGEgY29uc2lzdGVudCB2YWx1ZSBp
bmRlcGVuZGVudCBvZiB0aGUgVlJDb250cm9sbGVyU3RhdGVfdAotICAgICAgICoKLSAgICAgICAq
IElmIHRoZSBwY2hSZW5kZXJNb2RlbE5hbWUgb3IgcGNoQ29tcG9uZW50TmFtZSBpcyBpbnZhbGlk
LCB0aGlzIHdpbGwgcmV0dXJuIGZhbHNlIChhbmQgdHJhbnNmb3JtcyB3aWxsIGJlIHNldCB0byBp
ZGVudGl0eSkuCi0gICAgICAgKiBPdGhlcndpc2UsIHJldHVybiB0cnVlCi0gICAgICAgKiBOb3Rl
OiBGb3IgZHluYW1pYyBvYmplY3RzLCB2aXNpYmlsaXR5IG1heSBiZSBkeW5hbWljLiAoSS5lLiwg
dHJ1ZS9mYWxzZSB3aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIGNvbnRyb2xsZXIgc3RhdGUgYW5k
IGNvbnRyb2xsZXIgbW9kZSBzdGF0ZSApICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbXBv
bmVudFN0YXRlKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBj
aENvbXBvbmVudE5hbWUsIGNvbnN0IHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxl
clN0YXRlLCBjb25zdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICpwU3RhdGUs
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKnBDb21wb25lbnRTdGF0ZSApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlbmRlciBtb2RlbCBoYXMgYSBjb21wb25l
bnQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVuZGVy
TW9kZWxIYXNDb21wb25lbnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3Qg
Y2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBV
Ukwgb2YgdGhlIHRodW1ibmFpbCBpbWFnZSBmb3IgdGhpcyByZW5kZXJtb2RlbCAqLwotICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwoIGNvbnN0IGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFRodW1ibmFpbFVS
TCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICpw
ZUVycm9yICkgPSAwOwotCi0gICAgICAgLyoqIFByb3ZpZGVzIGEgcmVuZGVyIG1vZGVsIHBhdGgg
dGhhdCB3aWxsIGxvYWQgdGhlIHVuc2tpbm5lZCBtb2RlbCBpZiB0aGUgbW9kZWwgbmFtZSBwcm92
aWRlZCBoYXMgYmVlbiByZXBsYWNlIGJ5IHRoZSB1c2VyLiBJZiB0aGUgbW9kZWwKLSAgICAgICAq
IGhhc24ndCBiZWVuIHJlcGxhY2VkIHRoZSBwYXRoIHZhbHVlIHdpbGwgc3RpbGwgYmUgYSB2YWxp
ZCBwYXRoIHRvIGxvYWQgdGhlIG1vZGVsLiBQYXNzIHRoaXMgdG8gTG9hZFJlbmRlck1vZGVsX0Fz
eW5jLCBldGMuIHRvIGxvYWQgdGhlCi0gICAgICAgKiBtb2RlbC4gKi8KLSAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKCBjb25zdCBjaGFyICpwY2hSZW5k
ZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hPcmlnaW5hbFBhdGgsIHVpbnQz
Ml90IHVuT3JpZ2luYWxQYXRoTGVuLCB2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciAqcGVFcnJvciAp
ID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhIHJlbmRlciBtb2RlbCBl
cnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UmVuZGVyTW9kZWxFcnJvck5h
bWVGcm9tRW51bSggdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IgKSA9IDA7Ci19OwotCi1z
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklWUlJl
bmRlck1vZGVsc18wMDUiOwotCi19Ci0KLQotLy8gaXZyZXh0ZW5kZWRkaXNwbGF5LmgKLW5hbWVz
cGFjZSB2cgotewotCi0gICAgICAgLyoqIE5PVEU6IFVzZSBvZiB0aGlzIGludGVyZmFjZSBpcyBu
b3QgcmVjb21tZW5kZWQgaW4gcHJvZHVjdGlvbiBhcHBsaWNhdGlvbnMuIEl0IHdpbGwgbm90IHdv
cmsgZm9yIGRpc3BsYXlzIHdoaWNoIHVzZQotICAgICAgICogZGlyZWN0LXRvLWRpc3BsYXkgbW9k
ZS4gQ3JlYXRpbmcgb3VyIG93biB3aW5kb3cgaXMgYWxzbyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
VlIgY29tcG9zaXRvciBhbmQgaXMgbm90IGF2YWlsYWJsZSB3aGVuIHRoZSBjb21wb3NpdG9yIGlz
IHJ1bm5pbmcuICovCi0gICAgICAgY2xhc3MgSVZSRXh0ZW5kZWREaXNwbGF5Ci0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRpb24gdGhh
dCB0aGUgd2luZG93IG5lZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGludDMyX3Qg
KnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBk
cmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50byAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAq
cG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAgICAg
ICAgKiBSZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IGFuZCBvdXRwdXQgaW5kZXggdGhhdCB0aGUg
dXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVycyBhbmQgRW51bU91dHB1dHMKLSAgICAg
ICAgICAgICAgKiB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbiBpbiBEWDEwIGFu
ZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgYm90aCBpbmRpY2VzIHdpbGwgYmUgc2V0IHRvIC0x
LgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91
dHB1dEluZm8oIGludDMyX3QgKnBuQWRhcHRlckluZGV4LCBpbnQzMl90ICpwbkFkYXB0ZXJPdXRw
dXRJbmRleCApID0gMDsKLQotICAgICAgIH07Ci0KLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8w
MDEiOwotCi19Ci0KLQotLy8gaXZydHJhY2tlZGNhbWVyYS5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVZSVHJhY2tlZENhbWVyYQotewotcHVibGljOgotICAgICAgIC8qKiBSZXR1cm5zIGEg
c3RyaW5nIGZvciBhbiBlcnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0Q2Ft
ZXJhRXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVy
cm9yICkgPSAwOwotCi0gICAgICAgLyoqIEZvciBjb252ZW5pZW5jZSwgc2FtZSBhcyB0cmFja2Vk
IHByb3BlcnR5IHJlcXVlc3QgUHJvcF9IYXNDYW1lcmFfQm9vbCAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBIYXNDYW1lcmEoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKnBIYXNDYW1lcmEgKSA9IDA7Ci0KLSAgICAgICAvKiog
R2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhRnJhbWVTaXplKCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0LCB1aW50MzJfdCAqcG5G
cmFtZUJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdnI6
OkhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3RoLCB2cjo6SG1kVmVjdG9yMl90ICpwQ2VudGVyICkg
PSAwOwotCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVy
YVByb2plY3Rpb24oIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIsIGZsb2F0
IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9qZWN0aW9uICkgPSAwOwotCi0gICAgICAg
LyoqIEFjcXVpcmluZyBzdHJlYW1pbmcgc2VydmljZSBwZXJtaXRzIHZpZGVvIHN0cmVhbWluZyBm
b3IgdGhlIGNhbGxlci4gUmVsZWFzaW5nIGhpbnRzIHRoZSBzeXN0ZW0gdGhhdCB2aWRlbyBzZXJ2
aWNlcyBkbyBub3QgbmVlZCB0byBiZSBtYWludGFpbmVkIGZvciB0aGlzIGNsaWVudC4KLSAgICAg
ICAqIElmIHRoZSBjYW1lcmEgaGFzIG5vdCBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLCBhIG9uZSB0
aW1lIHNwaW4gdXAgbWF5IGluY3VyIHNvbWUgYXV0byBleHBvc3VyZSBhcyB3ZWxsIGFzIGluaXRp
YWwgc3RyZWFtaW5nIGZyYW1lIGRlbGF5cy4KLSAgICAgICAqIFRoZSBjYW1lcmEgc2hvdWxkIGJl
IGNvbnNpZGVyZWQgYSBnbG9iYWwgcmVzb3VyY2UgYWNjZXNzaWJsZSBmb3Igc2hhcmVkIGNvbnN1
bXB0aW9uIGJ1dCBub3QgZXhjbHVzaXZlIHRvIGFueSBjYWxsZXIuCi0gICAgICAgKiBUaGUgY2Ft
ZXJhIG1heSBnbyBpbmFjdGl2ZSBkdWUgdG8gbGFjayBvZiBhY3RpdmUgY29uc3VtZXJzIG9yIGhl
YWRzZXQgaWRsZW5lc3MuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIEFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKnBIYW5kbGUgKSA9IDA7
Ci0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0
cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEg
KSA9IDA7Ci0KLSAgICAgICAvKiogQ29waWVzIHRoZSBpbWFnZSBmcmFtZSBpbnRvIGEgY2FsbGVy
J3MgcHJvdmlkZWQgYnVmZmVyLiBUaGUgaW1hZ2UgZGF0YSBpcyBjdXJyZW50bHkgcHJvdmlkZWQg
YXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4KLSAgICAgICAqIEEgY2FsbGVyIGNhbiBw
cm92aWRlIG51bGwgZm9yIHRoZSBmcmFtZWJ1ZmZlciBvciBmcmFtZWhlYWRlciBpZiBub3QgZGVz
aXJlZC4gUmVxdWVzdGluZyB0aGUgZnJhbWUgaGVhZGVyIGZpcnN0LCBmb2xsb3dlZCBieSB0aGUg
ZnJhbWUgYnVmZmVyIGFsbG93cwotICAgICAgICogdGhlIGNhbGxlciB0byBkZXRlcm1pbmUgaWYg
dGhlIGZyYW1lIGFzIGFkdmFuY2VkIHBlciB0aGUgZnJhbWUgaGVhZGVyIHNlcXVlbmNlLiAKLSAg
ICAgICAqIElmIHRoZXJlIGlzIG5vIGZyYW1lIGF2YWlsYWJsZSB5ZXQsIGR1ZSB0byBpbml0aWFs
IGNhbWVyYSBzcGludXAgb3IgcmUtYWN0aXZhdGlvbiwgdGhlIGVycm9yIHdpbGwgYmUgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZS4KLSAgICAgICAqIElkZWFsbHkgYSBjYWxs
ZXIgc2hvdWxkIGJlIHBvbGxpbmcgYXQgfjE2bXMgaW50ZXJ2YWxzICovCi0gICAgICAgdmlydHVh
bCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIoIHZy
OjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBGcmFtZUJ1ZmZlciwgdWludDMyX3QgbkZy
YW1lQnVmZmVyU2l6ZSwgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1l
SGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIEdl
dHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqcFRleHR1cmVCb3VuZHMsIHVpbnQzMl90
ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7IAotCi0gICAgICAgLyoqIEFjY2Vz
cyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRyYWNrZWQgY2FtZXJh
IHN0cmVhbS4KLSAgICAgICAqIFRoZSBjYW1lcmEgZnJhbWUgdHlwZSBWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVW5kaXN0b3J0ZWQgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseSBhcyBhIHNoYXJl
ZCB0ZXh0dXJlLiBJdCBpcyBhbiBpbnRlcmlvciBzdWJyZWdpb24gb2YgdGhlIHNoYXJlZCB0ZXh0
dXJlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQuCi0gICAgICAg
KiBJbnN0ZWFkLCB1c2UgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSgpIHdpdGggVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIHRvIGRldGVybWluZSB0aGUgcHJvcGVyIGludGVy
aW9yIHN1YnJlZ2lvbiBib3VuZHMgYWxvbmcgd2l0aCBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSgpIHdpdGgKLSAgICAgICAqIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0
b3J0ZWQgdG8gcHJvdmlkZSB0aGUgdGV4dHVyZS4gVGhlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZV9NYXhpbXVtVW5kaXN0b3J0ZWQgd2lsbCB5aWVsZCBhbiBpbWFnZSB3aGVyZSB0aGUgaW52YWxp
ZCByZWdpb25zIGFyZSBkZWNvZGVkCi0gICAgICAgKiBieSB0aGUgYWxwaGEgY2hhbm5lbCBoYXZp
bmcgYSB6ZXJvIGNvbXBvbmVudC4gVGhlIHZhbGlkIHJlZ2lvbnMgYWxsIGhhdmUgYSBub24temVy
byBhbHBoYSBjb21wb25lbnQuIFRoZSBzdWJyZWdpb24gYXMgZGVzY3JpYmVkIGJ5IFZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCAKLSAgICAgICAqIGd1YXJhbnRlZXMgYSByZWN0
YW5nbGUgd2hlcmUgYWxsIHBpeGVscyBhcmUgdmFsaWQuICovCi0gICAgICAgdmlydHVhbCB2cjo6
RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKCB2cjo6VHJh
Y2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRDNEMTFEZXZpY2VPclJlc291cmNlLCB2b2lkICoq
cHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFk
ZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLyoqIEFjY2VzcyBhIHNoYXJlZCBHTCB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRy
YWNrZWQgY2FtZXJhIHN0cmVhbSAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1l
cmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0dXJlSWQsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsK
LSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3Ry
ZWFtVGV4dHVyZUdMKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2
cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gaXZyc2NyZWVuc2hvdHMuaAotbmFtZXNwYWNl
IHZyCi17Ci0KLS8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRv
ciAqLwotZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBWUlNjcmVlbnNob3RFcnJv
cl9Ob25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfSW5jb21w
YXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSU2NyZWVu
c2hvdEVycm9yX05vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDIsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfU2Ny
ZWVuc2hvdEFscmVhZHlJblByb2dyZXNzICAgICAgID0gMTA4LAotfTsKLQotLyoqIEFsbG93cyB0
aGUgYXBwbGljYXRpb24gdG8gZ2VuZXJhdGUgc2NyZWVuc2hvdHMgKi8KLWNsYXNzIElWUlNjcmVl
bnNob3RzCi17Ci1wdWJsaWM6Ci0gICAgICAgLyoqIFJlcXVlc3QgYSBzY3JlZW5zaG90IG9mIHRo
ZSByZXF1ZXN0ZWQgdHlwZS4KLSAgICAgICAgKiAgQSByZXF1ZXN0IG9mIHRoZSBWUlNjcmVlbnNo
b3RUeXBlX1N0ZXJlbyB0eXBlIHdpbGwgYWx3YXlzCi0gICAgICAgICogIHdvcmsuIE90aGVyIHR5
cGVzIHdpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGFwcGxpY2F0aW9uCi0gICAgICAgICog
IHN1cHBvcnQuCi0gICAgICAgICogIFRoZSBmaXJzdCBmaWxlIG5hbWUgaXMgZm9yIHRoZSBwcmV2
aWV3IGltYWdlIGFuZCBzaG91bGQgYmUgYQotICAgICAgICAqICByZWd1bGFyIHNjcmVlbnNob3Qg
KGlkZWFsbHkgZnJvbSB0aGUgbGVmdCBleWUpLiBUaGUgc2Vjb25kCi0gICAgICAgICogIGlzIHRo
ZSBWUiBzY3JlZW5zaG90IGluIHRoZSBjb3JyZWN0IGZvcm1hdC4gVGhleSBzaG91bGQgYmUKLSAg
ICAgICAgKiAgaW4gdGhlIHNhbWUgYXNwZWN0IHJhdGlvLiAgRm9ybWF0cyBwZXIgdHlwZToKLSAg
ICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9Nb25vOiB0aGUgVlIgZmlsZW5hbWUgaXMgaWdub3Jl
ZCAoY2FuIGJlCi0gICAgICAgICogIG51bGxwdHIpLCB0aGlzIGlzIGEgbm9ybWFsIGZsYXQgc2lu
Z2xlIHNob3QuCi0gICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvOiAgVGhlIFZSIGlt
YWdlIHNob3VsZCBiZSBhCi0gICAgICAgICogIHNpZGUtYnktc2lkZSB3aXRoIHRoZSBsZWZ0IGV5
ZSBpbWFnZSBvbiB0aGUgbGVmdC4KLSAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFw
OiBUaGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIHNpeCBzcXVhcmUKLSAgICAgICAgKiAgaW1hZ2VzIGNv
bXBvc2l0ZWQgaG9yaXpvbnRhbGx5LgotICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJl
b1Bhbm9yYW1hOiBhYm92ZS9iZWxvdyB3aXRoIGxlZnQgZXllCi0gICAgICAgICogIHBhbm9yYW1h
IGJlaW5nIHRoZSBhYm92ZSBpbWFnZS4gIEltYWdlIGlzIHR5cGljYWxseSBzcXVhcmUKLSAgICAg
ICAgKiAgd2l0aCB0aGUgcGFub3JhbWEgYmVpbmcgMnggaG9yaXpvbnRhbC4KLSAgICAgICAgKiAg
Ci0gICAgICAgICogIE5vdGUgdGhhdCB0aGUgVlIgZGFzaGJvYXJkIHdpbGwgY2FsbCB0aGlzIGZ1
bmN0aW9uIHdoZW4KLSAgICAgICAgKiAgdGhlIHVzZXIgcHJlc3NlcyB0aGUgc2NyZWVuc2hvdCBi
aW5kaW5nIChjdXJyZW50bHkgU3lzdGVtCi0gICAgICAgICogIEJ1dHRvbiArIFRyaWdnZXIpLiAg
SWYgU3RlYW0gaXMgcnVubmluZywgdGhlIGRlc3RpbmF0aW9uCi0gICAgICAgICogIGZpbGUgbmFt
ZXMgd2lsbCBiZSBpbiAlVEVNUCUgYW5kIHdpbGwgYmUgY29waWVkIGludG8KLSAgICAgICAgKiAg
U3RlYW0ncyBzY3JlZW5zaG90IGxpYnJhcnkgZm9yIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uCi0g
ICAgICAgICogIG9uY2UgU3VibWl0U2NyZWVuc2hvdCgpIGlzIGNhbGxlZC4KLSAgICAgICAgKiAg
SWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRoZSBwYXRocyB3aWxsIGJlIGluIHRoZSB1c2VyJ3MK
LSAgICAgICAgKiAgZG9jdW1lbnRzIGZvbGRlciB1bmRlciBEb2N1bWVudHNcU3RlYW1WUlxTY3Jl
ZW5zaG90cy4KLSAgICAgICAgKiAgT3RoZXIgVlIgYXBwbGljYXRpb25zIGNhbiBjYWxsIHRoaXMg
dG8gaW5pdGlhdGUgYQotICAgICAgICAqICBzY3JlZW5zaG90IG91dHNpZGUgb2YgdXNlciBjb250
cm9sLgotICAgICAgICAqICBUaGUgZGVzdGluYXRpb24gZmlsZSBuYW1lcyBkbyBub3QgbmVlZCBh
biBleHRlbnNpb24sCi0gICAgICAgICogIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgY29ycmVj
dCBvbmUgZm9yIHRoZSBmb3JtYXQKLSAgICAgICAgKiAgd2hpY2ggaXMgY3VycmVudGx5IC5wbmcu
ICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFJlcXVlc3RTY3JlZW5z
aG90KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVW
UlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFByZXZpZXdGaWxlbmFtZSwgY29u
c3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsKLQotICAgICAgIC8qKiBDYWxsZWQgYnkgdGhl
IHJ1bm5pbmcgVlIgYXBwbGljYXRpb24gdG8gaW5kaWNhdGUgdGhhdCBpdAotICAgICAgICAqICB3
aXNoZXMgdG8gYmUgaW4gY2hhcmdlIG9mIHNjcmVlbnNob3RzLiAgSWYgdGhlCi0gICAgICAgICog
IGFwcGxpY2F0aW9uIGRvZXMgbm90IGNhbGwgdGhpcywgdGhlIENvbXBvc2l0b3Igd2lsbCBvbmx5
Ci0gICAgICAgICogIHN1cHBvcnQgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gc2NyZWVuc2hvdHMg
dGhhdCB3aWxsIGJlCi0gICAgICAgICogIGNhcHR1cmVkIHdpdGhvdXQgbm90aWZpY2F0aW9uIHRv
IHRoZSBydW5uaW5nIGFwcC4KLSAgICAgICAgKiAgT25jZSBob29rZWQgeW91ciBhcHBsaWNhdGlv
biB3aWxsIHJlY2VpdmUgYQotICAgICAgICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2
ZW50IHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUKLSAgICAgICAgKiAgYnV0dG9ucyB0byB0YWtl
IGEgc2NyZWVuc2hvdC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3Ig
SG9va1NjcmVlbnNob3QoIFZSX0FSUkFZX0NPVU5UKCBudW1UeXBlcyApIGNvbnN0IHZyOjpFVlJT
Y3JlZW5zaG90VHlwZSAqcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMgKSA9IDA7Ci0KLSAg
ICAgICAvKiogV2hlbiB5b3VyIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGEKLSAgICAgICAgKiAgVlJF
dmVudF9SZXF1ZXN0U2NyZWVuc2hvdCBldmVudCwgY2FsbCB0aGVzZSBmdW5jdGlvbnMgdG8gZ2V0
Ci0gICAgICAgICogIHRoZSBkZXRhaWxzIG9mIHRoZSBzY3JlZW5zaG90IHJlcXVlc3QuICovCi0g
ICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZSU2Ny
ZWVuc2hvdEVycm9yICpwRXJyb3IgKSA9IDA7Ci0KLSAgICAgICAvKiogR2V0IHRoZSBmaWxlbmFt
ZSBmb3IgdGhlIHByZXZpZXcgb3IgdnIgaW1hZ2UgKHNlZQotICAgICAgICAqICB2cjo6RVNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lcykuICBUaGUgcmV0dXJuIHZhbHVlIGlzCi0gICAgICAgICog
IHRoZSBzaXplIG9mIHRoZSBzdHJpbmcuICAgKi8KLSAgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3Jl
ZW5zaG90SGFuZGxlLCB2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1l
VHlwZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxl
bmFtZSwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgLyoq
IENhbGwgdGhpcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgdGFraW5nIHRoZSBzY3JlZW4gc2hvdAot
ICAgICAgICAqICB3aWxsIHRha2UgbW9yZSB0aGFuIGEgZmV3IG1zIHByb2Nlc3NpbmcuIFRoaXMg
d2lsbCByZXN1bHQKLSAgICAgICAgKiAgaW4gYW4gb3ZlcmxheSBiZWluZyBwcmVzZW50ZWQgdGhh
dCBzaG93cyBhIGNvbXBsZXRpb24KLSAgICAgICAgKiAgYmFyLiAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlNjcmVlbnNob3RFcnJvciBVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MoIHZyOjpTY3Jl
ZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyApID0gMDsK
LQotICAgICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciB0byB0YWtlIGFuIGludGVybmFsIHNj
cmVlbnNob3Qgb2YKLSAgICAgICAgKiAgdHlwZSBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlby4gSXQg
d2lsbCB0YWtlIHRoZSBjdXJyZW50Ci0gICAgICAgICogIHN1Ym1pdHRlZCBzY2VuZSB0ZXh0dXJl
cyBvZiB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBhbmQKLSAgICAgICAgKiAgd3JpdGUgdGhlbSBp
bnRvIHRoZSBwcmV2aWV3IGltYWdlIGFuZCBhIHNpZGUtYnktc2lkZSBmaWxlCi0gICAgICAgICog
IGZvciB0aGUgVlIgaW1hZ2UuCi0gICAgICAgICogIFRoaXMgaXMgc2ltaWxhciB0byByZXF1ZXN0
IHNjcmVlbnNob3QsIGJ1dCBkb2Vzbid0IGV2ZXIKLSAgICAgICAgKiAgdGFsayB0byB0aGUgYXBw
bGljYXRpb24sIGp1c3QgdGFrZXMgdGhlIHNob3QgYW5kIHN1Ym1pdHMuICovCi0gICAgICAgdmly
dHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFRha2VTdGVyZW9TY3JlZW5zaG90KCB2cjo6U2Ny
ZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY29uc3QgY2hhciAqcGNoUHJl
dmlld0ZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAwOwotCi0gICAgICAg
LyoqIFN1Ym1pdCB0aGUgY29tcGxldGVkIHNjcmVlbnNob3QuICBJZiBTdGVhbSBpcyBydW5uaW5n
Ci0gICAgICAgICogIHRoaXMgd2lsbCBjYWxsIGludG8gdGhlIFN0ZWFtIGNsaWVudCBhbmQgdXBs
b2FkIHRoZQotICAgICAgICAqICBzY3JlZW5zaG90IHRvIHRoZSBzY3JlZW5zaG90cyBzZWN0aW9u
IG9mIHRoZSBsaWJyYXJ5IGZvcgotICAgICAgICAqICB0aGUgcnVubmluZyBhcHBsaWNhdGlvbi4g
IElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGlzCi0gICAgICAgICogIGZ1bmN0aW9uIHdpbGwg
ZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB0byB0aGUgdXNlciB0aGF0IHRoZQotICAgICAgICAqICBz
Y3JlZW5zaG90IHdhcyB0YWtlbi4gVGhlIHBhdGhzIHNob3VsZCBiZSBmdWxsIHBhdGhzIHdpdGgK
LSAgICAgICAgKiAgZXh0ZW5zaW9ucy4KLSAgICAgICAgKiAgRmlsZSBwYXRocyBzaG91bGQgYmUg
YWJzb2x1dGUgaW5jbHVkaW5nIGV4dGVuc2lvbnMuCi0gICAgICAgICogIHNjcmVlbnNob3RIYW5k
bGUgY2FuIGJlIGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCBpZiB0aGlzCi0gICAgICAgICog
IHdhcyBhIG5ldyBzaG90IHRha2luZyBieSB0aGUgYXBwIHRvIGJlIHNhdmVkIGFuZCBub3QKLSAg
ICAgICAgKiAgaW5pdGlhdGVkIGJ5IGEgdXNlciAoYWNoaWV2ZW1lbnQgZWFybmVkIG9yIHNvbWV0
aGluZykgKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgU3VibWl0U2Ny
ZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZS
U2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoU291cmNlUHJldmlld0ZpbGVuYW1l
LCBjb25zdCBjaGFyICpwY2hTb3VyY2VWUkZpbGVuYW1lICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3Rz
XzAwMSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJyZXNvdXJjZXMuaAotbmFt
ZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUlJlc291cmNlcwotewotcHVibGljOgotCi0gICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gU2hhcmVk
IFJlc291cmNlIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgIC8qKiBMb2FkcyB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGludG8g
dGhlIHByb3ZpZGVkIGJ1ZmZlciBpZiBsYXJnZSBlbm91Z2guCi0gICAgICAgKiBSZXR1cm5zIHRo
ZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgcmVxdWlyZWQgdG8gaG9sZCB0aGUgc3BlY2lm
aWVkIHJlc291cmNlLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgTG9hZFNoYXJlZFJlc291
cmNlKCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKnBjaEJ1ZmZlciwgdWludDMy
X3QgdW5CdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAvKiogUHJvdmlkZXMgdGhlIGZ1bGwgcGF0
aCB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlLiBSZXNvdXJjZSBuYW1lcyBjYW4gaW5jbHVkZSBu
YW1lZCBkaXJlY3RvcmllcyBmb3IKLSAgICAgICAqIGRyaXZlcnMgYW5kIG90aGVyIHRoaW5ncywg
YW5kIHRoaXMgcmVzb2x2ZXMgYWxsIG9mIHRob3NlIGFuZCByZXR1cm5zIHRoZSBhY3R1YWwgcGh5
c2ljYWwgcGF0aC4gCi0gICAgICAgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkgaXMgdGhlIHN1
YmRpcmVjdG9yeSBvZiByZXNvdXJjZXMgdG8gbG9vayBpbi4gKi8KLSAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldFJlc291cmNlRnVsbFBhdGgoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlTmFtZSwg
Y29uc3QgY2hhciAqcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFyICpwY2hQYXRoQnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3QgSVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2VzXzAwMSI7Ci0KLQotfQot
Ly8gaXZyZHJpdmVybWFuYWdlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQotY2xhc3MgSVZSRHJpdmVy
TWFuYWdlcgotewotcHVibGljOgotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyQ291
bnQoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZyBudWxsLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyTmFt
ZSggdnI6OkRyaXZlcklkX3QgbkRyaXZlciwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVl
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiA9ICJJVlJEcml2ZXJNYW5hZ2VyXzAwMSI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gRW5kCi0KLSNlbmRpZiAvLyBfT1BFTlZSX0FQ
SQotCi0KLW5hbWVzcGFjZSB2cgotewotICAgICAgIC8qKiBGaW5kcyB0aGUgYWN0aXZlIGluc3Rh
bGxhdGlvbiBvZiB0aGUgVlIgQVBJIGFuZCBpbml0aWFsaXplcyBpdC4gVGhlIHByb3ZpZGVkIHBh
dGggbXVzdCBiZSBhYnNvbHV0ZQotICAgICAgICogb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkuIFRoZXNlIGFyZSB0aGUgbG9jYWwgaW5zdGFsbCB2ZXJzaW9ucyBv
ZiB0aGUgZXF1aXZhbGVudAotICAgICAgICogZnVuY3Rpb25zIGluIHN0ZWFtdnIuaCBhbmQgd2ls
bCB3b3JrIHdpdGhvdXQgYSBsb2NhbCBTdGVhbSBpbnN0YWxsLgotICAgICAgICoKLSAgICAgICAq
IFRoaXMgcGF0aCBpcyB0byB0aGUgInJvb3QiIG9mIHRoZSBWUiBBUEkgaW5zdGFsbC4gVGhhdCdz
IHRoZSBkaXJlY3Rvcnkgd2l0aAotICAgICAgICogdGhlICJkcml2ZXJzIiBkaXJlY3RvcnkgYW5k
IGEgcGxhdGZvcm0gKGkuZS4gIndpbjMyIikgZGlyZWN0b3J5IGluIGl0LCBub3QgdGhlIGRpcmVj
dG9yeSB3aXRoIHRoZSBETEwgaXRzZWxmLgotICAgICAgICoKLSAgICAgICAqIHBTdGFydHVwSW5m
byBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4KLSAgICAgICAqLwotICAgICAgIGlubGluZSBJ
VlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25U
eXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyA9IG51bGxwdHIg
KTsKLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpOwotCi0gICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBITUQgYXR0YWNoZWQuIFRoaXMgY2hlY2sgaXMg
YXMgbGlnaHR3ZWlnaHQgYXMgcG9zc2libGUgYW5kCi0gICAgICAgKiBjYW4gYmUgY2FsbGVkIG91
dHNpZGUgb2YgVlJfSW5pdC9WUl9TaHV0ZG93bi4gSXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBhbiBh
cHBsaWNhdGlvbiB3YW50cwotICAgICAgICogdG8ga25vdyBpZiBpbml0aWFsaXppbmcgVlIgaXMg
YSBwb3NzaWJpbGl0eSBidXQgaXNuJ3QgcmVhZHkgdG8gdGFrZSB0aGF0IHN0ZXAgeWV0LgotICAg
ICAgICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNIbWRQcmVz
ZW50KCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGltZSBp
cyBpbnN0YWxsZWQuICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJf
SXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB3aGVyZSB0aGUgT3Bl
blZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBj
aGFyICpWUl9DQUxMVFlQRSBWUl9SdW50aW1lUGF0aCgpOwotCi0gICAgICAgLyoqIFJldHVybnMg
dGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUgZm9yIGFuIEVWUkluaXRFcnJvci4gVGhpcyBmdW5j
dGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2YgVlJfSW5pdCgpL1ZSX1NodXRkb3duKCkuICov
Ci0gICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX0dldFZSSW5p
dEVycm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOwotCi0gICAgICAgLyoqIFJldHVy
bnMgYW4gRW5nbGlzaCBzdHJpbmcgZm9yIGFuIEVWUkluaXRFcnJvci4gQXBwbGljYXRpb25zIHNo
b3VsZCBjYWxsIFZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2wgaW5zdGVhZCBhbmQKLSAgICAgICAq
IHVzZSB0aGF0IGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlaXIgb3duIGxvY2FsaXplZCBlcnJvciBt
ZXNzYWdlLiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0KCkv
VlJfU2h1dGRvd24oKS4gKi8KLSAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FM
TFRZUEUgVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9y
IGVycm9yICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVj
aWZpZWQgdmVyc2lvbi4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgVlJfSW5pdC4g
VGhlCi0gICAgICAgKiBwb2ludGVyIHJldHVybmVkIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3du
IGlzIGNhbGxlZC4KLSAgICAgICAqLwotICAgICAgIFZSX0lOVEVSRkFDRSB2b2lkICpWUl9DQUxM
VFlQRSBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJz
aW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBSZXR1cm5zIHdoZXRo
ZXIgdGhlIGludGVyZmFjZSBvZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24gZXhpc3RzLgotICAgICAg
ICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24gKTsKLQotICAgICAg
IC8qKiBSZXR1cm5zIGEgdG9rZW4gdGhhdCByZXByZXNlbnRzIHdoZXRoZXIgdGhlIFZSIGludGVy
ZmFjZSBoYW5kbGVzIG5lZWQgdG8gYmUgcmVsb2FkZWQgKi8KLSAgICAgICBWUl9JTlRFUkZBQ0Ug
dWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfR2V0SW5pdFRva2VuKCk7Ci0KLSAgICAgICAvLyBUaGVz
ZSB0eXBlZGVmcyBhbGxvdyBvbGQgZW51bSBuYW1lcyBmcm9tIFNESyAwLjkuMTEgdG8gYmUgdXNl
ZCBpbiBhcHBsaWNhdGlvbnMuCi0gICAgICAgLy8gVGhleSB3aWxsIGdvIGF3YXkgaW4gdGhlIGZ1
dHVyZS4KLSAgICAgICB0eXBlZGVmIEVWUkluaXRFcnJvciBIbWRFcnJvcjsKLSAgICAgICB0eXBl
ZGVmIEVWUkV5ZSBIbWRfRXllOwotICAgICAgIHR5cGVkZWYgRUNvbG9yU3BhY2UgQ29sb3JTcGFj
ZTsKLSAgICAgICB0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3MgVHJhY2tlZERldmljZUNsYXNzOwotICAg
ICAgIHR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLSAgICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVBy
b3BlcnR5OwotICAgICAgIHR5cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQcm9w
ZXJ0eUVycm9yOwotICAgICAgIHR5cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190
OwotICAgICAgIHR5cGVkZWYgRVZSU3RhdGUgVlJTdGF0ZV90OwotICAgICAgIHR5cGVkZWYgRUNv
bGxpc2lvbkJvdW5kc1N0eWxlIENvbGxpc2lvbkJvdW5kc1N0eWxlX3Q7Ci0gICAgICAgdHlwZWRl
ZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci0gICAgICAgdHlwZWRlZiBFVlJGaXJt
d2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUkNvbXBvc2l0b3JF
cnJvciBWUkNvbXBvc2l0b3JFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJv
ciBWUlNjcmVlbnNob3RzRXJyb3I7Ci0KLSAgICAgICBpbmxpbmUgdWludDMyX3QgJlZSVG9rZW4o
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RhdGljIHVpbnQzMl90IHRva2VuOwotICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkNv
bnRleHQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSQ29u
dGV4dCgpIHsgQ2xlYXIoKTsgfQotICAgICAgICAgICAgICB2b2lkIENsZWFyKCk7Ci0KLSAgICAg
ICAgICAgICAgaW5saW5lIHZvaWQgQ2hlY2tDbGVhcigpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIGlmICggVlJUb2tlbigpICE9IFZSX0dldEluaXRUb2tlbigpICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGVhcigp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSVG9rZW4oKSA9IFZSX0dldEluaXRUb2tl
bigpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgSVZSU3lzdGVtICpWUlN5c3RlbSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
eXN0ZW0gPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlN5c3RlbSA9ICggSVZSU3lzdGVtICogKVZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIElWUlN5c3RlbV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgSVZSQ2hhcGVyb25lICpWUkNoYXBlcm9uZSgpCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJDaGFwZXJvbmUgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZSA9ICggSVZSQ2hhcGVy
b25lICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJDaGFwZXJvbmU7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJD
aGFwZXJvbmVTZXR1cCAqVlJDaGFwZXJvbmVTZXR1cCgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSAoIElWUkNoYXBlcm9u
ZVNldHVwICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZVNldHVwX1ZlcnNp
b24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZVNldHVwOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgSVZSQ29tcG9zaXRvciAqVlJDb21wb3NpdG9yKCkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAg
aWYgKCBtX3BWUkNvbXBvc2l0b3IgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSAoIElWUkNvbXBvc2l0b3Ig
KiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCAmZUVycm9y
ICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9wVlJDb21wb3NpdG9yOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZST3Zl
cmxheSAqVlJPdmVybGF5KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUk92ZXJsYXkgPT0g
bnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3BWUk92ZXJsYXkgPSAoIElWUk92ZXJsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
T3ZlcmxheV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJPdmVybGF5OwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgSVZSUmVzb3VyY2VzICpWUlJlc291cmNlcygpCi0gICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAg
ICAgIGlmICggbV9wVlJSZXNvdXJjZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IChJVlJSZXNvdXJjZXMg
KilWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJSZXNvdXJjZXNfVmVyc2lvbiwgJmVFcnJvciAp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
cFZSUmVzb3VyY2VzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSU2NyZWVu
c2hvdHMgKlZSU2NyZWVuc2hvdHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2NyZWVu
c2hvdHMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gKCBJVlJTY3JlZW5zaG90cyAqIClWUl9HZXRHZW5l
cmljSW50ZXJmYWNlKCBJVlJTY3JlZW5zaG90c19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTY3JlZW5z
aG90czsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAq
VlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBD
aGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSUmVuZGVyTW9kZWxz
ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJSZW5kZXJNb2RlbHMgPSAoIElWUlJlbmRlck1vZGVscyAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9k
ZWxzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNwbGF5
ICpWUkV4dGVuZGVkRGlzcGxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJFeHRlbmRl
ZERpc3BsYXkgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9ICggSVZSRXh0ZW5kZWREaXNwbGF5ICog
KVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBJVlJTZXR0aW5ncyAqVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
ZXR0aW5ncyA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSAoIElWUlNldHRpbmdzICogKVZSX0dldEdlbmVyaWNJ
bnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdzOwotICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSQXBwbGljYXRpb25zICpWUkFwcGxpY2F0
aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbHB0
ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFw
cGxpY2F0aW9ucyA9ICggSVZSQXBwbGljYXRpb25zICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkFwcGxpY2F0aW9uc19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICpWUlRyYWNrZWRD
YW1lcmEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSVHJhY2tlZENhbWVyYSA9PSBudWxs
cHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZS
VHJhY2tlZENhbWVyYSA9ICggSVZSVHJhY2tlZENhbWVyYSAqIClWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlRyYWNrZWRDYW1lcmE7
Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJEcml2ZXJNYW5hZ2VyICpWUkRy
aXZlck1hbmFnZXIoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoICFtX3BWUkRyaXZlck1hbmFnZXIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJNYW5hZ2VyID0gKCBJVlJEcml2ZXJNYW5hZ2VyICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJpdmVyTWFuYWdlcjsKLSAg
ICAgICAgICAgICAgfQotCi0gICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgICAgSVZSU3lzdGVt
ICAgICAgICAgICAgICAgICAgICAgKm1fcFZSU3lzdGVtOwotICAgICAgICAgICAgICBJVlJDaGFw
ZXJvbmUgICAgICAgICAgICAgICptX3BWUkNoYXBlcm9uZTsKLSAgICAgICAgICAgICAgSVZSQ2hh
cGVyb25lU2V0dXAgICAgICAgKm1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIElW
UkNvbXBvc2l0b3IgICAgICAgICAgICAgICptX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAg
IElWUk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICAqbV9wVlJPdmVybGF5OwotICAgICAgICAg
ICAgICBJVlJSZXNvdXJjZXMgICAgICAgICAgICAgICptX3BWUlJlc291cmNlczsKLSAgICAgICAg
ICAgICAgSVZSUmVuZGVyTW9kZWxzICAgICAgICAgICAgICAqbV9wVlJSZW5kZXJNb2RlbHM7Ci0g
ICAgICAgICAgICAgIElWUkV4dGVuZGVkRGlzcGxheSAgICAgICAqbV9wVlJFeHRlbmRlZERpc3Bs
YXk7Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgKm1fcFZS
U2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAgICAgICAgICAgICAgKm1f
cFZSQXBwbGljYXRpb25zOwotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICAgICAgICpt
X3BWUlRyYWNrZWRDYW1lcmE7Ci0gICAgICAgICAgICAgIElWUlNjcmVlbnNob3RzICAgICAgICAg
ICAgICAqbV9wVlJTY3JlZW5zaG90czsKLSAgICAgICAgICAgICAgSVZSRHJpdmVyTWFuYWdlciAg
ICAgICAqbV9wVlJEcml2ZXJNYW5hZ2VyOwotICAgICAgIH07Ci0KLSAgICAgICBpbmxpbmUgQ09w
ZW5WUkNvbnRleHQgJk9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgc3RhdGljIHZvaWQgKmN0eFsgc2l6ZW9mKCBDT3BlblZSQ29udGV4dCApIC8g
c2l6ZW9mKCB2b2lkICogKSBdOwotICAgICAgICAgICAgICByZXR1cm4gKiggQ09wZW5WUkNvbnRl
eHQgKiApY3R4OyAvLyBieXBhc3MgemVyby1pbml0IGNvbnN0cnVjdG9yCi0gICAgICAgfQotCi0g
ICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfQ0FMTFRZUEUgVlJTeXN0ZW0oKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTeXN0ZW0oKTsgfQotICAgICAgIGlubGlu
ZSBJVlJDaGFwZXJvbmUgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lKCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lKCk7IH0KLSAgICAgICBpbmxpbmUg
SVZSQ2hhcGVyb25lU2V0dXAgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lU2V0dXAoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDaGFwZXJvbmVTZXR1cCgpOyB9Ci0g
ICAgICAgaW5saW5lIElWUkNvbXBvc2l0b3IgKlZSX0NBTExUWVBFIFZSQ29tcG9zaXRvcigpIHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNvbXBvc2l0b3IoKTsgfQot
ICAgICAgIGlubGluZSBJVlJPdmVybGF5ICpWUl9DQUxMVFlQRSBWUk92ZXJsYXkoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJPdmVybGF5KCk7IH0KLSAgICAgICBp
bmxpbmUgSVZSU2NyZWVuc2hvdHMgKlZSX0NBTExUWVBFIFZSU2NyZWVuc2hvdHMoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTY3JlZW5zaG90cygpOyB9Ci0gICAg
ICAgaW5saW5lIElWUlJlbmRlck1vZGVscyAqVlJfQ0FMTFRZUEUgVlJSZW5kZXJNb2RlbHMoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZW5kZXJNb2RlbHMoKTsg
fQotICAgICAgIGlubGluZSBJVlJBcHBsaWNhdGlvbnMgKlZSX0NBTExUWVBFIFZSQXBwbGljYXRp
b25zKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQXBwbGljYXRp
b25zKCk7IH0KLSAgICAgICBpbmxpbmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGlu
Z3MoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTZXR0aW5ncygp
OyB9Ci0gICAgICAgaW5saW5lIElWUlJlc291cmNlcyAqVlJfQ0FMTFRZUEUgVlJSZXNvdXJjZXMo
KSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZXNvdXJjZXMoKTsg
fQotICAgICAgIGlubGluZSBJVlJFeHRlbmRlZERpc3BsYXkgKlZSX0NBTExUWVBFIFZSRXh0ZW5k
ZWREaXNwbGF5KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRXh0
ZW5kZWREaXNwbGF5KCk7IH0KLSAgICAgICBpbmxpbmUgSVZSVHJhY2tlZENhbWVyYSAqVlJfQ0FM
TFRZUEUgVlJUcmFja2VkQ2FtZXJhKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29u
dGV4dCgpLlZSVHJhY2tlZENhbWVyYSgpOyB9Ci0gICAgICAgaW5saW5lIElWUkRyaXZlck1hbmFn
ZXIgKlZSX0NBTExUWVBFIFZSRHJpdmVyTWFuYWdlcigpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQoKS5WUkRyaXZlck1hbmFnZXIoKTsgfQotCi0gICAgICAgaW5saW5lIHZv
aWQgQ09wZW5WUkNvbnRleHQ6OkNsZWFyKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIG1fcFZS
U3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJPdmVy
bGF5ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG51bGxwdHI7Ci0gICAgICAg
ICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUkFwcGxp
Y2F0aW9ucyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENhbWVyYSA9IG51
bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSUmVzb3VyY2VzID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSRHJp
dmVyTWFuYWdlciA9IG51bGxwdHI7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIFZSX0lOVEVS
RkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3Ig
KnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFy
ICpwU3RhcnR1cEluZm8gKTsKLSAgICAgICBWUl9JTlRFUkZBQ0Ugdm9pZCBWUl9DQUxMVFlQRSBW
Ul9TaHV0ZG93bkludGVybmFsKCk7Ci0KLSAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0
YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFuZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIGlu
bGluZSBJVlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGlj
YXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApCi0g
ICAgICAgewotICAgICAgICAgICAgICBJVlJTeXN0ZW0gKnBWUlN5c3RlbSA9IG51bGxwdHI7Ci0K
LSAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgVlJUb2tl
bigpID0gVlJfSW5pdEludGVybmFsMiggJmVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgcFN0YXJ0
dXBJbmZvICk7Ci0gICAgICAgICAgICAgIENPcGVuVlJDb250ZXh0ICZjdHggPSBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVDb250ZXh0KCk7Ci0gICAgICAgICAgICAgIGN0eC5DbGVhcigpOwotCi0gICAg
ICAgICAgICAgIGlmICggZUVycm9yID09IFZSSW5pdEVycm9yX05vbmUgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KCBJVlJTeXN0ZW1fVmVyc2lvbiApICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwVlJTeXN0ZW0gPSBWUlN5c3RlbSgpOwotICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlRXJyb3IgPSBWUkluaXRFcnJvcl9Jbml0X0lu
dGVyZmFjZU5vdEZvdW5kOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICAgICAgICAgICAgICAgICpw
ZUVycm9yID0gZUVycm9yOwotICAgICAgICAgICAgICByZXR1cm4gcFZSU3lzdGVtOwotICAgICAg
IH0KLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUl9TaHV0ZG93bkludGVybmFsKCk7Ci0gICAgICAgfQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuY3MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworKysgL2Rldi9udWxsCkBAIC0x
LDQ3ODYgKzAsMCBAQAotLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24s
IEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IFRo
aXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBPcGVuVlIg
aW50ZXJmYWNlcwotLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBp
dC4KLS8vCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXVzaW5nIFN5c3RlbTsKLXVzaW5nIFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKLXVzaW5nIFZhbHZlLlZSOwotCi1uYW1lc3Bh
Y2UgVmFsdmUuVlIKLXsKLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldpZHRoLCBy
ZWYgdWludCBwbkhlaWdodCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXpl
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUgZUV5ZSwg
ZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1hdHJpeCBH
ZXRQcm9qZWN0aW9uTWF0cml4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCByZWYgZmxv
YXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZsb2F0IGZV
LCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRp
bmF0ZXMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9uOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVUb0hlYWRU
cmFuc2Zvcm0oRVZSRXllIGVFeWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9ybSBHZXRF
eWVUb0hlYWRUcmFuc2Zvcm07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMs
IHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxhc3RWc3lu
YyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVySW5kZXgg
R2V0RDNEOUFkYXB0ZXJJbmRleDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzRGlzcGxheU9u
RGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVza3RvcCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3Rl
ZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtd
IHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERldmljZVRv
QWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Qb3NlIFJl
c2V0U2VhdGVkWmVyb1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1h
dHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3Nl
KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bv
c2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1plcm9Qb3Nl
VG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJz
b2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNz
IGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50IHVuUmVs
YXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tlZERldmlj
ZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzczsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwgX0dldFRy
YWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJh
Y2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWw7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3JtKHJlZiBU
cmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBw
VHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShFVHJh
Y2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERldmlj
ZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxl
clJvbGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29udHJvbGxl
clJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZp
Y2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgg
R2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZpY2VDbGFz
cyh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFzcyBHZXRU
cmFja2VkRGV2aWNlQ2xhc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lz
VHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVy
dHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tlZERldmlj
ZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUlu
ZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0VWlu
dDY0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2VkUHJv
cGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1
bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5
IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Q
b2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCwgcmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Qb2xsTmV4
dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVudFR5
cGUgZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVudFR5cGVO
YW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRlbkFyZWFN
ZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNoOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGUodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRy
b2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbnRy
b2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZlcnNl
T3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXpl
LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVsc2UodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1cmF0aW9u
TWljcm9TZWMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGljUHVsc2U7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9uSWROYW1l
RnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCdXR0b25JZE5hbWVG
cm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oRVZSQ29u
dHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4aXNUeXBl
TmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZWxlYXNl
SW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1c0NhcHR1
cmVkQnlBbm90aGVyUHJvY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWlu
dCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaFJlcXVl
c3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZpcm13YXJl
VXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJlVXBkYXRl
IFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1aXRf
RXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tu
b3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsKLQotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElW
UkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
R2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQgcG5XaWR0
aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRXaW5kb3dC
b3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5ZU91dHB1
dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwgcmVmIHVp
bnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1dFZpZXdw
b3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCByZWYgaW50
IHBuQWRhcHRlck91dHB1dEluZGV4KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBHZXREWEdJ
T3V0cHV0SW5mbzsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
Ci1wdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tlZENh
bWVyYUVycm9yIGVDYW1lcmFFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmljZUluZGV4
LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJhOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENh
bWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwgcmVmIHVp
bnQgcG5GcmFtZUJ1ZmZlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBHZXRDYW1l
cmFGcmFtZVNpemU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBGb2NhbExl
bmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJbnRyaW5z
aWNzIEdldENhbWVyYUludHJpbnNpY3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZpY2VJ
bmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFy
LCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVvU3RyZWFt
aW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vydmlj
ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9y
IF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJhKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVhbWluZ1Nl
cnZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVmZmVyLCB1
aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
cEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3Ry
ZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVmIHVpbnQg
cG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4dHVy
ZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDExU2hh
ZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFt
ZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1
cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVhc2VWaWRl
b1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1cmVJZCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0cmVhbVRl
eHR1cmVHTDsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1w
dWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucwotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChzdHJpbmcg
cGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3ZlQXBwbGlj
YXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3Q7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRpb25JbnN0
YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3RhbGxlZCBJ
c0FwcGxpY2F0aW9uSW5zdGFsbGVkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Db3VudCBH
ZXRBcHBsaWNhdGlvbkNvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJB
cHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFwcGxpY2F0
aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLCB1aW50
IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXggR2V0
QXBwbGljYXRpb25LZXlCeUluZGV4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Q
cm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4p
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRpb25LZXlC
eVByb2Nlc3NJZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24o
c3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4sIE91dF0g
QXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xhdW5jaFRl
bXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRp
b25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWlt
ZVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJy
b3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJpbmcg
cGNoQXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxBcHBsaWNh
dGlvbkxhdW5jaDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNo
QXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGljYXRpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uUHJv
Y2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvY2Vzc0lk
IEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtIEdl
dEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBwY2hBcHBL
ZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVy
TGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNh
dGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlCb29s
KHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCByZWYg
RVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3Bl
cnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3RyaW5nIHBj
aEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJBcHBsaWNh
dGlvbkVycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQg
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9y
IF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LCBzdHJp
bmcgcGNoTWltZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBl
IFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcg
cGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJM
ZW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERlZmF1bHRB
cHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBwS2V5LCBz
dHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmluZyBw
Y2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZm
ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0QXBwbGlj
YXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRsZSwgc3Ry
aW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxhdW5jaEFy
Z3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBsaWNhdGlv
bihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIF9H
ZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNp
dGlvblN0YXRlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlv
bkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3JtQXBwbGlj
YXRpb25QcmVsYXVuY2hDaGVjazsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50
UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RyYW5z
aXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1l
RnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzUXVpdFVz
ZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkIElz
UXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNoQmlu
YXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJlY3Rvcnkp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nlc3M7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZVByb2Nl
c3NJZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50U2NlbmVQ
cm9jZXNzSWQ7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNp
emVYLCByZWYgZmxvYXQgcFNpemVaKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0UGxheUFy
ZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5QXJl
YVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3QgR2V0UGxh
eUFyZWFSZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxvYWRJ
bmZvKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3IpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9y
QXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVE
aXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRC
b3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2libGUgQXJl
Qm91bmRzVmlzaWJsZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9y
Y2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zpc2libGUg
Rm9yY2VCb3VuZHNWaXNpYmxlOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJvbmVDb25m
aWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1pdFdvcmtp
bmdDb3B5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZlcnRXb3Jr
aW5nQ29weSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdDb3B5Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxheUFyZWFT
aXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdvcmtp
bmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90
IHJlY3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1BsYXlBcmVh
UmVjdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgcmVm
IHVpbnQgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5n
UGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2lu
Z1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4sIE91
dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Jl
bG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Jl
bG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1k
TWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBU
YWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdz
SW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdDb3VudCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVm
ZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91bmRz
SW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5ndGgpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoc3Ry
aW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7Ci0KLX0KLQotW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGljIHN0cnVjdCBJVlJDb21wb3NpdG9yCi17
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1NwYWNlKEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5nU3BhY2Ug
U2V0VHJhY2tpbmdTcGFjZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFja2lu
Z1NwYWNlIEdldFRyYWNraW5nU3BhY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2VkRGV2aWNl
UG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBb
SW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50IHVuR2Ft
ZVBvc2VBcnJheUNvdW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2VzOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldExhc3RQ
b3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVp
bnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3Rb
XSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
TGFzdFBvc2VzIEdldExhc3RQb3NlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50
IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYg
VHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldExhc3RQb3Nl
Rm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1N1Ym1p
dChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVyZUJvdW5k
c190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3VibWl0
IFN1Ym1pdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xlYXJMYXN0
U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBDbGVhckxh
c3RTdWJtaXR0ZWRGcmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
UG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBvc3RQcmVz
ZW50SGFuZG9mZjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RnJh
bWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1bkZyYW1l
c0Fnbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGlt
aW5ncyBHZXRGcmFtZVRpbWluZ3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGZs
b2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVSZW1haW5p
bmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRz
IHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxhdGl2ZVN0
YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVl
biwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
RmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywgYm9vbCBi
RmFkZUluKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDdXJy
ZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0luLCBPdXRd
IFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0
U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhclNreWJv
eE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Db21wb3NpdG9y
QnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0
b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1aXQgQ29t
cG9zaXRvclF1aXQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzRnVs
bHNjcmVlbigpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vzcygp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2NlbmVGb2N1
c1Byb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldExhc3RG
cmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFzdEZyYW1l
UmVuZGVyZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhblJlbmRl
clNjZW5lKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IaWRlTWlycm9y
V2luZG93IEhpZGVNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2luZG93Vmlz
aWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckR1bXBJ
bWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG91
bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJj
ZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50ZXJsZWF2
ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhib29sIGJT
dXNwZW5kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9y
VGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRNaXJyb3JU
ZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEgUmVs
ZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUsIHJlZiB1
aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRleHR1
cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVNoYXJl
ZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3Mg
TG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyBV
bmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5jZUV4dGVu
c2lvbnNSZXF1aXJlZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZpY2UsIFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2aWNlRXh0
ZW5zaW9uc1JlcXVpcmVkOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtl
eSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBGaW5kT3Zl
cmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9D
cmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVu
ZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DcmVhdGVPdmVybGF5
IENyZWF0ZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9E
ZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1YWxpdHlP
dmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0SGlnaFF1
YWxpdHlPdmVybGF5KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhpZ2hRdWFs
aXR5T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3Zl
cmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCBy
ZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUgR2V0T3Zl
cmxheU5hbWU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBwdkJ1
ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWludCBwdW5I
ZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdlRGF0YTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5RXJyb3JO
YW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5kZXJpbmdQ
aWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlSZW5kZXJp
bmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3Zl
cmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNldE92ZXJs
YXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFnIEdl
dE92ZXJsYXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xvciBTZXRP
dmVybGF5Q29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBm
UmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmQWxwaGEpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5QWxwaGE7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25n
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVy
bGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcg
dWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5U29y
dE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNvcnRPcmRl
ciBHZXRPdmVybGF5U29ydE9yZGVyOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0aEluTWV0
ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3Rh
bmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5j
ZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFu
Y2VSYW5nZUluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcg
dWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCByZWYgZmxv
YXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRl
cnM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3Bh
Y2UgZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNvbG9yU3Bh
Y2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4
dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJl
Qm91bmRzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5VGV4dHVy
ZUJvdW5kczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRy
YW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5n
T3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFu
c2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwg
dWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNl
VG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERl
dmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4LCBzdHJp
bmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3JtRm9yT3Zl
cmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXM7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3ZlcmxheUV2ZW50
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5jYlZS
RXZlbnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3ZlcmxheUV2ZW50
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnB1
dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRob2QgR2V0
T3ZlcmxheUlucHV0TWV0aG9kOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUlu
cHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNjYWxlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190
IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3VsdHMpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVpbnQg
dW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJPdmVybGF5
SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01v
dXNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVyVGFyZ2V0
T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJnZXRPdmVy
bGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEdhbWVwYWRGb2N1
c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsb25nIHVs
TmV3Rm9jdXNPdmVybGF5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNldEdhbWVw
YWRGb2N1c092ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24s
IHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdoYm9yIFNl
dE92ZXJsYXlOZWlnaGJvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNUb05laWdo
Ym9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1
cmUgU2V0T3ZlcmxheVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5UmF3
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lkdGgsIHVp
bnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBTZXRPdmVy
bGF5UmF3OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBwY2hGaWxl
UGF0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmlsZTsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5
VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1cmVI
YW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCByZWYgdWlu
dCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBlIHBBUElU
eXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBw
VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3ZlcmxheVRleHR1
cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfUmVs
ZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIgcE5h
dGl2ZVRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIFJl
bGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVybGF5KHN0
cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVmIHVs
b25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3Jl
YXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9J
c0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3RpdmVEYXNo
Ym9hcmRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5l
UHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJZCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRPdmVybGF5
U2NlbmVQcm9jZXNzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TaG93
RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG93RGFzaGJvYXJk
IFNob3dEYXNoYm9hcmQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2
aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLCBpbnQg
ZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJNYXgsIHN0
cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1VXNlclZh
bHVlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRNb2Rl
LCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhpc3Rp
bmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEtleWJvYXJk
VGV4dCBHZXRLZXlib2FyZFRleHQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX0hpZGVLZXlib2FyZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9hcmQ7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJhbnNmb3Jt
QWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYgSG1k
TWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1
dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBhdm9pZFJl
Y3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1pdGl2
ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92ZXJsYXko
c3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9uMFRleHQs
IHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJpbmcgcGNo
QnV0dG9uM1RleHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2FnZU92ZXJs
YXk7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGlj
IHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVu
ZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvYWRSZW5k
ZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1vZGVsKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9Bc3luYyhp
bnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1cmVf
QXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmUg
RnJlZVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1v
ZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50UHRyIHBE
M0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Mb2FkVGV4
dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVyZUQzRDEx
X0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZElu
dG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBE
M0QxMVRleHR1cmUyRCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVyZUQzRDEx
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbE5h
bWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRS
ZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVy
TW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1l
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4pOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbXBv
bmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0cmluZyBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVu
dFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1l
IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwg
c3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9s
bGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSwg
cmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbmRlck1v
ZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRodW1ibmFp
bFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVF
cnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVyTW9kZWxU
aHVtYm5haWxVUkw7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJl
bmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQYXRoTGVu
LCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2Rl
bE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVt
KEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsRXJyb3JO
YW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKLQotfQotCi1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElWUk5vdGlm
aWNhdGlvbnMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNhdGlv
bkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1bG9uZyB1
bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4dCwgRVZS
Tm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1hZ2Us
IHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0aW9uIENy
ZWF0ZU5vdGlmaWNhdGlvbjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSTm90
aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlvbklkKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOwotCi19Ci0KLVtT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSU2V0
dGluZ3MKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0U2V0dGlu
Z3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtOwot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZvcmNlLCBy
ZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNlY3Rpb24s
IHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9y
IHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hT
ZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0SW50MzIgU2V0SW50MzI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Nl
dEZsb2F0IFNldEZsb2F0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
ZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgc3RyaW5n
IHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRTdHJp
bmcgU2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRC
b29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJTZXR0
aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbiwgc3Ry
aW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRJbnQzMiBHZXRJbnQzMjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgZmxv
YXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJl
ZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZsb2F0Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3RyaW5nIHBj
aFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNlY3Rpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUluU2VjdGlv
bihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3ZlS2V5SW5T
ZWN0aW9uOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1
YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91dFNj
cmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQcmV2aWV3
RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2NyZWVuc2hv
dCBSZXF1ZXN0U2NyZWVuc2hvdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
U2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVuc2hvdFR5
cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSG9va1NjcmVlbnNo
b3QgSG9va1NjcmVlbnNob3Q7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNj
cmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhh
bmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFNjcmVlbnNo
b3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUodWlu
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5h
bWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50IGNjaEZp
bGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBkYXRlU2Ny
ZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9U
YWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgc3RyaW5n
IHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOwotICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Rha2VT
dGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3QodWludCBz
Y3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoU291cmNl
UHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3Vi
bWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCi17Ci0gICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
LSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uoc3RyaW5n
IHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNo
UmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJpbmcgcGNo
UGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VGdWxsUGF0
aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOwotCi19Ci0KLQotcHVibGljIGNsYXNzIENWUlN5c3RlbQot
ewotICAgICAgIElWUlN5c3RlbSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUlN5c3RlbShJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
U3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlN5c3Rl
bSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRlclRh
cmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJlZiBw
bldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXg0
NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZsb2F0IGZG
YXJaKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQgPSBGblRh
YmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRQcm9qZWN0
aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmlnaHQscmVm
IGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmTGVmdCA9IDA7Ci0gICAgICAgICAgICAgIHBmUmlnaHQgPSAwOwotICAgICAgICAgICAgICBw
ZlRvcCA9IDA7Ci0gICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxyZWYgcGZU
b3AscmVmIHBmQm90dG9tKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQ29tcHV0ZURp
c3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRpb25Db29y
ZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCi0gICAgICAgewotICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxmVixyZWYg
cERpc3RvcnRpb25Db29yZGluYXRlcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9y
bShFVlJFeWUgZUV5ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFRpbWVTaW5j
ZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVsb25nIHB1
bEZyYW1lQ291bnRlcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmU2Vjb25kc1NpbmNlTGFz
dFZzeW5jID0gMDsKLSAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgcGZT
ZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0RDNEOUFkYXB0
ZXJJbmRleCgpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXREM0Q5QWRhcHRlckluZGV4KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFw
dGVySW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRlckluZGV4
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3BsYXlPbkRl
c2t0b3AoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25EZXNrdG9w
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldERpc3Bs
YXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fic29sdXRl
VHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQgZlByZWRp
Y3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFRyYWNr
ZWREZXZpY2VQb3NlQXJyYXkpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkdldERl
dmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25kc1RvUGhv
dG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2VkRGV2aWNl
UG9zZUFycmF5Lkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0U2Vh
dGVkWmVyb1Bvc2UoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5SZXNldFNlYXRl
ZFplcm9Qb3NlKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldFNl
YXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0ZWRaZXJv
UG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERldmljZUlu
ZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcyx1aW50
IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJhY2tlZERl
dmljZUluZGV4KQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmljZUNsYXNz
LHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNlSW5kZXhB
cnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVEZXZpY2VBY3Rpdml0
eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9IEZuVGFi
bGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEFwcGx5VHJh
bnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2VkRGV2
aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNmb3Jt
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShyZWYgcE91
dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJS
b2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNv
bnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENvbnRy
b2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUluZGV4KTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVU
cmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZpY2VJbmRl
eCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzVHJhY2tl
ZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKHVuRGV2
aWNlSW5kZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJ
bmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlFcnJv
ciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJv
cik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRG
bG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBp
bnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldEludDMyVHJh
Y2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdl
dFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50NjRUcmFj
a2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4
MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBGblRh
YmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxy
ZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IHBFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0o
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50
UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRfdCBwRXZl
bnQsdWludCB1bmNiVlJFdmVudCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBQb2xs
TmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixyZWYgVlJF
dmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBU
cmFja2VkRGV2aWNlUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVuY2JWUkV2
ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVGcm9tRW51
bShFVlJFdmVudFR5cGUgZVR5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOwotICAgICAgICAg
ICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZSRXllIGVF
eWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSGlk
ZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVFeWUsdHlw
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBpcyBh
IHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0
YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNr
aW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgs
cmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBs
aWNpdCldCi0gICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCi0gICAgICAgewot
ICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJT
eXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOwotICAgICAgICAg
ICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29udHJvbGxl
clN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRy
b2xsZXJTdGF0ZVNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5FbnZp
cm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NYKSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJz
aW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1OwotICAgICAg
ICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0g
bmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1
LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
dS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwodWludClT
eXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9mKFZSQ29u
dHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9w
YWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBwYWNrZWRfcmVzdWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVyRGV2aWNl
SW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0vLyBUaGlzIGlzIGEgdGVycmlibGUg
aGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVfdCB3YXMK
LS8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcgZm9yIExp
bnV4IGFuZCBPU1guCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFj
a2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIFRyYWNr
ZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0g
ICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
IHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlUGFj
a2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xs
ZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5
c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
U3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1J
RC5Vbml4KSkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJv
bGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OwotICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9s
bGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVXaXRo
UG9zZVBhY2tlZCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBzdGF0
ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwuU2l6
ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tlZERldmlj
ZVBvc2UpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJlZiBw
Q29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRfcmVz
dWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYgcFRyYWNr
ZWREZXZpY2VQb3NlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRv
bklkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0
QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBz
dHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJBeGlz
VHlwZSBlQXhpc1R5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1cygpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBSZWxlYXNlSW5wdXRGb2N1cygpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJl
bGVhc2VJbnB1dEZvY3VzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzSW5wdXRG
b2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCi0gICAgICAgewotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNz
KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaFJl
cXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNpemUp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJpdmVyRGVi
dWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZlcix1blJl
c3BvbnNlQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1
aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJGaXJtd2FyZUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNlSW5kZXgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCi0gICAgICAgewotICAgICAgICAgICAgICBG
blRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICB9Ci19Ci0K
LQotcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIElWUkV4dGVuZGVk
RGlzcGxheSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxheShJbnRQ
dHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSRXh0
ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
UkV4dGVuZGVkRGlzcGxheSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRXaW5k
b3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWlu
dCBwbkhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuWCA9IDA7Ci0gICAgICAgICAg
ICAgIHBuWSA9IDA7Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBw
bkhlaWdodCA9IDA7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRzKHJlZiBw
blgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOwotICAgICAgIH0KLSAgICAgICBw
dWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWludCBwblgs
cmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCi0gICAgICAg
ewotICAgICAgICAgICAgICBwblggPSAwOwotICAgICAgICAgICAgICBwblkgPSAwOwotICAgICAg
ICAgICAgICBwbldpZHRoID0gMDsKLSAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOwotICAgICAg
ICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxyZWYgcG5Z
LHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lk
IEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBwbkFkYXB0
ZXJPdXRwdXRJbmRleCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuQWRhcHRlckluZGV4ID0g
MDsKLSAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOwotICAgICAgICAgICAg
ICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYgcG5BZGFw
dGVyT3V0cHV0SW5kZXgpOwotICAgICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZSVHJhY2tl
ZENhbWVyYQotewotICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKLSAgICAgICBpbnRl
cm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1
cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgZUNhbWVyYUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJl
c3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKHVp
bnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCi0gICAgICAgewotICAgICAgICAg
ICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBIYXNDYW1l
cmEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJ
bmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcG5XaWR0
aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7
Ci0gICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVTaXplKG5E
ZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYgcG5GcmFt
ZUJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3ModWlu
dCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBI
bWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBGb2NhbExl
bmd0aCxyZWYgcENlbnRlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVjdGlv
bih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUs
ZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2plY3Rpb24p
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLGZsWk5l
YXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWlyZVZp
ZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhhbmRsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHBIYW5kbGUgPSAwOwotICAgICAgICAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJlYW1pbmdT
ZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVs
ZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLlJl
bGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZmZXIsdWlu
dCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZy
YW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtRnJh
bWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZyYW1lQnVm
ZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4
dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQotICAgICAgIHsK
LSAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7Ci0gICAgICAgICAgICAgIHBuSGVpZ2h0ID0gMDsK
LSAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcFRleHR1
cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3VyY2Us
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscEQz
RDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYgcEZy
YW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXplKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0dXJl
R0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBwRnJhbWVI
ZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJlSWQpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xUZXh0dXJl
SWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLX0KLQotCi1wdWJs
aWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCi17Ci0gICAgICAgSVZSQXBwbGljYXRpb25zIEZuVGFi
bGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJmYWNlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMpTWFyc2hh
bC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25zKSk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29sIGJUZW1w
b3JhcnkpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlmZXN0
RnVsbFBhdGgsYlRlbXBvcmFyeSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZW1v
dmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHBj
aEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbkluZGV4
LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBLZXlC
dWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRpb25JbmRl
eCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBH
ZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5nIHBjaEFw
cEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5
QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVu
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVu
Y2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJpbmcgcGNo
TmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1aW50KSBw
S2V5cy5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1l
VHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBwbGlj
YXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9y
IExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hEYXNo
Ym9hcmRPdmVybGF5KHBjaEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
SWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXkpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRBcHBs
aWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBjaEFwcEtl
eSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRpb25F
cnJvciBlcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRh
YmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5nIHBjaEFw
cEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVCdWZmZXJM
ZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHBj
aEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5VmFsdWVC
dWZmZXJMZW4scmVmIHBlRXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChzdHJp
bmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQcm9wZXJ0
eSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmluZyBw
Y2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFwcGxpY2F0
aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVByb3BlcnR5
LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
KHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNhdGlvbkF1
dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoKHN0cmluZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNh
dGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hBcHBL
ZXksc3RyaW5nIHBjaE1pbWVUeXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5B
cHBLZXlCdWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXBw
S2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRN
aW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLHVpbnQg
dW5NaW1lVHlwZXNCdWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5LHBjaE1p
bWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uc1RoYXRT
dXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUaGF0U3Vw
cG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcix1bkFw
cEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRz
KHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCi0gICAgICAgewotICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1
bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBHZXRTdGFy
dGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZl
ckxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtl
eUJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9uU3Rh
dGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25TdGF0ZSBzdGF0ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQg
PSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShzdGF0
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc1F1aXRV
c2VyUHJvbXB0UmVxdWVzdGVkKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVybmFsUHJv
Y2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmluZyBwY2hX
b3JraW5nRGlyZWN0b3J5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5hcnlQYXRo
LHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5lUHJv
Y2Vzc0lkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQotewotICAgICAgIElW
UkNoYXBlcm9uZSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hhcGVy
b25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNoYXBlcm9u
ZSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSBH
ZXRDYWxpYnJhdGlvblN0YXRlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRlKCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVopCi0gICAg
ICAgewotICAgICAgICAgICAgICBwU2l6ZVggPSAwOwotICAgICAgICAgICAgICBwU2l6ZVogPSAw
OwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFTaXplKHJl
ZiBwU2l6ZVgscmVmIHBTaXplWik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90IHJl
Y3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxh
eUFyZWFSZWN0KHJlZiByZWN0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQg
U2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksaW50IG5O
dW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVmIEht
ZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1dENvbG9y
cyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNvbG9yKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCi0gICAgICAg
ewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlzaWJsZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOwotICAgICAgIH0KLX0KLQot
Ci1wdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBJVlJDaGFwZXJvbmVT
ZXR1cCBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKEludFB0ciBw
SW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJDaGFwZXJv
bmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJDaGFw
ZXJvbmVTZXR1cCkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBDb21taXRXb3JraW5n
Q29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZpZ0ZpbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LlJldmVydFdvcmtpbmdDb3B5KCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdv
cmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcFNpemVYID0gMDsKLSAgICAgICAgICAgICAgcFNpemVaID0g
MDsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJl
YVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVjdChy
ZWYgSG1kUXVhZF90IHJlY3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdD
b2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKLSAgICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG51bGws
cmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBIbWRR
dWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0
V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0NvdW50
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVhZHNC
dWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAwOwot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5k
c0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgICAgICAgIHBRdWFkc0J1ZmZl
cj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1
YWRzQ291bnQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29y
a2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoZmxvYXQg
c2l6ZVgsZmxvYXQgc2l6ZVopCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldFdv
cmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVm
ZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9u
Qm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1N0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29uZmlnRmls
ZSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIsKHVpbnQp
IHBUYWdzQnVmZmVyLkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOwotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKG51bGws
cmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBieXRlW3B1
blRhZ0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlz
aW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU2V0V29y
a2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQaHlzaWNh
bEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wg
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7Ci0gICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKG51
bGwscmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBI
bWRRdWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUu
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291bnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
Ym9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwQnVmZmVy
LHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcG5CdWZm
ZXJMZW5ndGggPSAwOwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuRXhwb3J0
TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSW1wb3J0RnJvbUJ1
ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVmZmVyVG9X
b3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKLXsKLSAgICAg
ICBJVlJDb21wb3NpdG9yIEZuVGFibGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9zaXRvcihJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
Q29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
b21wb3NpdG9yKSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNraW5nU3Bh
Y2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0gRm5UYWJs
ZS5HZXRUcmFja2luZ1NwYWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2VzKFRyYWNr
ZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9zZV90IFtd
IHBHYW1lUG9zZUFycmF5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXksKHVpbnQp
IHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2FtZVBvc2VB
cnJheS5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2VkRGV2aWNl
UG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2FtZVBv
c2VBcnJheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVuZGVy
UG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXkuTGVu
Z3RoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBvc2UscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBvc2VGb3JU
cmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVmIHBPdXRw
dXRHYW1lUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJlZiBUZXh0
dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3VibWl0Rmxh
Z3MgblN1Ym1pdEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBwQm91bmRz
LG5TdWJtaXRGbGFncyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5nIHBU
aW1pbmcsdWludCB1bkZyYW1lc0FnbykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fnbyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50
IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVpbnQg
bkZyYW1lcykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRpbWVSZW1h
aW5pbmcoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21wb3Np
dG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBwU3RhdHMs
blN0YXRzU2l6ZUluQnl0ZXMpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGYWRlVG9D
b2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1ZSxm
bG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhhLGJCYWNr
Z3JvdW5kKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3VycmVudEZh
ZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kQ29s
b3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91bmQpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCi0gICAgICAgewotICAgICAg
ICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNv
bXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1cmVzKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVuZ3RoKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckJyaW5nVG9Gcm9udCgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkNv
bXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckdvVG9CYWNrKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9z
aXRvckdvVG9CYWNrKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0b3JR
dWl0KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1aXQoKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0TGFz
dEZyYW1lUmVuZGVyZXIoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBG
blRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJTY2VuZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTaG93TWlycm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUu
U2hvd01pcnJvcldpbmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBIaWRlTWly
cm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1pcnJvcldp
bmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRvd1Zpc2li
bGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzTWly
cm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCi0gICAgICAgewot
ICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFwcFJlbmRl
cldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJv
b2wgYk92ZXJyaWRlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUludGVy
bGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2
b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBl
RXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRl
clJlc291cmNlVmlldykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0QxMURldmlj
ZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNlTWly
cm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCi0gICAgICAg
ewotICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEocEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNvbXBvc2l0
b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGdsVGV4dHVy
ZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1cmVJZCxw
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1aW50IGds
VGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVyZShnbFRl
eHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0dXJlRm9y
QWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0dXJl
SGFuZGxlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFyZWRUZXh0
dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5J
bnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZh
bHVlLHVpbnQgdW5CdWZmZXJTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJbnRQ
dHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWlu
dCB1bkJ1ZmZlclNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERldmljZSxw
Y2hWYWx1ZSx1bkJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQotewotICAgICAgIElWUk92ZXJs
YXkgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50ZXJmYWNl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1hcnNoYWwu
UHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zl
cmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwT3ZlcmxheUhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmlu
ZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVybGF5S2V5
LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3ZlcmxheSh1
bE92ZXJsYXlIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCi0gICAgICAgewotICAgICAgICAgICAgICB1
bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlLZXko
dWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxJ
bnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgscmVmIHVp
bnQgcHVuSGVpZ2h0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHVuV2lkdGggPSAwOwotICAg
ICAgICAgICAgICBwdW5IZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRsZSxwdkJ1
ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldE92
ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCi0gICAgICAgewot
ICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJyb3JOYW1l
RnJvbUVudW0oZXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmlu
Z0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUElEKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsT3Zl
cmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5
SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zl
cmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwYkVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxy
ZWYgcGJFbmFibGVkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zlcmxh
eUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZSZWQscmVm
IGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmUmVkID0gMDsKLSAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7Ci0gICAgICAgICAgICAgIHBm
Qmx1ZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdyZWVuLHJl
ZiBwZkJsdWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsZmxvYXQgZkFscGhhKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxmQWxw
aGEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
cmVmIGZsb2F0IHBmQWxwaGEpCi0gICAgICAgewotICAgICAgICAgICAgICBwZkFscGhhID0gMDsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxBc3BlY3Qp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVjdCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmVGV4ZWxB
c3BlY3QgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVsQXNwZWN0
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSx1aW50IHVuU29ydE9yZGVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlIYW5kbGUs
dW5Tb3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxP
dmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHB1blNvcnRPcmRlciA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5T
b3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0aEluTWV0
ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZldpZHRo
SW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMgPSAwOwot
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1heERpc3Rh
bmNlSW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKHVs
T3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1ldGVycyk7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYg
ZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGZN
aW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKLSAgICAgICAgICAgICAgcGZNYXhEaXN0YW5jZUluTWV0
ZXJzID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUs
cmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlQ29s
b3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBF
Q29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVDb2xvclNw
YWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUlRl
eHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVyZUJv
dW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFu
c2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBw
bWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNraW5n
T3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdp
blRvT3ZlcmxheVRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bE92ZXJs
YXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRvT3Zl
cmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWRE
ZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWREZXZpY2Us
cmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSx1
blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRNYXRy
aXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNl
UmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJh
Y2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQg
dW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUcmFuc2Zv
cm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUluZGV4LHBj
aENvbXBvbmVudE5hbWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2Vk
RGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5EZXZpY2VJ
bmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNpemUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5kZXgscGNo
Q29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTaG93T3Zl
cmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkhpZGVP
dmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFu
c2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJ
bk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2luLGNvb3Jk
aW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVybGF5RXZl
bnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5jYlZS
RXZlbnQpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUG9s
bE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCi0gICAgICAgewotICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW5w
dXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92ZXJsYXlI
YW5kbGUsZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2FsZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2NhbGUodWxP
dmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFy
YW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1bHRz
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVP
dmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYgcFJlc3Vs
dHMpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVyT3Zlcmxh
eUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRhcmdldE92
ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXkoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1lcGFkRm9j
dXNPdmVybGF5KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9uZyB1
bE5ld0ZvY3VzT3ZlcmxheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1c092ZXJs
YXkpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdoYm9yKGVE
aXJlY3Rpb24sdWxGcm9tLHVsVG8pOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNUb05l
aWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOwotICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90IHBUZXh0
dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVyZSk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5D
bGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5XaWR0
aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVybGF5SGFu
ZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmlsZVBhdGgp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEludFB0
ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVmIHVpbnQg
cFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYgRVRleHR1
cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJUZXh0dXJl
Qm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAgICAgICBwV2lkdGgg
PSAwOwotICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKLSAgICAgICAgICAgICAgcE5hdGl2ZUZv
cm1hdCA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1cmVIYW5k
bGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5hdGl2ZUZv
cm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5kcyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVybGF5SGFu
ZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwV2lk
dGgscmVmIHVpbnQgcEhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBXaWR0aCA9IDA7
Ci0gICAgICAgICAgICAgIHBIZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5SGFuZGxl
LHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92
ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUs
cmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOwotICAgICAgICAgICAgICBwVGh1bWJu
YWlsSGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlGcmll
bmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEYXNo
Ym9hcmRWaXNpYmxlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERhc2hib2Fy
ZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blBy
b2Nlc3NJZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hib2FyZE92
ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBT
aG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFzaGJvYXJk
RGV2aWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLGludCBl
TGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3RyaW5n
IHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRpb24sdW5D
aGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsaW50
IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlvbix1aW50
IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxNb2RlLHVs
b25nIHVVc2VyVmFsdWUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSxl
SW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hFeGlz
dGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2FyZFRleHQo
U3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRleHQocGNo
VGV4dCxjY2hUZXh0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEZuVGFibGUuSGlkZUtleWJvYXJkKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNl
dEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNr
aW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRU
cmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJvYXJkVHJh
bnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tl
eWJvYXJkVHJhbnNmb3JtKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0S2V5Ym9h
cmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3QyX3QgYXZv
aWRSZWN0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2FyZFBvc2l0
aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVf
dCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5QcmltaXRp
dmVTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxlLHJlZiBw
TWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQg
cEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcEZsYWdzID0gMDsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdzKHVsT3Zl
cmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2Fn
ZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBjaEJ1dHRv
bjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQsc3RyaW5n
IHBjaEJ1dHRvbjNUZXh0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRleHQscGNo
Q2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4dCxwY2hC
dXR0b24zVGV4dCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotfQot
Ci0KLXB1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBJVlJSZW5kZXJNb2Rl
bHMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRyIHBJbnRl
cmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRlck1vZGVs
cylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5kZXJNb2Rl
bHMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJl
bmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0ciBwcFJl
bmRlck1vZGVsKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2RlbE5hbWUs
cmVmIHBwUmVuZGVyTW9kZWwpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJNb2Rl
bCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVsKHBSZW5k
ZXJNb2RlbCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExv
YWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZuVGFibGUu
TG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVy
ZShJbnRQdHIgcFRleHR1cmUpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkZyZWVU
ZXh0dXJlKHBUZXh0dXJlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVs
RXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRDNEMTFE
ZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlRDNEMTFf
QXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5k
ZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsSW50
UHRyIHBEc3RUZXh0dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxF
cnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1cmVJ
ZCxwRHN0VGV4dHVyZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1cmUy
RCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0QxMShwRDNE
MTFUZXh0dXJlMkQpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2Rl
bE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBw
Y2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5hbWUodW5S
ZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFtZUxlbik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1
aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50Q291
bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2RlbE5hbWUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1bkNv
bXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSx1
aW50IHVuQ29tcG9uZW50TmFtZUxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1bkNvbXBv
bmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldENv
bXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29t
cG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFi
bGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50
TmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1
YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVyTW9k
ZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5h
bWVMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnRO
YW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFt
ZUxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBp
cyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxl
clN0YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBw
YWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgcENv
bnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3Rh
dGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAg
ICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBH
ZXRDb21wb25lbnRTdGF0ZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZz
ZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENvbXBvbmVu
dFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBHZXRDb21w
b25lbnRTdGF0ZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0Q29tcG9u
ZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFt
ZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5kZXJNb2Rl
bF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5
c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQu
TWFjT1NYKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1l
bnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVuaW9uIHU7
Ci0gICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBzdGF0ZV9w
YWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRTdGF0ZTsK
LSAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENvbXBvbmVu
dFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBzdGF0
ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLQotICAgICAgICAgICAg
ICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3RhdGUocGNo
UmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3RhdGUscmVm
IHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21wb25lbnQo
c3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2RlbEhhc0Nv
bXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldFJlbmRl
ck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExlbixyZWYg
RVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJlbmRlck1v
ZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJyb3IpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWlu
dCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5PcmlnaW5hbFBh
dGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChw
Y2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVuLHJlZiBw
ZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRlck1v
ZGVsRXJyb3IgZXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQot
fQotCi0KLXB1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCi17Ci0gICAgICAgSVZSTm90aWZp
Y2F0aW9ucyBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMoSW50UHRy
IHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUk5vdGlm
aWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSTm90
aWZpY2F0aW9ucykpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0aW9uRXJy
b3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1bFVzZXJW
YWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90aWZpY2F0
aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYgdWludCBw
Tm90aWZpY2F0aW9uSWQpCi0gICAgICAgewotICAgICAgICAgICAgICBwTm90aWZpY2F0aW9uSWQg
PSAwOwotICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxl
LkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlwZSxwY2hU
ZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJOb3RpZmljYXRpb25F
cnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVtb3Zl
Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUlNldHRpbmdzCi17Ci0gICAgICAg
SVZSU2V0dGluZ3MgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2V0dGlu
Z3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0dGluZ3Mp
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9yTmFtZUZy
b21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
SW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShlRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxyZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChzdHJpbmcg
cGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0Qm9v
bChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBw
Y2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCi0g
ICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24scGNoU2V0
dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGZsb2F0
IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxmbFZhbHVl
LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0U3RyaW5nKHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFsdWUscmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFi
bGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVmIHBlRXJy
b3IpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBwY2hTZWN0
aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2wocGNo
U2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3RyaW5nIHBj
aFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJbnQz
MihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGZsb2F0IEdldEZsb2F0KHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJv
ciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0
U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5HZXRTdHJpbmco
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBwZUVycm9y
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJpbmcgcGNo
U2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3IpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBjaFNl
Y3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlvbihwY2hT
ZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci19Ci0KLQotcHVi
bGljIGNsYXNzIENWUlNjcmVlbnNob3RzCi17Ci0gICAgICAgSVZSU2NyZWVuc2hvdHMgRm5UYWJs
ZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFjZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFyc2hhbC5Q
dHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hvdChy
ZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0cmlu
ZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUlNj
cmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJlZiBwT3V0
U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
UlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBbXSBwU3Vw
cG9ydGVkVHlwZXMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGludCkgcFN1
cHBvcnRlZFR5cGVzLkxlbmd0aCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90UHJvcGVy
dHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJv
cikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3VsdCA9IEZu
VGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJlZiBwRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNob3RIYW5k
bGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVWUlNjcmVl
bnNob3RFcnJvciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9
IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhhbmRsZSxm
aWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5z
aG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxm
bG9hdCBmbFByb2dyZXNzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVlbnNob3RI
YW5kbGUsZmxQcm9ncmVzcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNob3Qo
cmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFtZSxz
dHJpbmcgcGNoVlJGaWxlbmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBPdXRTY3JlZW5z
aG90SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9
IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFuZGxlLHBj
aFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBTdWJtaXRT
Y3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0
cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5hbWUp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3VyY2VQcmV2
aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMKLXsKLSAg
ICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZXNvdXJjZXMo
SW50UHRyIHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJS
ZXNvdXJjZXMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJlZFJlc291
cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVuQnVmZmVy
TGVuKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkxvYWRT
aGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVuKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQg
R2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hSZXNv
dXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZlckxlbikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZXNvdXJj
ZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkscGNoUGF0
aEJ1ZmZlcix1bkJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCi17Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdEludGVybmFs
IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAg
aW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICBb
RGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9TaHV0ZG93
bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCld
Ci0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJW
Ul9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNk
ZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVzZW50KCk7
Ci0gICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAi
VlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzUnVudGlt
ZUluc3RhbGxlZCgpOwotICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBF
bnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsKLSAgICAg
ICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5D
ZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2VuZXJpY0lu
dGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5nIHBjaElu
dGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNkZWNs
KV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9u
VmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBwY2hJbnRl
cmZhY2VWZXJzaW9uKTsKLSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwg
RW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxp
bmdDb252ZW50aW9uLkNkZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIHVpbnQg
R2V0SW5pdFRva2VuKCk7Ci19Ci0KLQotcHVibGljIGVudW0gRVZSRXllCi17Ci0gICAgICAgRXll
X0xlZnQgPSAwLAotICAgICAgIEV5ZV9SaWdodCA9IDEsCi19Ci1wdWJsaWMgZW51bSBFVGV4dHVy
ZVR5cGUKLXsKLSAgICAgICBEaXJlY3RYID0gMCwKLSAgICAgICBPcGVuR0wgPSAxLAotICAgICAg
IFZ1bGthbiA9IDIsCi0gICAgICAgSU9TdXJmYWNlID0gMywKLSAgICAgICBEaXJlY3RYMTIgPSA0
LAotfQotcHVibGljIGVudW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBBdXRvID0gMCwKLSAgICAg
ICBHYW1tYSA9IDEsCi0gICAgICAgTGluZWFyID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2lu
Z1Jlc3VsdAotewotICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAotICAgICAgIENhbGlicmF0aW5n
X0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEwMSwK
LSAgICAgICBSdW5uaW5nX09LID0gMjAwLAotICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5nZSA9IDIw
MSwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKLXsKLSAgICAgICBJbnZhbGlk
ID0gMCwKLSAgICAgICBITUQgPSAxLAotICAgICAgIENvbnRyb2xsZXIgPSAyLAotICAgICAgIEdl
bmVyaWNUcmFja2VyID0gMywKLSAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCi19Ci1wdWJs
aWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCi17Ci0gICAgICAgSW52YWxpZCA9IDAsCi0g
ICAgICAgTGVmdEhhbmQgPSAxLAotICAgICAgIFJpZ2h0SGFuZCA9IDIsCi19Ci1wdWJsaWMgZW51
bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgotewotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTZWF0
ZWQgPSAwLAotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCi0gICAgICAgVHJh
Y2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFVHJh
Y2tlZERldmljZVByb3BlcnR5Ci17Ci0gICAgICAgUHJvcF9JbnZhbGlkID0gMCwKLSAgICAgICBQ
cm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAotICAgICAgIFByb3BfTW9kZWxO
dW1iZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAx
MDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCi0gICAgICAg
UHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nID0gMTAwNSwKLSAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9u
X1N0cmluZyA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyA9IDEw
MDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAx
MDA4LAotICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0gMTAwOSwK
LSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgUHJvcF9E
ZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAotICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBl
cmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAotICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9y
bV9NYXRyaXgzNCA9IDEwMTMsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVf
Qm9vbCA9IDEwMTQsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEw
MTUsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKLSAgICAgICBQcm9w
X0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAotICAgICAgIFByb3BfRlBHQVZlcnNpb25f
VWludDY0ID0gMTAxOSwKLSAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKLSAg
ICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xl
VmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9C
b29sID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCA9IDEwMjQsCi0gICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0g
MTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAy
NiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAotICAgICAgIFBy
b3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBQcm9w
X0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKLSAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29sID0g
MTAzMCwKLSAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAgICBQ
cm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCi0gICAgICAgUHJv
cF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCi0gICAgICAgUHJvcF9Q
YXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VW
U3luY19Cb29sID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNf
RmxvYXQgPSAyMDAxLAotICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIs
Ci0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKLSAgICAgICBQcm9wX0N1
cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCi0gICAgICAgUHJvcF9QcmV2aW91c1VuaXZl
cnNlSWRfVWludDY0ID0gMjAwNSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25f
VWludDY0ID0gMjAwNiwKLSAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAotICAg
ICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQg
PSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAgICAgICBQ
cm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAotICAgICAgIFByb3BfRGlzcGxh
eU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tD
bGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAx
NSwKLSAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKLSAgICAgICBQcm9wX0Rpc3Bs
YXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9h
dCA9IDIwMTksCi0gICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAotICAgICAgIFByb3BfTGVu
c0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9G
bG9hdCA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAyNCwK
LSAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAotICAgICAgIFByb3Bf
VXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdh
cmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAotICAgICAgIFByb3BfRGlzcGxheUZQR0FWZXJz
aW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25f
VWludDY0ID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0
ID0gMjAzMSwKLSAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIs
Ci0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCi0gICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIwMzYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlN
Q0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVt
Q2hhbm5lbHNfSW50MzIgPSAyMDQwLAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0Jp
bmFyeSA9IDIwNDEsCi0gICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0
MiwKLSAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKLSAgICAgICBQ
cm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlw
ZV9JbnQzMiA9IDMwMDIsCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAotICAg
ICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKLSAgICAgICBQcm9wX0F4aXMzVHlwZV9J
bnQzMiA9IDMwMDUsCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAotICAgICAg
IFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBQcm9wX0ZpZWxk
T2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdS
aWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdy
ZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19G
bG9hdCA9IDQwMDMsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9h
dCA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCA9
IDQwMDUsCi0gICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKLSAgICAgICBQcm9w
X0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ19TdHJpbmcgPSA1MDAyLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
Tm90UmVhZHlfU3RyaW5nID0gNTAwNiwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyA9IDUwMDcsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxl
cnRMb3dfU3RyaW5nID0gNTAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9TdGFydCA9IDUxMDAsCi0gICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5k
ID0gNTE1MCwKLSAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCi0gICAg
ICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAotICAgICAgIFByb3BfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCA9IDEwOTk5LAotfQotcHVibGljIGVudW0gRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCi0gICAgICAgVHJhY2tlZFBy
b3BfV3JvbmdEYXRhVHlwZSA9IDEsCi0gICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFz
cyA9IDIsCi0gICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCi0gICAgICAgVHJhY2tlZFByb3BfSW52YWxp
ZERldmljZSA9IDUsCi0gICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0g
NiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAotICAg
ICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKLSAgICAgICBU
cmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIFRyYWNrZWRQcm9wX1Blcm1p
c3Npb25EZW5pZWQgPSAxMCwKLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0g
MTEsCi19Ci1wdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncwotewotICAgICAgIFN1Ym1pdF9EZWZh
dWx0ID0gMCwKLSAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDEs
Ci0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKLSAgICAgICBTdWJtaXRfUmVzZXJ2
ZWQgPSA0LAotfQotcHVibGljIGVudW0gRVZSU3RhdGUKLXsKLSAgICAgICBVbmRlZmluZWQgPSAt
MSwKLSAgICAgICBPZmYgPSAwLAotICAgICAgIFNlYXJjaGluZyA9IDEsCi0gICAgICAgU2VhcmNo
aW5nX0FsZXJ0ID0gMiwKLSAgICAgICBSZWFkeSA9IDMsCi0gICAgICAgUmVhZHlfQWxlcnQgPSA0
LAotICAgICAgIE5vdFJlYWR5ID0gNSwKLSAgICAgICBTdGFuZGJ5ID0gNiwKLSAgICAgICBSZWFk
eV9BbGVydF9Mb3cgPSA3LAotfQotcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAg
VlJFdmVudF9Ob25lID0gMCwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
PSAxMDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAxMDEsCi0g
ICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKLSAgICAgICBWUkV2ZW50
X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIFZSRXZl
bnRfSXBkQ2hhbmdlZCA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgPSAx
MDYsCi0gICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAotICAgICAgIFZSRXZlbnRfV2F0Y2hk
b2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCi0gICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNo
YW5nZWQgPSAxMTAsCi0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCi0gICAg
ICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKLSAgICAgICBWUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKLSAgICAgICBWUkV2
ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCi0gICAgICAgVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAs
Ci0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCi0gICAgICAgVlJFdmVudF9N
b3VzZUJ1dHRvblVwID0gMzAyLAotICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMwMywKLSAg
ICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCi0gICAgICAgVlJFdmVudF9TY3JvbGwgPSAz
MDUsCi0gICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1
cmVkID0gNDAwLAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAg
ICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCi0gICAgICAgVlJFdmVudF9TY2VuZUZv
Y3VzR2FpbmVkID0gNDAzLAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQg
PSA0MDQsCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKLSAgICAgICBW
UkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgVlJFdmVudF9I
aWRlUmVuZGVyTW9kZWxzID0gNDEwLAotICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9
IDQxMSwKLSAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBWUkV2ZW50
X092ZXJsYXlIaWRkZW4gPSA1MDEsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQg
PSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAg
ICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCi0gICAgICAgVlJFdmVudF9E
YXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCi0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCA9
IDUwNiwKLSAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAotICAgICAgIFZSRXZlbnRf
SW1hZ2VMb2FkZWQgPSA1MDgsCi0gICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0g
ICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5
R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRG
b2N1c0xvc3QgPSA1MTIsCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5n
ZWQgPSA1MTMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQs
Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAotICAgICAgIFZS
RXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKLSAgICAgICBWUkV2ZW50X0ltYWdlRmFp
bGVkID0gNTE3LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgs
Ci0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKLSAgICAgICBWUkV2ZW50
X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQg
PSA1MjIsCi0gICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1MjMs
Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKLSAg
ICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAotICAgICAg
IFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAotICAgICAgIFZSRXZlbnRfTm90aWZp
Y2F0aW9uX0hpZGRlbiA9IDYwMSwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbklu
dGVyYWN0aW9uID0gNjAyLAotICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCA9
IDYwMywKLSAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCi0gICAgICAgVlJFdmVudF9Qcm9jZXNz
UXVpdCA9IDcwMSwKLSAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3MDIs
Ci0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAotICAgICAgIFZSRXZlbnRf
RHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFI
YXNDaGFuZ2VkID0gODAwLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgwMywK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgVlJFdmVudF9CYWNrZ3Jv
dW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCi0gICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5n
c0hhdmVDaGFuZ2VkID0gODUxLAotICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hh
c0NoYW5nZWQgPSA4NTIsCi0gICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODUzLAotICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2Vk
ID0gODU0LAotICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1LAot
ICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAotICAgICAgIFZSRXZlbnRfTUNJbWFn
ZVVwZGF0ZWQgPSAxMDAwLAotICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0g
MTEwMCwKLSAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAotICAg
ICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9h
cmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwK
LSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAotICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKLSAgICAg
ICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRp
b25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAotICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCi0gICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0
b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9S
ZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0Vk
aXRpbmdTdXJmYWNlID0gMTU1MCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFi
bGVDYXB0dXJlID0gMTYwMCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxl
Q2FwdHVyZSA9IDE2MDEsCi0gICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlM
ZXZlbCA9IDE2MDIsCi0gICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUw
LAotICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwK
LSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAotfQot
cHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lk
bGUgPSAwLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0g
MSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1lb3V0
ID0gMiwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfQotcHVi
bGljIGVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtID0gMCwKLSAg
ICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKLSAgICAgICBrX0VCdXR0b25fR3Jp
cCA9IDIsCi0gICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCi0gICAgICAga19FQnV0dG9u
X0RQYWRfVXAgPSA0LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKLSAgICAgICBr
X0VCdXR0b25fRFBhZF9Eb3duID0gNiwKLSAgICAgICBrX0VCdXR0b25fQSA9IDcsCi0gICAgICAg
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCA9
IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlz
MiA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9B
eGlzNCA9IDM2LAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIsCi0gICAg
ICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayA9IDIsCi0gICAgICAga19FQnV0dG9uX01heCA9IDY0LAotfQotcHVibGljIGVu
dW0gRVZSTW91c2VCdXR0b24KLXsKLSAgICAgICBMZWZ0ID0gMSwKLSAgICAgICBSaWdodCA9IDIs
Ci0gICAgICAgTWlkZGxlID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUK
LXsKLSAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlk
ZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19Ci1wdWJsaWMgZW51
bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLXsKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25l
ID0gMCwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCi0gICAgICAga19l
Q29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1Ry
aWdnZXIgPSAzLAotfQotcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0KLXB1YmxpYyBlbnVtIEVDb2xsaXNp
b25Cb3VuZHNTdHlsZQotewotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIg
PSAwLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwKLSAg
ICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAotICAgICAgIENPTExJU0lP
Tl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZ
TEVfTk9ORSA9IDQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19
Ci1wdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAg
ICBVbmtub3duT3ZlcmxheSA9IDEwLAotICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwKLSAgICAg
ICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgT3ZlcmxheUxpbWl0RXhjZWVkZWQgPSAx
MywKLSAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCi0gICAgICAgS2V5VG9vTG9uZyA9
IDE1LAotICAgICAgIE5hbWVUb29Mb25nID0gMTYsCi0gICAgICAgS2V5SW5Vc2UgPSAxNywKLSAg
ICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKLSAgICAgICBJbnZhbGlkVHJhY2tlZERldmlj
ZSA9IDE5LAotICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKLSAgICAgICBUaHVtYm5haWxD
YW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDIzLAotICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAg
VW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAotICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNlID0gMjYs
Ci0gICAgICAgTm9OZWlnaGJvciA9IDI3LAotICAgICAgIFRvb01hbnlNYXNrUHJpbWl0aXZlcyA9
IDI5LAotICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkFw
cGxpY2F0aW9uVHlwZQotewotICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAotICAgICAg
IFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAotICAgICAgIFZSQXBwbGljYXRpb25fT3ZlcmxheSA9
IDIsCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKLSAgICAgICBWUkFwcGxp
Y2F0aW9uX1V0aWxpdHkgPSA0LAotICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAotICAgICAgIFZSQXBwbGlj
YXRpb25fTWF4ID0gNywKLX0KLXB1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKLXsKLSAgICAg
ICBOb25lID0gMCwKLSAgICAgICBTdWNjZXNzID0gMSwKLSAgICAgICBGYWlsID0gMiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCi17Ci0gICAgICAgT0sgPSAwLAotICAgICAg
IEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAgICBOb3RpZmljYXRpb25RdWV1ZUZ1
bGwgPSAxMDEsCi0gICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgU3lz
dGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCi19Ci1wdWJsaWMgZW51bSBFVlJJ
bml0RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBVbmtub3duID0gMSwKLSAgICAg
ICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAotICAgICAgIEluaXRfSW5zdGFsbGF0
aW9uQ29ycnVwdCA9IDEwMSwKLSAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgPSAxMDIs
Ci0gICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCi0gICAgICAgSW5pdF9GYWN0b3J5Tm90
Rm91bmQgPSAxMDQsCi0gICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAg
ICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCi0gICAgICAgSW5pdF9Vc2VyQ29uZmlnRGly
ZWN0b3J5SW52YWxpZCA9IDEwNywKLSAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAg
ICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCi0gICAgICAgSW5pdF9QYXRoUmVnaXN0cnlO
b3RGb3VuZCA9IDExMCwKLSAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKLSAgICAgICBJ
bml0X05vTG9nUGF0aCA9IDExMiwKLSAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxl
ID0gMTEzLAotICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgSW5p
dF9SZXRyeSA9IDExNSwKLSAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwKLSAg
ICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgSW5pdF9TZXR0aW5n
c0luaXRGYWlsZWQgPSAxMTgsCi0gICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCi0gICAg
ICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBJbml0X05vU2VydmVyRm9yQmFj
a2dyb3VuZEFwcCA9IDEyMSwKLSAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9y
ID0gMTIyLAotICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAg
ICAgICBJbml0X0ludGVybmFsID0gMTI0LAotICAgICAgIEluaXRfSG1kRHJpdmVySWRJc05vbmUg
PSAxMjUsCi0gICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAg
ICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCi0gICAgICAgSW5pdF9WUk1vbml0b3JT
dGFydHVwRmFpbGVkID0gMTI4LAotICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBv
cnRlZCA9IDEyOSwKLSAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCi0g
ICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKLSAgICAgICBJbml0
X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAotICAgICAgIEluaXRfVlJEYXNoYm9h
cmROb3RGb3VuZCA9IDEzMywKLSAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCA9
IDEzNCwKLSAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIERyaXZlcl9Vbmtub3du
ID0gMjAxLAotICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAotICAgICAgIERyaXZlcl9O
b3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCi0g
ICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAotICAgICAgIERyaXZlcl9Ob3RDYWxpYnJhdGVk
ID0gMjA2LAotICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCi0gICAgICAg
RHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKLSAgICAgICBEcml2ZXJfVHJhY2tlZERl
dmljZUludGVyZmFjZVVua25vd24gPSAyMDksCi0gICAgICAgRHJpdmVyX0htZERyaXZlcklkT3V0
T2ZCb3VuZHMgPSAyMTEsCi0gICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwK
LSAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBJUENfQ29ubmVjdEZh
aWxlZCA9IDMwMSwKLSAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAotICAg
ICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKLSAgICAgICBJUENfTXV0ZXhJbml0
RmFpbGVkID0gMzA0LAotICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCi0gICAgICAgSVBDX0NvbXBv
c2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAotICAgICAgIElQQ19Db21wb3NpdG9ySW52YWxpZENv
bm5lY3RSZXNwb25zZSA9IDMwNywKLSAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlw
bGVBdHRlbXB0cyA9IDMwOCwKLSAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKLSAgICAgICBDb21wb3Np
dG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCi0gICAgICAgQ29tcG9zaXRvcl9PdmVy
bGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZh
aWxlZCA9IDQwNCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1
c1J1bnRpbWUgPSAxMDAwLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVu
RGV2aWNlID0gMTEwMSwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1Jl
cXVlc3RDb25maWdTdGFydCA9IDExMDIsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Tm9TdG9yZWRDb25maWcgPSAxMTAzLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyA9IDExMDQsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vU21hbGwgPSAxMTA1LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
SW5pdFpMaWIgPSAxMTA2LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFk
RmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAotICAgICAgIFZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBW
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCi0gICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCi0gICAgICAg
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAot
ICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAotfQotcHVibGlj
IGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBNb25v
ID0gMSwKLSAgICAgICBTdGVyZW8gPSAyLAotICAgICAgIEN1YmVtYXAgPSAzLAotICAgICAgIE1v
bm9QYW5vcmFtYSA9IDQsCi0gICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAotfQotcHVibGljIGVu
dW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCi17Ci0gICAgICAgUHJldmlldyA9IDAs
Ci0gICAgICAgVlIgPSAxLAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17
Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAotICAgICAg
IEludmFsaWRIYW5kbGUgPSAxMDEsCi0gICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9
IDEwMiwKLSAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCi0gICAgICAgSVBDRmFpbHVyZSA9IDEw
NCwKLSAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIFNoYXJl
ZE1lbW9yeUZhaWx1cmUgPSAxMDYsCi0gICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJlID0gMTA3
LAotICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBJbnZhbGlkR0xUZXh0
dXJlSWQgPSAxMDksCi0gICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCi0g
ICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAgICBTaGFyZWRUZXh0dXJl
RmFpbHVyZSA9IDExMiwKLSAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAotICAgICAgIElu
dmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXplID0gMTE1
LAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIERp
c3RvcnRlZCA9IDAsCi0gICAgICAgVW5kaXN0b3J0ZWQgPSAxLAotICAgICAgIE1heGltdW1VbmRp
c3RvcnRlZCA9IDIsCi0gICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCi19Ci1wdWJs
aWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
QXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKLSAgICAgICBOb01hbmlmZXN0ID0gMTAxLAotICAg
ICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCi0gICAgICAgSW52YWxpZEluZGV4ID0gMTAzLAotICAg
ICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKLSAgICAgICBJUENGYWlsZWQgPSAxMDUsCi0g
ICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKLSAgICAgICBJbnZhbGlkTWFu
aWZlc3QgPSAxMDcsCi0gICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAgICAgIExh
dW5jaEZhaWxlZCA9IDEwOSwKLSAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDEx
MCwKLSAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAotICAgICAgIE9sZEFwcGxpY2F0aW9u
UXVpdHRpbmcgPSAxMTIsCi0gICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCi0gICAgICAg
SXNUZW1wbGF0ZSA9IDExNCwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKLSAgICAgICBQ
cm9wZXJ0eU5vdFNldCA9IDIwMSwKLSAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIsCi0gICAg
ICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKLX0KLXB1YmxpYyBlbnVtIEVWUkFwcGxpY2F0aW9u
UHJvcGVydHkKLXsKLSAgICAgICBOYW1lX1N0cmluZyA9IDAsCi0gICAgICAgTGF1bmNoVHlwZV9T
dHJpbmcgPSAxMSwKLSAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAotICAgICAg
IEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCi0gICAgICAgQXJndW1lbnRzX1N0cmluZyA9IDE0LAot
ICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKLSAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwK
LSAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAotICAgICAgIEltYWdlUGF0aF9TdHJpbmcgPSA1
MiwKLSAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCi0gICAgICAgSXNEYXNoYm9hcmRPdmVybGF5
X0Jvb2wgPSA2MCwKLSAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKLSAgICAgICBJc0luc3Rh
bmNlZF9Cb29sID0gNjIsCi0gICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCi0gICAgICAgTGFz
dExhdW5jaFRpbWVfVWludDY0ID0gNzAsCi19Ci1wdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25TdGF0ZQotewotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAw
LAotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCi0g
ICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0g
MTEsCi0gICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwK
LX0KLXB1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBPSyA9
IDEsCi0gICAgICAgV2FybmluZyA9IDEwMCwKLSAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9uTWF5
SGF2ZU1vdmVkID0gMTAxLAotICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0gMTAy
LAotICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKLSAgICAgICBFcnJv
ciA9IDIwMCwKLSAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCi0g
ICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKLSAgICAgICBFcnJvcl9QbGF5
QXJlYUludmFsaWQgPSAyMDMsCi0gICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9
IDIwNCwKLX0KLXB1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCi17Ci0gICAgICAgTGl2
ZSA9IDEsCi0gICAgICAgVGVtcCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFQ2hhcGVyb25lSW1wb3J0
RmxhZ3MKLXsKLSAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAotfQotcHVi
bGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAg
ICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKLSAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDEwMiwK
LSAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCi0gICAgICAgVGV4dHVyZUlzT25X
cm9uZ0RldmljZSA9IDEwNCwKLSAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0g
MTA1LAotICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAotICAgICAgIElu
ZGV4T3V0T2ZSYW5nZSA9IDEwNywKLSAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4LAotfQot
cHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKLXsKLSAgICAgICBOb25lID0gMCwKLSAg
ICAgICBNb3VzZSA9IDEsCi19Ci1wdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlCi17
Ci0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKLSAgICAgICBWUk92ZXJs
YXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBWUk92ZXJsYXlU
cmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1Ry
YWNrZWRDb21wb25lbnQgPSAzLAotfQotcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MKLXsKLSAg
ICAgICBOb25lID0gMCwKLSAgICAgICBDdXJ2ZWQgPSAxLAotICAgICAgIFJHU1M0WCA9IDIsCi0g
ICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAotICAgICAgIEFjY2VwdHNHYW1lcGFkRXZlbnRzID0g
NCwKLSAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKLSAgICAgICBTZW5kVlJTY3JvbGxFdmVu
dHMgPSA2LAotICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKLSAgICAgICBTaG93VG91
Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCi0gICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0ludGVybmFs
UHJvY2VzcyA9IDksCi0gICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAotICAgICAgIFNp
ZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAotICAgICAgIFBhbm9yYW1hID0gMTIsCi0gICAgICAgU3Rl
cmVvUGFub3JhbWEgPSAxMywKLSAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwK
LSAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKLX0KLXB1YmxpYyBlbnVtIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZQotewotICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAotICAgICAgIEJ1
dHRvblByZXNzXzEgPSAxLAotICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAotICAgICAgIEJ1dHRv
blByZXNzXzMgPSAzLAotICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQsCi0gICAg
ICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAotICAgICAgIEFwcGxpY2F0
aW9uUXVpdCA9IDYsCi19Ci1wdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKLXsKLSAg
ICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAga19FR2FtZXBh
ZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCi0gICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1v
ZGVTdWJtaXQgPSAyLAotfQotcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQot
ewotICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAg
ICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAotfQotcHVi
bGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KLXsKLSAgICAgICBVcCA9IDAsCi0gICAgICAgRG93
biA9IDEsCi0gICAgICAgTGVmdCA9IDIsCi0gICAgICAgUmlnaHQgPSAzLAotICAgICAgIENvdW50
ID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
VHlwZQotewotICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rhbmds
ZSA9IDAsCi0gICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0g
MSwKLX0KLXB1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBOb25lID0g
MCwKLSAgICAgICBMb2FkaW5nID0gMTAwLAotICAgICAgIE5vdFN1cHBvcnRlZCA9IDIwMCwKLSAg
ICAgICBJbnZhbGlkQXJnID0gMzAwLAotICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwKLSAgICAg
ICBOb1NoYXBlcyA9IDMwMiwKLSAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKLSAgICAgICBU
b29NYW55VmVydGljZXMgPSAzMDQsCi0gICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAg
ICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKLSAgICAgICBOb3RFbm91Z2hOb3JtYWxzID0gMzA3
LAotICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLSAgICAgICBJbnZhbGlkVGV4dHVy
ZSA9IDQwMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAg
SXNTdGF0aWMgPSAxLAotICAgICAgIElzVmlzaWJsZSA9IDIsCi0gICAgICAgSXNUb3VjaGVkID0g
NCwKLSAgICAgICBJc1ByZXNzZWQgPSA4LAotICAgICAgIElzU2Nyb2xsZWQgPSAxNiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICBUcmFuc2llbnQgPSAwLAot
ICAgICAgIFBlcnNpc3RlbnQgPSAxLAotICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZh
bHVlID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCi17Ci0gICAgICAg
Tm9uZSA9IDAsCi0gICAgICAgQXBwbGljYXRpb24gPSAxMDAsCi0gICAgICAgQ29udGFjdF9EaXNh
YmxlZCA9IDIwMCwKLSAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCi0gICAgICAgQ29udGFj
dF9BY3RpdmUgPSAyMDIsCi19Ci1wdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi17Ci0gICAg
ICAgTm9uZSA9IDAsCi0gICAgICAgSVBDRmFpbGVkID0gMSwKLSAgICAgICBXcml0ZUZhaWxlZCA9
IDIsCi0gICAgICAgUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgSnNvblBhcnNlRmFpbGVkID0gNCwK
LSAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAotfQotcHVibGljIGVudW0gRVZS
U2NyZWVuc2hvdEVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgUmVxdWVzdEZhaWxl
ZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBOb3RGb3Vu
ZCA9IDEwMSwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKLSAgICAgICBTY3JlZW5zaG90
QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5F
eHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092ZXJsYXlf
dCBvdmVybGF5OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU3RhdHVz
X3Qgc3RhdHVzOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfSXBkX3Qg
aXBkOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVyb25lX3Qg
Y2hhcGVyb25lOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUGVyZm9y
bWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVi
bGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOwotICAgICAgIFtGaWVsZE9m
ZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Q
b3NlUmVzZXQ7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JlZW5z
aG90X3Qgc2NyZWVuc2hvdDsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRpb25M
YXVuY2g7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0aW5nQ2Ft
ZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJs
aWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OwotICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8gVGhpcyBo
YXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZwotfQotCi0KLVtTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1Ymxp
YyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7Ci0gICAgICAgW0ZpZWxk
T2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOwotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0XQotICAg
ICAgIHB1YmxpYyBmbG9hdCBtMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTI7Ci0gICAgICAgcHVi
bGljIGZsb2F0IG0zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKLSAgICAgICBwdWJsaWMgZmxv
YXQgbTU7Ci0gICAgICAgcHVibGljIGZsb2F0IG02OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNzsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbTg7Ci0gICAgICAgcHVibGljIGZsb2F0IG05OwotICAgICAg
IHB1YmxpYyBmbG9hdCBtMTA7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMTsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRyaXg0NF90
Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCi0gICAgICAgcHVibGlj
IGZsb2F0IG0xOwotICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bTM7Ci0gICAgICAgcHVibGljIGZsb2F0IG00OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNTsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbTY7Ci0gICAgICAgcHVibGljIGZsb2F0IG03OwotICAgICAgIHB1
YmxpYyBmbG9hdCBtODsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTk7Ci0gICAgICAgcHVibGljIGZs
b2F0IG0xMDsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTExOwotICAgICAgIHB1YmxpYyBmbG9hdCBt
MTI7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMzsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTE0Owot
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Ci17Ci0gICAgICAgcHVibGljIGZs
b2F0IHYwOyAvL2Zsb2F0WzNdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotICAgICAgIHB1Ymxp
YyBmbG9hdCB2MjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgdjA7IC8vZmxv
YXRbNF0KLSAgICAgICBwdWJsaWMgZmxvYXQgdjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHYyOwot
ICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Ci17Ci0gICAgICAgcHVibGljIGRv
dWJsZSB2MDsgLy9kb3VibGVbM10KLSAgICAgICBwdWJsaWMgZG91YmxlIHYxOwotICAgICAgIHB1
YmxpYyBkb3VibGUgdjI7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHYwOyAv
L2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAg
ICAgIHB1YmxpYyBkb3VibGUgdzsKLSAgICAgICBwdWJsaWMgZG91YmxlIHg7Ci0gICAgICAgcHVi
bGljIGRvdWJsZSB5OwotICAgICAgIHB1YmxpYyBkb3VibGUgejsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAg
ICAgcHVibGljIGZsb2F0IHI7Ci0gICAgICAgcHVibGljIGZsb2F0IGc7Ci0gICAgICAgcHVibGlj
IGZsb2F0IGI7Ci0gICAgICAgcHVibGljIGZsb2F0IGE7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Ci17Ci0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCi0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2
Q29ybmVyczI7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUmVjdDJf
dAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgcHVibGlj
IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0
IHJmUmVkMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0KLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTA7IC8v
ZmxvYXRbMl0KLSAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAg
ICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCi0gICAgICAgcHVibGljIEVUZXh0dXJl
VHlwZSBlVHlwZTsKLSAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVHJhY2tl
ZERldmljZVBvc2VfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmc7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7Ci0g
ICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYkRldmlj
ZUlzQ29ubmVjdGVkOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHVN
aW47Ci0gICAgICAgcHVibGljIGZsb2F0IHZNaW47Ci0gICAgICAgcHVibGljIGZsb2F0IHVNYXg7
Ci0gICAgICAgcHVibGljIGZsb2F0IHZNYXg7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAg
ICAgcHVibGljIHVsb25nIG1fbkltYWdlOwotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wRGV2aWNl
OyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BQaHlzaWNh
bERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAgICAgcHVibGlj
IEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCi0gICAgICAgcHVibGljIHVp
bnQgbV9uUXVldWVGYW1pbHlJbmRleDsKLSAgICAgICBwdWJsaWMgdWludCBtX25XaWR0aDsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uRm9ybWF0
OwotICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAot
ewotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNv
dXJjZSAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWUgKgotICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNrOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ29udHJvbGxlcl90Ci17Ci0gICAgICAgcHVibGljIHVpbnQgYnV0dG9uOwotfQotW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfTW91
c2VfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCB4OwotICAgICAgIHB1YmxpYyBmbG9hdCB5Owot
ICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0gICAgICAgcHVi
bGljIGZsb2F0IHhkZWx0YTsKLSAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOwotICAgICAgIHB1
YmxpYyB1aW50IHJlcGVhdENvdW50OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKLXsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJGaW5nZXJE
b3duOwotICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotICAgICAgIHB1
YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlGaXJz
dDsKLSAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBwdWJsaWMgZmxvYXQg
ZlZhbHVlWVJhdzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgcHVibGljIHVsb25n
IHVsVXNlclZhbHVlOwotICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOwotfQotW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
UHJvY2Vzc190Ci17Ci0gICAgICAgcHVibGljIHVpbnQgcGlkOwotICAgICAgIHB1YmxpYyB1aW50
IG9sZFBpZDsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1
YmxpYyBib29sIGJGb3JjZWQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKLXsKLSAgICAgICBwdWJsaWMgdWxv
bmcgb3ZlcmxheUhhbmRsZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgcHVibGljIHVpbnQg
c3RhdHVzU3RhdGU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgcHVibGljIGJ5dGUgY05l
d0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0LGNOZXdJ
bnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OwotICAgICAgIHB1YmxpYyB1bG9uZyB1VXNlclZh
bHVlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IFZSRXZlbnRfSXBkX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJzOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNVbml2ZXJz
ZTsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUmVzZXJ2
ZWRfdAotewotICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7Ci0gICAgICAgcHVibGljIHVs
b25nIHJlc2VydmVkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wg
YlJlc2V0QnlTeXN0ZW1NZW51OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgaGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Ci19Ci1bU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBwaWQ7Ci0gICAgICAgcHVibGlj
IHVpbnQgdW5BcmdzSGFuZGxlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAotewotICAg
ICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IG5WaXN1
YWxNb2RlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHB1YmxpYyB1aW50IHVu
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIHB1
YmxpYyB1bG9uZyBjb250YWluZXI7Ci0gICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBWUkV2ZW50X3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7Ci0gICAg
ICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OwotICAgICAgIHB1YmxpYyBmbG9hdCBl
dmVudEFnZVNlY29uZHM7Ci0gICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSGlkZGVu
QXJlYU1lc2hfdAotewotICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8vIGNvbnN0
IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xl
Q291bnQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBz
dHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHg7Ci0gICAg
ICAgcHVibGljIGZsb2F0IHk7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAotewotICAgICAgIHB1YmxpYyB1
aW50IHVuUGFja2V0TnVtOwotICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7Ci0g
ICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBwdWJsaWMgVlJDb250
cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KLSAgICAgICBwdWJs
aWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVy
QXhpc190IHJBeGlzMjsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMzsK
LSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKLX0KLS8vIFRoaXMgc3Ry
dWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5k
IE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQp
XSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCi17Ci0gICAgICAgcHVi
bGljIHVpbnQgdW5QYWNrZXROdW07Ci0gICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOwotICAgICAgIHB1YmxpYyBW
UkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQotICAgICAg
IHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOwotICAgICAgIHB1YmxpYyBWUkNvbnRy
b2xsZXJBeGlzX3QgckF4aXMyOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4
aXMzOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OwotICAgICAgIHB1
YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBhY2tldE51
bTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51bEJ1dHRv
blByZXNzZWQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9IHRoaXMu
dWxCdXR0b25Ub3VjaGVkOwotICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0aGlzLnJB
eGlzMDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7Ci0gICAg
ICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOwotICAgICAgICAgICAgICB1
bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4
aXM0ID0gdGhpcy5yQXhpczQ7Ci0gICAgICAgfQotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCi17
Ci0gICAgICAgcHVibGljIHVpbnQgc2l6ZTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKLSAgICAgICBw
dWJsaWMgZmxvYXQgc2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOwotICAgICAg
IHB1YmxpYyBmbG9hdCBhbHBoYTsKLSAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKLSAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxlOwotICAg
ICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWREaXZzOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWRT
Y2FsZTsKLSAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Ci19Ci1bU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJhVmlkZW9T
dHJlYW1GcmFtZUhlYWRlcl90Ci17Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKLSAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7Ci0gICAgICAgcHVi
bGljIHVpbnQgbkhlaWdodDsKLSAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhlbDsKLSAg
ICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKLSAgICAgICBwdWJsaWMgVHJhY2tlZERl
dmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Ci17
Ci0gICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgotICAgICAgIHB1
YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1p
bmcKLXsKLSAgICAgICBwdWJsaWMgdWludCBtX25TaXplOwotICAgICAgIHB1YmxpYyB1aW50IG1f
bkZyYW1lSW5kZXg7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7Ci0gICAgICAgcHVibGljIHVpbnQg
bV9uTnVtRHJvcHBlZEZyYW1lczsKLSAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2plY3Rpb25G
bGFnczsKLSAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwotICAg
ICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0
IG1fZmxQb3N0U3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3RhbFJlbmRl
ckdwdU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1zOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOwotICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZXNl
bnRDYWxsQ3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBwdWJsaWMg
ZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2Zs
TmV3UG9zZXNSZWFkeU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVSZWFkeU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAg
ICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7Ci0gICAgICAgcHVibGlj
IGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBwdWJsaWMgVHJhY2tl
ZERldmljZVBvc2VfdCBtX0htZFBvc2U7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25QaWQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQ
cmVzZW50czsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVt
RHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2pl
Y3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2FkaW5nOwot
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAgICAgIHB1
YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICBwdWJsaWMgdWludCBtX25O
dW1UaW1lZE91dDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRP
dXQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5
SW50ZXJzZWN0aW9uUGFyYW1zX3QKLXsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZTb3Vy
Y2U7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJl
c3VsdHNfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OwotICAgICAgIHB1
YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90IHZV
VnM7Ci0gICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFu
Z2xlX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOwotICAgICAgIHB1Ymxp
YyBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0aDsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgcHVibGljIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdAotewotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBwdWJsaWMg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVu
ZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90
IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7Ci0gICAgICAgcHVibGljIEhtZE1hdHJp
eDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKLSAgICAgICBwdWJsaWMgdWludCB1UHJv
cGVydGllczsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3Iz
X3QgdlBvc2l0aW9uOwotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGlj
IGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKLXsKLSAgICAg
ICBwdWJsaWMgY2hhciB1bldpZHRoOwotICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0OwotICAg
ICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fQotLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0aWJpbGl0
eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90X1Bh
Y2tlZAotewotICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7Ci0gICAgICAgcHVibGljIGNoYXIg
dW5IZWlnaHQ7Ci0gICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsgLy8gY29u
c3QgdWludDhfdCAqCi0gICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJNb2RlbF9U
ZXh0dXJlTWFwX3QgdW5wYWNrZWQpCi0gICAgICAgewotICAgICAgICAgICAgICB1bnBhY2tlZC51
bldpZHRoID0gdGhpcy51bldpZHRoOwotICAgICAgICAgICAgICB1bnBhY2tlZC51bkhlaWdodCA9
IHRoaXMudW5IZWlnaHQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVNYXBEYXRh
ID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKLSAgICAgICB9Ci19Ci1bU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAotewotICAg
ICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVy
TW9kZWxfVmVydGV4X3QgKgotICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7Ci0gICAg
ICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCi0gICAgICAg
cHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OwotICAgICAgIHB1YmxpYyBpbnQgZGlmZnVzZVRl
eHR1cmVJZDsKLX0KLS8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNv
bXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3RfUGFj
a2VkCi17Ci0gICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qgc3RydWN0
IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgcHVibGljIHVpbnQgdW5WZXJ0ZXhD
b3VudDsKLSAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVpbnQxNl90
ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgcHVibGljIGlu
dCBkaWZmdXNlVGV4dHVyZUlkOwotICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVuZGVy
TW9kZWxfdCB1bnBhY2tlZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJWZXJ0
ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5WZXJ0
ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQucklu
ZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5Ucmlh
bmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgICAgICAgIHVucGFja2Vk
LmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7Ci0gICAgICAgfQotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRl
ck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKLXsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgTm90
aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdlRGF0YTsg
Ly8gdm9pZCAqCi0gICAgICAgcHVibGljIGludCBtX25XaWR0aDsKLSAgICAgICBwdWJsaWMgaW50
IG1fbkhlaWdodDsKLSAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09wZW5WUkNv
bnRleHQKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6
SVZSU3lzdGVtICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFz
cyB2cjo6SVZSQ2hhcGVyb25lICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25l
U2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgot
ICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJSZXNv
dXJjZXMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNsYXNz
IHZyOjpJVlJSZW5kZXJNb2RlbHMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJFeHRlbmRl
ZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgotICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGlj
YXRpb25zICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xh
c3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJTY3Jl
ZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKLX0KLQotcHVibGljIGNsYXNz
IE9wZW5WUgotewotCi0gICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5hbChyZWYg
RVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5pdEludGVy
bmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICB9Ci0KLSAgICAgICBw
dWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLSAgICAg
ICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOwotICAgICAgIH0KLQotICAg
ICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0g
ICAgICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9ySG1kRXJy
b3IoRVZSSW5pdEVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1kRXJyb3Io
ZXJyb3IpKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBHZXRHZW5l
cmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9yKTsKLSAg
ICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9uVmFs
aWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCi0gICAgICAgewotICAgICAgICAgICAgICBy
ZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZhY2VW
ZXJzaW9uKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0SW5pdFRv
a2VuKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkdldElu
aXRUb2tlbigpOwotICAgICAgIH0KLQotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhE
cml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50
IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKLSAgICAgICBwdWJsaWMgY29uc3QgdWlu
dCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7Ci0gICAgICAgcHVibGljIGNvbnN0IHVp
bnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7
Ci0gICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIg
PSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAw
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKLSAg
ICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1
aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7Ci0gICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOwotICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLSAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAw
MDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9
IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhhbmRsZUlu
dmFsaWQgPSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCA9IDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1fVmVyc2lv
biA9ICJJVlJTeXN0ZW1fMDE1IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkV4dGVu
ZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRD
YW1lcmFfMDAzIjsKLSAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGljYXRpb25L
ZXlMZW5ndGggPSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9NaW1lVHlw
ZV9Ib21lQXBwID0gInZyL2hvbWUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18w
MDYiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lXzAwMyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDaGFwZXJv
bmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAi
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggPSAx
Mjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGgg
PSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0g
ImJhc2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfVGlwID0gInRpcCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250
cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3RhdHVzIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklW
UlJlbmRlck1vZGVsc18wMDUiOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Ob3RpZmlj
YXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUk5v
dGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0
ZWFtdnIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXF1aXJl
SG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3RyaW5n
ID0gImZvcmNlZEhtZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJv
Y2Vzc1BpcGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFi
bGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURl
YnVnWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlE
ZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lz
dGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VE
b21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9y
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jv
b2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVy
cyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVf
Qm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9J
bnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zm
c2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1h
bmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0g
Im5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVsdGlw
bGllciI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93QXN5
bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCA9
ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVj
dGlvbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFk
ZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIg
PSAiZGVmYXVsdE1pcnJvclZpZXciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmlu
ZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21B
cHBMYXVuY2giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0RGFz
aGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3ZlcmxheUFw
cHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQiOwot
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0g
ImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5k
SW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJy
ZXRhaWxEZW1vIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSXBk
T2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlz
YWJsZWltdSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX1Vz
ZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50
MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0
YXRpb24iOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EQkhp
c3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAi
bW9kZWxOdW1iZXIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5k
b3dYX0ludDMyID0gIndpbmRvd1giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5k
b3dIZWlnaHQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5kZXJX
aWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zs
b2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVu
Y3kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TZWN0
aW9uID0gInVzZXJpbnRlcmZhY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
VXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9w
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1p
emVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5z
aG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOwotICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9v
bCA9ICJEb05vdERpc3R1cmIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5
Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNj
YWxlWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09m
ZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOwotICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhp
bmciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9uID0gInBl
cmZjaGVjayI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hldXJpc3Rp
Y0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJu
T25seU9uY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9BbGxvd1Rp
bWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NP
bkV4aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0RGF0YV9G
bG9hdCA9ICJwZXJmVGVzdERhdGEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKLSAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNTdHlsZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91
bmRQZXJpbWV0ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJr
ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
UGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zs
b2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlz
aW9uQm91bmRzQ29sb3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFHIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFf
SW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFibGVDYW1l
cmEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJv
dW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9v
bCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9
ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc1N0
cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOwotICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5
YmFja0RldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19PblJl
Y29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja01pcnJvckRldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9h
dWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmlu
ZyA9ICJvZmZSZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
YXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZlNjcmVl
bnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0
ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9X
YXRjaGRvZ1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJf
QXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfU2Vj
dGlvbiA9ICJkYXNoYm9hcmQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFz
aGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFy
Y2FkZU1vZGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxza2luX1Nl
Y3Rpb24gPSAibW9kZWxza2lucyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9E
cml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18w
MDEiOwotCi0gICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9Ci0KLSAgICAg
ICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOwotCi0gICAgICAgY2xh
c3MgQ09wZW5WUkNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1YmxpYyBDT3BlblZS
Q29udGV4dCgpIHsgQ2xlYXIoKTsgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFy
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9w
VlJPdmVybGF5ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxz
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICBtX3BWUlRy
YWNrZWRDYW1lcmEgPSBudWxsOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgdm9p
ZCBDaGVja0NsZWFyKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYg
KFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZSU3lzdGVt
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwot
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCi0gICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVW
UkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJm
YWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lW
UlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0g
bmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKLSAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9y
Lk5vbmU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVu
VlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVyb25l
X1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
SW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBuZXcg
Q1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25lU2V0dXAo
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxsKQotICAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJy
b3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1By
ZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3Ig
PT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVyZmFjZSk7
Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9w
VlJDaGFwZXJvbmVTZXR1cDsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1Ymxp
YyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BW
UkNvbXBvc2l0b3IgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21wb3NpdG9y
KHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUk92ZXJsYXkgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCByZWYgZUVy
cm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQ
dHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJbnRlcmZh
Y2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1fcFZST3ZlcmxheTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyBD
VlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAobV9w
VlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24s
IHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNl
ICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcgQ1ZSUmVu
ZGVyTW9kZWxzKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVkRGlzcGxh
eSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsK
LSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxsKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVy
cm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXkocEludGVy
ZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUlNldHRpbmdzID09IG51bGwpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRH
ZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24sIHJlZiBl
RXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IElu
dFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5ncyhwSW50
ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVi
bGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVy
b3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlvbnNfVmVy
c2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRl
cmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9IG5ldyBD
VlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5zaG90cygp
Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCi0gICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJ
bml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJT
Y3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKLSAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNob3Rz
OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNrZWRDYW1l
cmEgVlJUcmFja2VkQ2FtZXJhKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJhY2tlZENh
bWVyYSA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0lu
dGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJlZiBlRXJy
b3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0
ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNrZWRDYW1l
cmEocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICBwcml2YXRl
IENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAgIHByaXZh
dGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7Ci0gICAgICAgICAgICAgIHByaXZhdGUgQ1ZSUmVu
ZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkV4
dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKLSAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkFw
cGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKLSAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJT
Y3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUlRy
YWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgIH07Ci0KLSAgICAgICBwcml2
YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCA9
IG51bGw7Ci0gICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFsX01vZHVs
ZUNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGdldAotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQgPT0g
bnVsbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxfTW9kdWxl
Q29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOwotICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0YXRp
YyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVy
bmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0
YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9Ci0KLSAg
ICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFu
ZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIEluaXQo
cmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9u
VHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSk7Ci0gICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQu
Q2xlYXIoKTsKLQotICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJyb3IuTm9u
ZSkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgICAgICAgIGJv
b2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lzdGVtX1Zl
cnNpb24pOwotICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKLSAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOwotICAgICAgICAg
ICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKLSAgICAgICB9Ci0KLSAgICAgICAv
KiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUg
aW50ZXJmYWNlIGFyZQotICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCi0gICAg
ICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IFNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLX0KLQotCi0KLX0KLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2MGY3YTQx
OGQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorKysgL2Rldi9udWxs
CkBAIC0xLDM3ODkgKzAsMCBAQAoteyJ0eXBlZGVmcyI6W3sidHlwZWRlZiI6ICJ2cjo6Z2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9Ci0seyJ0eXBlZGVmIjogInZyOjpn
bEludF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OmdsVUludF90Iiwi
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQ
cm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3QifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZlbnRfRGF0YV90In0KLSx7InR5cGVk
ZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBlIjogInN0cnVjdCB2cjo6VlJDb250
cm9sbGVyU3RhdGUwMDFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIs
InR5cGUiOiAidWludDY0X3QifQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRs
ZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTY3JlZW5zaG90SGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlwZSI6ICJ1bmlvbiBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUkNv
bXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6
OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZSTm90
aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OkhtZEVy
cm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6
SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0KLSx7InR5cGVkZWYiOiAidnI6OkNv
bG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn0KLSx7InR5cGVkZWYiOiAi
dnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQi
fQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNsYXNzIiwidHlwZSI6ICJlbnVtIHZy
OjpFVHJhY2tlZERldmljZUNsYXNzIn0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNraW5nVW5pdmVy
c2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0KLSx7
InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsInR5cGUiOiAiZW51bSB2cjo6
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpUcmFja2VkUHJvcGVy
dHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KLSx7InR5
cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUiOiAiZW51bSB2cjo6RVZSU3VibWl0
RmxhZ3MifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90IiwidHlwZSI6ICJlbnVtIHZyOjpF
VlJTdGF0ZSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpDb2xsaXNpb25Cb3VuZHNTdHlsZV90IiwidHlw
ZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUk92ZXJsYXlFcnJvciJ9Ci0seyJ0
eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkZpcm13
YXJlRXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21wb3NpdG9yRXJyb3IiLCJ0eXBlIjog
ImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUlNjcmVl
bnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNjcmVlbnNob3RFcnJvciJ9Ci1dLAot
ImVudW1zIjpbCi0gICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXllIiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1l
IjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVGV4dHVyZVR5
cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVf
T3BlbkdMIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9WdWxr
YW4iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX0lPU3VyZmFj
ZSIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0WDEy
IiwidmFsdWUiOiAiNCJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sb3JTcGFj
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkNvbG9yU3BhY2VfQXV0byIsInZhbHVl
IjogIjAifQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9HYW1tYSIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5lYXIiLCJ2YWx1ZSI6ICIyIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1Jlc3VsdCIsInZhbHVlcyI6IFsg
Ci0gICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQiLCJ2YWx1ZSI6
ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX0luUHJv
Z3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRf
Q2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUiOiAiMjAwIn0KLSAgICAgICAseyJu
YW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjIwMSJ9
Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwidmFs
dWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19ITUQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyIiwidmFsdWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRE
ZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSIsInZhbHVlcyI6IFsgCi0g
ICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkIiwidmFsdWUiOiAi
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9SaWdo
dEhhbmQiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFsdWUiOiAiMiJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5IiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAwIn0K
LSAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJfU3RyaW5nIiwidmFsdWUiOiAiMTAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6
ICIxMDAyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyIs
InZhbHVlIjogIjEwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sIiwidmFsdWUiOiAiMTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Ry
YWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDYifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDcifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmciLCJ2YWx1ZSI6ICIxMDA4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjogIjEwMTAifQotICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2YWx1ZSI6ICIxMDExIn0KLSAgICAg
ICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQiLCJ2YWx1ZSI6
ICIxMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9N
YXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2Fy
ZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIsInZhbHVlIjogIjEwMTUifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIiwidmFs
dWUiOiAiMTAxNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWlu
dDY0IiwidmFsdWUiOiAiMTAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRlBH
QVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIxIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sIiwidmFsdWUiOiAiMTAyMyJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCIsInZhbHVlIjogIjEwMjQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sIiwidmFsdWUiOiAiMTAyNiJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wiLCJ2YWx1ZSI6ICIx
MDI3In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRf
U3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNs
YXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhc0Nh
bWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RyaXZl
clZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzIifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCIsInZh
bHVlIjogIjEwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
IiwidmFsdWUiOiAiMTAzNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Nl
Y29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsInZhbHVlIjogIjIwMDIifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAw
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCIsInZh
bHVlIjogIjIwMDQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRf
VWludDY0IiwidmFsdWUiOiAiMjAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlG
aXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAwNiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIyMDA3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVlIjogIjIwMDgifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQiLCJ2YWx1ZSI6ICIyMDA5In0KLSAg
ICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDEw
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRvcklEX0ludDMyIiwidmFsdWUiOiAi
MjAxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmci
LCJ2YWx1ZSI6ICIyMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VS
aWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUiOiAiMjAxNSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjogIjIw
MTYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyIiwidmFsdWUi
OiAiMjAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCIs
InZhbHVlIjogIjIwMTgifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCIsInZhbHVlIjogIjIwMTkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NQ
cmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIxIn0KLSAgICAgICAseyJuYW1lIjog
IlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUiOiAiMjAyMiJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjMifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0IiwidmFsdWUiOiAiMjAy
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQiLCJ2YWx1
ZSI6ICIyMDI1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDI3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmciLCJ2YWx1ZSI6ICIyMDI4
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCIsInZh
bHVlIjogIjIwMjkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMzIi
fQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiIs
InZhbHVlIjogIjIwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90SG9yaXpv
bnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzQifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQi
LCJ2YWx1ZSI6ICIyMDM1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzcifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFsdWUiOiAiMjAzOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyIiwidmFsdWUiOiAiMjAz
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50
MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjA0MiJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwidmFsdWUiOiAiMzAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0IiwidmFsdWUiOiAiMzAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDIifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDAzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMzVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDUifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzNFR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDA2In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
IiwidmFsdWUiOiAiMzAwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3Bf
RmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiNDAw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9h
dCIsInZhbHVlIjogIjQwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1Jhbmdl
TWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDUifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3RyaW5nIiwidmFsdWUiOiAiNDAwNiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICI1
MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJp
bmciLCJ2YWx1ZSI6ICI1MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0
aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1MDAyIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyIsInZhbHVl
IjogIjUwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVh
ZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDUifQotICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nIiwidmFs
dWUiOiAiNTAwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwidmFsdWUiOiAiNTAwOCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCIsInZhbHVl
IjogIjUxMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjog
IjEwOTk5In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlRyYWNrZWRQcm9wX1N1Y2Nlc3Mi
LCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGF0YVR5
cGUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGV2
aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0J1
ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJv
cF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlIiwidmFsdWUiOiAi
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxl
bmd0aCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfTm90WWV0
QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Q
ZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjExIn0KLV19Ci0sICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlN1Ym1p
dF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlN0
YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVf
T2ZmIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZyIs
InZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQi
LCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHkiLCJ2YWx1ZSI6
ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHlfQWxlcnQiLCJ2YWx1ZSI6ICI0
In0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVhZHkiLCJ2YWx1ZSI6ICI1In0KLSAg
ICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2YWx1ZSI6ICI3In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkIiwidmFsdWUiOiAiMTAx
In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQiLCJ2YWx1
ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCIsInZhbHVlIjogIjEwNCJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA2In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSIsInZhbHVlIjogIjEw
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCIs
InZhbHVlIjogIjEwOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1dhdGNoZG9nV2FrZVVw
UmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMwMiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
VG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjogIjQwMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZhbHVlIjogIjQwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0IiwidmFsdWUiOiAiNDAyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCIsInZhbHVlIjogIjQwMyJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkIiwidmFsdWUi
OiAiNDA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQiLCJ2
YWx1ZSI6ICI0MDUifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdl
ZCIsInZhbHVlIjogIjQwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFsdWUiOiAiNDA3In0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMiLCJ2YWx1ZSI6ICI0MTEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hvd24iLCJ2YWx1ZSI6ICI1MDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlkZGVuIiwidmFsdWUiOiAiNTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkIiwidmFsdWUiOiAi
NTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQiLCJ2
YWx1ZSI6ICI1MDMifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkIiwidmFsdWUiOiAiNTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
U2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjogIjUxMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0IiwidmFsdWUiOiAiNTEyIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkIiwidmFs
dWUiOiAiNTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0
b25Eb3duIiwidmFsdWUiOiAiNTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1MTYifQotICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUxNyJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwidmFsdWUiOiAiNTE4In0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QiLCJ2YWx1ZSI6ICI1MjAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90VGFrZW4iLCJ2YWx1ZSI6ICI1MjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkIiwidmFsdWUiOiAi
NTIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJv
YXJkIiwidmFsdWUiOiAiNTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCIsInZhbHVlIjogIjUyNSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biIsInZhbHVlIjogIjYw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4iLCJ2YWx1
ZSI6ICI2MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5J
bnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05v
dGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9R
dWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjogIjcwMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2YWx1ZSI6ICI3MDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdl
ZCIsInZhbHVlIjogIjgwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVRl
bXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MDMifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0IiwidmFsdWUiOiAiODA0In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFs
dWUiOiAiODIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdI
YXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2Ft
ZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUyIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCIs
InZhbHVlIjogIjg1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Vudmlyb25tZW50U2V0
dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVlIjogIjkwMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFsdWUiOiAiMTAwMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCIsInZhbHVlIjogIjExMDAi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIiwidmFs
dWUiOiAiMTEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2xvc2VkIiwi
dmFsdWUiOiAiMTIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2hhcklu
cHV0IiwidmFsdWUiOiAiMTIwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJk
RG9uZSIsInZhbHVlIjogIjEyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMzAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCIsInZhbHVlIjogIjEzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUiOiAiMTMwNCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRl
IiwidmFsdWUiOiAiMTMwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3Jf
TWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4iLCJ2YWx1ZSI6ICIxNDAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biIs
InZhbHVlIjogIjE0MTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAwIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0i
LCJ2YWx1ZSI6ICIxNTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVy
YV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAzIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSIs
InZhbHVlIjogIjE1NTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQotICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUiLCJ2YWx1ZSI6ICIxNjAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwiLCJ2
YWx1ZSI6ICIxNjAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlf
Q2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAiMTAwMDAifQotICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQiLCJ2YWx1ZSI6ICIxOTk5
OSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZlbCIs
InZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5r
bm93biIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQiLCJ2YWx1
ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRi
eSIsInZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQnV0dG9u
SWQiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX0VCdXR0b25fU3lzdGVtIiwidmFs
dWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQXBwbGljYXRpb25NZW51Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fR3JpcCIsInZhbHVlIjog
IjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfTGVmdCIsInZhbHVlIjogIjMi
fQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfVXAiLCJ2YWx1ZSI6ICI0In0KLSAg
ICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0IiwidmFsdWUiOiAiNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjcifQotICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjogIjMxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRv
bl9BeGlzMiIsInZhbHVlIjogIjM0In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlz
MyIsInZhbHVlIjogIjM1In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzNCIsInZh
bHVlIjogIjM2In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFk
IiwidmFsdWUiOiAiMzIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVHJp
Z2dlciIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EYXNoYm9h
cmRfQmFjayIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX01heCIs
InZhbHVlIjogIjY0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk1vdXNlQnV0
dG9uIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJNb3VzZUJ1dHRvbl9MZWZ0Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX1JpZ2h0IiwidmFs
dWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX01pZGRsZSIsInZhbHVl
IjogIjQifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUhpZGRlbkFyZWFNZXNoVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX1N0YW5k
YXJkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9J
bnZlcnNlIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVz
aF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19lSGlkZGVuQXJl
YU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1ZSI6ICIzIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUiLCJ2YWx1ZXMi
OiBbIAotICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2
ZW50cyIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNvbGxp
c2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyIsInZhbHVlIjogIjIi
fQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCIsInZh
bHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05F
IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxF
X0NPVU5UIiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9V
bmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTIifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQiLCJ2YWx1ZSI6ICIx
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBl
IiwidmFsdWUiOiAiMTQifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5VG9v
TG9uZyIsInZhbHVlIjogIjE1In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJy
b3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIxOCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSIsInZhbHVlIjogIjE5In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIiLCJ2YWx1ZSI6
ICIyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50QmVE
ZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIzIn0KLSAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMjQifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSIsInZhbHVlIjogIjI1In0K
LSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlIiwi
dmFsdWUiOiAiMjYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJv
ciIsInZhbHVlIjogIjI3In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Rvb01h
bnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6ICIzMCJ9Ci1dfQotLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAg
IHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVlIjogIjUifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVlIjogIjcifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZhbHVlIjogIjEifQotICAgICAgICx7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAKLSAg
ICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9PSyIsInZhbHVlIjogIjAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQi
LCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9O
b3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEifQotICAgICAgICx7Im5hbWUiOiAi
VlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSIsInZhbHVlIjogIjEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFs
dWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSSW5p
dEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0IiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCIs
InZhbHVlIjogIjEwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwidmFsdWUiOiAiMTA1In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJl
Y3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kIiwidmFsdWUi
OiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRo
IiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9M
b2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCIsInZhbHVlIjogIjExNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1JldHJ5IiwidmFsdWUiOiAiMTE1
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2Vy
IiwidmFsdWUiOiAiMTE2In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfQW5v
dGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZhbHVlIjogIjExOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biIsInZhbHVlIjogIjExOSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzIiwidmFs
dWUiOiAiMTIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJG
b3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IiLCJ2YWx1ZSI6ICIxMjIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlB
cHBzIiwidmFsdWUiOiAiMTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
SW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEyNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQiLCJ2YWx1ZSI6ICIx
MjYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3Vu
ZCIsInZhbHVlIjogIjEyNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZS
TW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkIiwidmFsdWUiOiAi
MTI5In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFsdWUiOiAiMTMxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MiLCJ2
YWx1ZSI6ICIxMzIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwidmFsdWUiOiAiMTM0In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQiLCJ2YWx1ZSI6ICIyMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24iLCJ2YWx1ZSI6ICIy
MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24iLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdExv
YWRlZCIsInZhbHVlIjogIjIwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6ICIyMDUifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyMDYifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCIs
InZhbHVlIjogIjIwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biIsInZhbHVlIjogIjIw
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRP
ZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAiMjEyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAwIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkIiwidmFsdWUiOiAi
MzAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIsInZhbHVlIjogIjMwNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0
b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzIiwi
dmFsdWUiOiAiMzA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFsdWUiOiAiNDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSIs
InZhbHVlIjogIjQwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Db21wb3NpdG9y
X092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkIiwidmFsdWUiOiAiNDA0
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEwMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UiLCJ2
YWx1ZSI6ICIxMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0IiwidmFsdWUiOiAiMTEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9O
b1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnIiwidmFsdWUiOiAiMTEw
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiIsInZhbHVl
IjogIjExMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMTA3In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
U2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFy
dCIsInZhbHVlIjogIjExMDkifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQiLCJ2YWx1ZSI6ICIxMTEw
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTExMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yIiwidmFs
dWUiOiAiMTExMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIsInZhbHVlIjogIjExMTMifQotICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZCIsInZhbHVlIjogIjIwMDAifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTW9ubyIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6ICI1In0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZp
ZXciLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJW
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQiLCJ2YWx1ZSI6ICIxMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSIsInZh
bHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZh
bGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIsInZhbHVlIjogIjEwMyJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlIiwidmFsdWUiOiAi
MTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRl
ZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIsInZhbHVlIjogIjEwNiJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUi
LCJ2YWx1ZSI6ICIxMDcifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCIsInZhbHVlIjogIjEwOSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1l
cmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlIiwidmFs
dWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJh
bWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJu
YW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUiLCJ2YWx1
ZSI6ICIxMTUifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIsInZhbHVlIjogIjEifQotICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCIs
InZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAiTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyIs
InZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25FcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJy
b3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4Iiwi
dmFsdWUiOiAiMTAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Vbmtu
b3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEwNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlm
ZXN0IiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmci
LCJ2YWx1ZSI6ICIxMTAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0xh
dW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmciLCJ2YWx1ZSI6ICIxMTIifQotICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkIiwidmFs
dWUiOiAiMTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBs
YXRlIiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjIw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFtZXRl
ciIsInZhbHVlIjogIjIwMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBs
aWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9y
eV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICIxMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyIsInZhbHVlIjogIjE0
In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nIiwi
dmFsdWUiOiAiMTUifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rl
c2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZhbHVlIjogIjUxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nIiwidmFsdWUi
OiAiNTIifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9T
dHJpbmciLCJ2YWx1ZSI6ICI1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1ZSI6ICI2MCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sIiwidmFsdWUiOiAi
NjEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2Vk
X0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCIsInZhbHVlIjogIjcw
In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25fTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6ICIxMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2giLCJ2
YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9O
ZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmciLCJ2YWx1ZSI6ICIx
MDAifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5n
X0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92ZWQi
LCJ2YWx1ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIxMDMifQotICAgICAg
ICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvciIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jh
c2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QiLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIyMDMifQotICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlk
IiwidmFsdWUiOiAiMjA0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAg
ICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAi
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVWZXJz
aW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9y
X0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiIsInZhbHVlIjog
IjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRv
ckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0
ZWQiLCJ2YWx1ZSI6ICIxMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1ZSI6ICIxMDgifQotXX0KLSwgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QiLCJ2YWx1ZXMiOiBbIAot
ICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lIiwidmFsdWUiOiAiMCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSIsInZhbHVlIjog
IjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50IiwidmFsdWUiOiAi
MyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlGbGFncyIsInZhbHVl
cyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vbmUiLCJ2YWx1ZSI6ICIw
In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX0N1cnZlZCIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUkdTUzRYIiwidmFsdWUiOiAiMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiIsInZhbHVl
IjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRF
dmVudHMiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1No
b3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjogIjYifQotICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMiLCJ2YWx1ZSI6ICI3In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsIiwi
dmFsdWUiOiAiOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93
bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsIiwidmFsdWUiOiAiMTAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkIiwidmFsdWUi
OiAiMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEiLCJ2YWx1
ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFt
YSIsInZhbHVlIjogIjEzIn0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NvcnRX
aXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0KLSAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZhbHVlIjogIjE1In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zIiwidmFs
dWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291
bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXki
LCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1l
IjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkIiwidmFsdWUiOiAiMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCIsInZhbHVl
IjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5w
dXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMiLCJ2YWx1ZSI6ICIxIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIiwidmFsdWVzIjog
WyAKLSAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9VcCIsInZhbHVlIjogIjAifQot
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Eb3duIiwidmFsdWUiOiAiMSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xlZnQiLCJ2YWx1ZSI6ICIyIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmlnaHQiLCJ2YWx1ZSI6ICIzIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291bnQiLCJ2YWx1ZSI6ICI0In0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIk92ZXJsYXlJbnRlcnNl
Y3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5h
bWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlIiwidmFsdWUiOiAi
MSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwi
dmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vbmUiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
IiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9O
b3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZhbHVlIjogIjMwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMiLCJ2YWx1ZSI6ICIzMDIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzIiwidmFs
dWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55
VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2Rl
bEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIzMDUifQotICAgICAgICx7Im5hbWUi
OiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMzA2In0KLSAg
ICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzIiwidmFs
dWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91
Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiNDAwIn0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAg
ICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyIsInZhbHVlIjogIjEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUiLCJ2YWx1ZSI6
ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkIiwi
dmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkVW
Uk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2Vy
VmFsdWUiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5v
dGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRVZSTm90aWZp
Y2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90
aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5h
bWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJs
ZWQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5
bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQotXX0KLSwgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkIiwidmFsdWUiOiAiNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZh
dWx0IiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNj
cmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kIiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFs
dWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX1NjcmVlbnNo
b3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9Ci1dfQotXSwKLSJjb25zdHMiOlt7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAg
ICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kIiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5U
cmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVHJh
Y2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VsSW52
YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVU
YWdfdCIsICJjb25zdHZhbCI6ICIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuRmxv
YXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJj
b25zdHZhbCI6ICIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSW50MzJQcm9wZXJ0
eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6
ICIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVWludDY0UHJvcGVydHlUYWciLCJj
b25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMyJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI0In0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
SGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjMwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuT3Bl
blZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMy
X3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5D
b250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAi
Y29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191bE92ZXJsYXlIYW5k
bGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3ZlcmxheUhhbmRsZV90IiwgImNvbnN0
dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIwIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1fVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTeXN0ZW1fMDE1In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJFeHRlbmRlZERpc3BsYXlf
MDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSVHJhY2tl
ZENhbWVyYV8wMDMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhBcHBsaWNhdGlv
bktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIx
MjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX01pbWVUeXBlX0hvbWVBcHAiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvaG9tZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvZ2FtZV90aGVhdGVy
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJBcHBsaWNhdGlv
bnNfMDA2In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJDaGFwZXJv
bmVfMDAzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVTZXR1cF9WZXJz
aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNo
YXBlcm9uZVNldHVwXzAwNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAiSVZSQ29tcG9zaXRv
cl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IklWUkNvbXBvc2l0b3JfMDIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVy
bGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFs
IjogIjEyOCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4In0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUNvdW50IiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0In0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzIifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5XzAxNCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJnZGMyMDE1In0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2UifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0aXAifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhhbmRncmlwIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhdHVzIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZW5kZXJNb2RlbHNfMDA1
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMjU2In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSTm90aWZpY2F0aW9uc18wMDIi
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGluZ3NfMDAyIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJlSG1kIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmciLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkRHJpdmVyIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkSG1k
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3Bs
YXlEZWJ1ZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EZWJ1Z1By
b2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0aW9uIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVnWCJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3BsYXlEZWJ1
Z1kifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRVc2VEb21l
UHJvamVjdGlvbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWlnaHQifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZERvbWVS
YWRpdXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfR3JpZENvbG9y
X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJn
cmlkQ29sb3IifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAicGxheUFyZWFDb2xvciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzaG93U3RhZ2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlyZWN0TW9kZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJl
Y3RNb2RlRWRpZFZpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVha2VycyJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVz
X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYXNlc3RhdGlvblBvd2VyTWFu
YWdlbWVudCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9OZXZlcktp
bGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2pl
Y3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZvcmNl
UmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Zv
cmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlZmF1bHRNaXJyb3JWaWV3
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2hv
d01pcnJvclZpZXcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTWly
cm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9z
aXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFz
aGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJsZUhv
bWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5h
YmxlSG9tZUFwcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZXRJ
bml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIn0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInJldGFpbERlbW8ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImlwZE9mZnNldCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2VkaXNhbWJpZ3VhdGlvbiJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlv
bkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImRpc2FtYmlndWF0aW9uZGVidWcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnliYXNlc3RhdGlvbiJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYmhpc3RvcnkifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2ZXJfbnVsbCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlcmlhbE51bWJlciJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmciLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxOdW1iZXIifQot
LHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dYIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93WSJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dXaWR0aCJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93SGVpZ2h0In0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlcldpZHRoIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJIZWln
aHQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3lu
Y1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheUZyZXF1ZW5jeSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZXJpbnRlcmZhY2UifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25U
b3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJT
dGF0dXNBbHdheXNPblRvcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlcklu
dGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdHMifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNjcmVlbnNob3RU
eXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibm90aWZp
Y2F0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTm90aWZpY2F0aW9uc19E
b05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJEb05vdERpc3R1cmIifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tl
eWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAia2V5Ym9hcmQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
S2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIlNjYWxlWSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0TGVmdFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRSaWdodFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0WSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU21v
b3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNt
b290aGluZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TZWN0aW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZjaGVjayJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9v
bCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJoZXVyaXN0
aWNBY3RpdmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5SW5I
TURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
YXJuSW5ITUQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ3YXJuT25seU9uY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfQWxs
b3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09uRXhpdCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVzdERhdGEifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNvbGxpc2lvbkJvdW5kcyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJv
dW5kc1N0eWxlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9u
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29s
bGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3Rh
bmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFS
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
QiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJjYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29s
bGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmFG
b3JSb29tVmlldyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUci
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1h
Ql9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzU3Ry
ZW5ndGgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXVkaW8ifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUGxheWJh
Y2tEZXZpY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUmVjb3Jk
RGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJvblJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01pcnJvckRldmljZSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlBsYXliYWNr
RGV2aWNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZSZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9mZlJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInZpdmVIRE1JR2FpbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93
ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfUG93ZXJPZmZP
bkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlck9mZk9uRXhpdCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJf
VHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGltZW91dCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNz
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImF1dG9MYXVu
Y2hTdGVhbVZST25CdXR0b25QcmVzcyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
RGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9EYXNo
Ym9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1vZGUifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
IklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0KLV0sCi0ic3RydWN0cyI6W3sic3Ry
dWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm0i
LCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kTWF0
cml4NDRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCBbNF1bNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNfdCIsImZpZWxkcyI6
IFsKLXsgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbM10ifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ2
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3Rv
cjNkX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZG91
YmxlIFszXSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yMl90IiwiZmllbGRzIjogWwot
eyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInci
LCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBl
IjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9
LAoteyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImciLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZp
ZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
SG1kUXVhZF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInZDb3JuZXJzIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6
OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlRvcExlZnQiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCi17ICJmaWVsZG5hbWUiOiAidkJv
dHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9XX0KLSx7
InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRu
YW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRuYW1l
IjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQotLHsic3RydWN0IjogInZy
OjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJlVHlwZSIsICJmaWVsZHR5cGUiOiAi
ZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCi17ICJmaWVsZG5hbWUiOiAiZUNvbG9yU3BhY2UiLCAi
ZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1dfQotLHsic3RydWN0IjogInZyOjpU
cmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRf
dCJ9LAoteyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZy
OjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2QW5ndWxhclZlbG9jaXR5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVU
cmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nUmVzdWx0In0s
Ci17ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAot
eyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5kc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUi
OiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ1TWF4Iiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInZNYXgiLCAiZmllbGR0eXBl
IjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpWUlZ1bGthblRleHR1cmVEYXRhX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
VmtEZXZpY2VfVCAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wUGh5c2ljYWxEZXZpY2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoteyAiZmllbGRuYW1lIjog
Im1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtJbnN0YW5jZV9UICoifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUXVldWVfVCAq
In0sCi17ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJbmRleCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0dXJlRGF0YV90IiwiZmllbGRzIjog
WwoteyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgSUQz
RDEyUmVzb3VyY2UgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcENvbW1hbmRRdWV1ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAi
bV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJidXR0
b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50
X01vdXNlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1
Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAi
eGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInlkZWx0YSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJyZXBlYXRDb3VudCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYkZpbmdlckRvd24iLCAiZmll
bGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAiZmxTZWNvbmRzRmluZ2VyRG93biIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJmVmFsdWVYRmlyc3QiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWUZpcnN0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImZWYWx1ZVhSYXciLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWVJhdyIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFsdWUiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCi17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uSWQiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Byb2Nlc3NfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17
ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmll
bGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQotLHsic3RydWN0Ijog
InZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJvdmVy
bGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJzdGF0dXNTdGF0
ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
S2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjTmV3SW5wdXQiLCAiZmll
bGR0eXBlIjogImNoYXIgWzhdIn0sCi17ICJmaWVsZG5hbWUiOiAidVVzZXJWYWx1ZSIsICJmaWVs
ZHR5cGUiOiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfSXBkX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFwZXJvbmVfdCIsImZpZWxkcyI6IFsK
LXsgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRVbml2ZXJzZSIsICJmaWVsZHR5cGUi
OiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCIsImZp
ZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxldmVsIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYlJlc2V0QnlTeXN0ZW1NZW51IiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JlZW5zaG90
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogInR5cGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IiwiZmll
bGRzIjogWwoteyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQot
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvcGVydHlf
dCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjb250YWluZXIiLCAiZmllbGR0eXBlIjog
IlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKLXsgImZpZWxkbmFtZSI6ICJwcm9wIiwgImZp
ZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In1dfQotLHsic3RydWN0
IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZl
ZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1Jlc2VydmVkX3QifSwKLXsgImZp
ZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
Q29udHJvbGxlcl90In0sCi17ICJmaWVsZG5hbWUiOiAibW91c2UiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCi17ICJmaWVsZG5hbWUiOiAic2Nyb2xsIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xsX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvY2Vzc190In0s
Ci17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKLXsgImZpZWxkbmFtZSI6ICJvdmVybGF5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3ZlcmxheV90In0sCi17ICJmaWVsZG5hbWUi
OiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU3RhdHVzX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X0tleWJvYXJkX3QifSwKLXsgImZpZWxkbmFtZSI6ICJpcGQiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoteyAiZmllbGRuYW1lIjogImNoYXBlcm9uZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBlcm9uZV90In0sCi17ICJmaWVsZG5h
bWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0b3VjaFBhZE1vdmUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCJ9LAoteyAiZmllbGRu
YW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdF90In0sCi17ICJm
aWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJhcHBsaWNh
dGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QifSwKLXsgImZpZWxkbmFtZSI6ICJjYW1lcmFTdXJmYWNlIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCJ9LAoteyAiZmllbGRu
YW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
TWVzc2FnZU92ZXJsYXlfdCJ9LAoteyAiZmllbGRuYW1lIjogInByb3BlcnR5IiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogImV2ZW50VHlwZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFja2VkRGV2aWNlSW5kZXgi
LCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICJmaWVsZG5hbWUiOiAi
ZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjog
ImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90In1dfQotLHsic3RydWN0IjogInZy
OjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBWZXJ0ZXhE
YXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0sCi17
ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhpc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAi
eSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSQ29udHJvbGxl
clN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidW5QYWNrZXROdW0iLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAidWxCdXR0b25QcmVzc2Vk
IiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVsQnV0dG9uVG91
Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJyQXhpcyIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3QgWzVdIn1dfQotLHsi
c3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncyIsImZpZWxkcyI6IFsKLXsg
ImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRu
YW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKLXsgImZpZWxkbmFtZSI6ICJh
bnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAic2NhbGUi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZGlzdGFuY2UiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYWxwaGEiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAidU9mZnNldCIsICJmaWVsZHR5cGUiOiAiZmxvYXQi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFt
ZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3Jp
ZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3JpZFdpZHRo
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImdyaWRTY2FsZSIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFuc2Zvcm0iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q2Ft
ZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjog
ImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUifSwKLXsgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCi17ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QifV19Ci0seyJzdHJ1Y3QiOiAi
dnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBjaEtl
eSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICJmaWVsZG5hbWUiOiAicGNoVmFs
dWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q29t
cG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25TaXpl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkZyYW1lSW5k
ZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJh
bWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJt
X25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGltZUluU2Vjb25kcyIsICJmaWVsZHR5
cGUiOiAiZG91YmxlIn0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZVN1Ym1pdEdwdU1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxQb3N0U3VibWl0R3B1TXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvdGFsUmVuZGVy
R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBv
c2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6
ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFtZUludGVydmFsTXMiLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZXNlbnRDYWxsQ3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRGb3JQcmVzZW50
Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFN1Ym1p
dEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdh
aXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXMiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRl
clN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9IbWRQ
b3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMiLCJmaWVsZHMiOiBbCi17ICJmaWVs
ZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJm
aWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lcyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURy
b3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtTG9hZGluZyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzTG9hZGlu
ZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9w
cGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmciLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURyb3BwZWRG
cmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2RGlyZWN0aW9uIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVPcmln
aW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn1dfQot
LHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCi17ICJmaWVsZG5hbWUiOiAidlVWcyIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJmRGlzdGFu
Y2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpJbnRlcnNlY3Rp
b25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvcExl
ZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxUb3BMZWZ0
WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsV2lkdGgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbEhlaWdodCIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlvbk1hc2tDaXJj
bGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWCIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWSIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsUmFkaXVzIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91cykiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJz
ZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCi17ICJmaWVsZG5hbWUiOiAibV9DaXJjbGUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNsZV90In1dfQotLHsic3Ry
dWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51
bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIn0sCi17ICJmaWVs
ZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjogIlZST3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQotLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9D
b21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1Rv
Q29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVQ
cm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVudFByb3BlcnRpZXMifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90IiwiZmllbGRzIjogWwoteyAiZmllbGRu
YW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInJmVGV4dHVyZUNvb3JkIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCBbMl0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1RleHR1cmVN
YXBfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1bldpZHRoIiwgImZpZWxkdHlwZSI6
ICJ1aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInVuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1
aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInJ1YlRleHR1cmVNYXBEYXRhIiwgImZpZWxkdHlw
ZSI6ICJjb25zdCB1aW50OF90ICoifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX3Qi
LCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiclZlcnRleERhdGEiLCAiZmllbGR0eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKiJ9LAoteyAiZmllbGRuYW1l
IjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29uc3QgdWludDE2X3QgKiJ9LAoteyAi
ZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwgImZpZWxkdHlwZSI6ICJUZXh0dXJl
SURfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJiU2Nyb2xsV2hlZWxWaXNpYmxlIiwg
ImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Tm90aWZpY2F0aW9uQml0
bWFwX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9wSW1hZ2VEYXRhIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAi
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkJ5dGVzUGVyUGl4ZWwiLCAiZmllbGR0eXBl
IjogImludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkNPcGVuVlJDb250ZXh0IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSU3lzdGVtICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZSIsICJmaWVs
ZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9w
VlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZVNl
dHVwICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBvc2l0b3IiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUk92ZXJs
YXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVybGF5ICoifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlc291cmNl
cyAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJNb2RlbHMiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSRXh0
ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5
ICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdzIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSQXBwbGljYXRpb25z
IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoifSwKLXsgImZpZWxk
bmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJU
cmFja2VkQ2FtZXJhICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNjcmVlbnNob3RzIiwgImZp
ZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKiJ9XX0KLV0sCi0ibWV0aG9kcyI6
W3sKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4NDRfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewot
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UHJvamVjdGlvblJhdyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmTGVmdCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmlnaHQiICwicGFyYW10
eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZlRvcCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQm90dG9tIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVEaXN0b3J0aW9u
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5
ZVRvSGVhZFRyYW5zZm9ybSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFRpbWVTaW5jZUxhc3RWc3luYyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZTZWNvbmRzU2luY2VMYXN0
VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
dWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2NF90ICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiaW50
MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5B
ZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImJJc1Zpc2li
bGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU9yaWdp
biIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9z
ZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXNldFNlYXRlZFplcm9Qb3Nl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFNlYXRlZFplcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5k
aWNlc09mQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tlZERldmljZUNsYXNzIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFzcyJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJh
Y2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blRyYWNrZWREZXZpY2VJbmRl
eEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERl
dmljZUFjdGl2aXR5TGV2ZWwiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFRGV2aWNlQWN0
aXZpdHlMZXZlbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERldmljZUlu
ZGV4Rm9yQ29udHJvbGxlclJvbGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZp
Y2VJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkQ29udHJvbGxlclJv
bGUiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzJUcmFja2VkRGV2aWNl
UHJvcGVydHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBy
b3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VWludDY0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmlu
Z1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50V2l0aFBvc2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2Vk
RGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0iLAotICAgICAgICJy
ZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJFdmVudFR5cGUifQot
ICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1lc2giLAotICAgICAgICJyZXR1cm50
eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFSGlkZGVu
QXJlYU1lc2hUeXBlIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBDb250
cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJTdGF0ZVNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29u
dHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
VHJhY2tlZERldmljZVBvc2VfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlRyaWdnZXJIYXB0
aWNQdWxzZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5cGUiOiAidW5zaWduZWQgc2hvcnQi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWROYW1lRnJvbUVudW0iLAotICAgICAg
ICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQnV0dG9u
SWQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21F
bnVtIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVBeGlzVHlwZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYXB0dXJl
SW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxl
YXNlSW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogImJvb2wiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1ZXN0IiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVxdWVzdCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzcG9uc2VCdWZmZXIi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVzcG9u
c2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJGaXJtd2FyZUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmciLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0V2luZG93Qm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogImlu
dDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuWSIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5ZU91
dHB1dFZpZXdwb3J0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5YIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERYR0lP
dXRwdXRJbmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUi
OiAiaW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVyT3V0cHV0SW5k
ZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNv
bnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1lcmEiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhc0NhbWVyYSIg
LCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRD
YW1lcmFGcmFtZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogIm5E
ZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWln
aHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
bkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2ljcyIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3RvcjJf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRlciIgLCJwYXJhbXR5cGUiOiAidnI6
OkhtZFZlY3RvcjJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFQ
cm9qZWN0aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxaTmVhciIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmbFpGYXIiICwicGFyYW10
eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFByb2plY3Rpb24iICwicGFy
YW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWRDYW1lcmFIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Vmlk
ZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBG
cmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhl
YWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInZyOjpWUlRleHR1cmVCb3Vu
ZHNfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
aFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3Qi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0Qx
MURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZvaWQg
KioifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjog
InZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6
OmdsVUludF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFy
YW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2Vk
Q2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJl
R0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJh
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNhdGlvbk1hbmlmZXN0IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQ
YXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FwcGxpY2F0
aW9uSW5zdGFsbGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bkNvdW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVuIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBs
aWNhdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwS2V5cyIgLCJhcnJheV9jb3VudCI6
ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6QXBwT3ZlcnJpZGVLZXlz
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFw
cGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlw
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBsaWNhdGlvbiIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRp
b25zRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIg
KiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmciLAotICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
UHJvcGVydHkifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQcm9wZXJ0eVZhbHVlQnVmZmVy
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3Bl
cnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9w
ZXJ0eVVpbnQ2NCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiQXV0b0xhdW5jaCIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBs
aWNhdGlvbkF1dG9MYXVuY2giLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBhcmFt
dHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZlckxl
biIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAotICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFw
cEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRN
aW1lVHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50
cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3MiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZm
ZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1BcHBsaWNh
dGlvblByZWxhdW5jaENoZWNrIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1bWVudHMiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFdvcmtpbmdEaXJlY3Rv
cnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9uU3RhdGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFBsYXlBcmVhU2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhUmVjdCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZvIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29sb3IiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
ImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRD
b2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMiICwicGFyYW10eXBlIjogImludCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIiAs
InBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRDYW1l
cmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRDb2xvcl90ICoifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zpc2libGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjb25maWdGaWxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAi
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVNpemUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJlY3QiLAotICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJwdW5RdWFkc0Nv
dW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1
YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BsYXlBcmVh
U2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8iLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJheV9jb3VudCI6ICJ1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMi
OiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsb2FkRnJvbURpc2si
LAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVy
b25lQ29uZmlnRmlsZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8iLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsImFy
cmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJ
bmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAi
cHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIiwKLSAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291bnQi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRvQnVmZmVyIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5ndGgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuSW1wb3J0RmxhZ3MiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRUcmFja2luZ1Nw
YWNlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4ifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNraW5n
U3BhY2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVyUG9z
ZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBvc2VB
cnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUi
OiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1blJlbmRl
clBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQ
b3NlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEdhbWVQ
b3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dEdhbWVQb3NlIiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU3VibWl0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29t
cG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBz
dHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJu
U3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJTdWJtaXRGbGFncyJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQcmVzZW50SGFuZG9mZiIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RnJhbWVUaW1pbmciLAot
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29tcG9z
aXRvcl9GcmFtZVRpbWluZyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5GcmFtZXNBZ28i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRG
cmFtZVRpbWluZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGltaW5nIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAotICAgICAgICJyZXR1cm50eXBlIjog
ImZsb2F0IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZlU3RhdHMiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiblN0YXRzU2l6ZUluQnl0ZXMiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlVG9D
b2xvciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMi
ICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZhZGVJbiIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVu
dEdyaWRBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlNldFNreWJveE92ZXJyaWRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9z
aXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
VGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJlQ291bnQiICwicGFyYW10eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JHb1RvQmFjayIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvclF1aXQiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIklzRnVsbHNjcmVlbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVudFNj
ZW5lRm9jdXNQcm9jZXNzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2VuZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJvcldpbmRvdyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU1pcnJvcldpbmRvdyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNNaXJyb3JXaW5kb3dWaXNp
YmxlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3Np
dG9yRHVtcEltYWdlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJvY2VzcyIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVuZFJlbmRlcmluZyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwi
cGFyYW10eXBlIjogInZvaWQgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VN
aXJyb3JUZXh0dXJlRDNEMTEiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMVNoYWRlclJlc291cmNl
VmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRNaXJyb3JUZXh0dXJlR0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
Z2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6Omds
U2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VTaGFyZWRHTFRleHR1cmUiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImdsVGV4dHVyZUlkIiAsInBhcmFt
dHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlVu
bG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNl
X1QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZm
ZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
RmluZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJsYXlL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEhpZ2hR
dWFsaXR5T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1
aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheU5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5
SW1hZ2VEYXRhIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiRW5hYmxlZCIgLCJw
YXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUZsYWci
LAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10eXBlIjogImJvb2wgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZSZWQiICwicGFyYW10eXBlIjogImZs
b2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmVkIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZHcmVlbiIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQmx1ZSIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUFscGhhIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZB
bHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92
ZXJsYXlBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlRleGVsQXNwZWN0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRleGVsQXNwZWN0
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3JkZXIiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5U29ydE9yZGVyIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1blNv
cnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjog
ImZsb2F0In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5V2lkdGhJbk1ldGVycyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZk1pbkRpc3Rh
bmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBm
TWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVU
ZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUZXh0dXJlQ29s
b3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVyZUJvdW5kcyIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheVRleHR1
cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFuc2Zv
cm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVRyYWNraW5n
T3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFja2luZ09y
aWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICoifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVHJh
Y2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlU
cmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVPdmVybGF5IiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNPdmVybGF5VmlzaWJs
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNvb3JkaW5h
dGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dE92
ZXJsYXlFdmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXZl
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhvZCIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUlucHV0TWV0aG9kIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1ldGhvZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVy
bGF5TW91c2VTY2FsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRWZWN0b3IyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU1vdXNlU2Nh
bGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVj
dG9yMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBQYXJhbXMiICwi
cGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1z
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1bHRzIiAsInBhcmFtdHlwZSI6ICJz
dHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092ZXJsYXkiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxOZXdGb2N1c092
ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24i
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVsVG8iICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVy
bGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVE
aXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlSYXciLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5IZWlnaHQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXB0
aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92
ZXJsYXlGcm9tRmlsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVyZUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBO
YXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRl
eHR1cmVUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQ29sb3JTcGFjZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4
dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0
aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhlaWdodCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlRGFzaGJvYXJkT3Zlcmxh
eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFRodW1ibmFpbEhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IklzRGFzaGJvYXJkVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJ
ZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93RGFzaGJvYXJkIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
U2hvd0tleWJvYXJkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlSW5wdXRNb2Rl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRl
eHRJbnB1dExpbmVNb2RlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRGVzY3JpcHRpb24i
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVu
Q2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmRGb3JPdmVybGF5IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1v
ZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFk
VGV4dElucHV0TGluZU1vZGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJvYXJkVGV4dCIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtleWJvYXJkIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFj
a2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUmVjdDJfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2siLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE1hc2tQcmlt
aXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5OdW1NYXNrUHJpbWl0
aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2FnZU92ZXJsYXkiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENhcHRpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjBU
ZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjNUZXh0IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFJlbmRlck1v
ZGVsX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVy
TW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1v
ZGVsX3QgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVJlbmRlck1vZGVsIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
X0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVyZUlkIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
cFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90ICoqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJS
ZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkZyZWVUZXh0dXJlIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkVGV4dHVy
ZUQzRDExX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVy
ZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKioifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjog
InZyOjpUZXh0dXJlSURfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEc3RUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRl
eHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExVGV4dHVyZTJEIiAsInBhcmFtdHlw
ZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxO
YW1lIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbEluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVy
TW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbENvdW50IiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21wb25l
bnRDb3VudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENv
bXBvbmVudE5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29t
cG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZUxlbiIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50QnV0dG9uTWFzayIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENvbXBvbmVudFN0YXRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENv
bXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHZyOjpWUkNv
bnRyb2xsZXJTdGF0ZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwU3RhdGUiICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbXBvbmVudFN0YXRlIiAsInBhcmFt
dHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkwiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAg
ICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWlsVVJMTGVuIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hS
ZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuT3JpZ2luYWxQYXRoTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1v
ZGVsRXJyb3IifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk5vdGlmaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNyZWF0ZU5vdGlmaWNhdGlv
biIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25UeXBl
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAic3R5bGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBJbWFnZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3RpZmljYXRpb25CaXRtYXBfdCAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlvbklkIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW1v
dmVOb3RpZmljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJOb3RpZmljYXRp
b25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAibm90
aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0
aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZv
cmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldEJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdz
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
dHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMyX3QifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
Y3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRTdHJpbmciLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEJvb2wi
LAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0
aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUi
OiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5WYWx1ZUxlbiIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlJlbW92ZUtleUluU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGlu
Z3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSG9va1NjcmVlbnNob3QiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBTdXBwb3J0ZWRUeXBlcyIgLCJhcnJh
eV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OkVWUlNjcmVlbnNo
b3RUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUi
OiAiaW50In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
Y3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNo
b3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmaWxlbmFt
ZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFtZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNjaEZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxQcm9ncmVz
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJUYWtl
U3RlcmVvU2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNo
b3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91
dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU3VibWl0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
c2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNvdXJjZVByZXZpZXdGaWxl
bmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZXNvdXJjZXMiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNvdXJjZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291
cmNlcyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVzb3VyY2VGdWxsUGF0aCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQ
YXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci1d
Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNhMTBmOTUxZGM1NjM5M2RjYWM5YmI4MGU4MzQyMGJjNGE5MTUzYjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NjkgKzAsMCBAQAot
Ly89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24sIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IEhlYWRlciBmb3IgZmxhdHRl
ZCBTdGVhbUFQSS4gVXNlIHRoaXMgZm9yIGJpbmRpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzLgotLy8g
VGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBpdC4KLS8vCi0vLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLSNpZm5kZWYgX19PUEVOVlJfQVBJX0ZMQVRfSF9fCi0jZGVmaW5l
IF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotI2lmIGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQo
IF9fY2xhbmdfXyApCi0jcHJhZ21hIG9uY2UKLSNlbmRpZgotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LSNkZWZpbmUgRVhURVJOX0MgZXh0ZXJuICJDIgotI2Vsc2UKLSNkZWZpbmUgRVhURVJOX0MKLSNl
bmRpZgotCi0jZGVmaW5lIE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFIF9fc3RkY2FsbAotCi0vLyBP
UEVOVlIgQVBJIGV4cG9ydCBtYWNybwotI2lmIGRlZmluZWQoIF9XSU4zMiApICYmICFkZWZpbmVk
KCBfWDM2MCApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCi0gICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2RlY2xzcGVjKCBkbGxleHBvcnQgKQotICAgICAg
ICNlbGlmIGRlZmluZWQoIE9QRU5WUl9BUElfTk9ETEwgKQotICAgICAgICNkZWZpbmUgU19BUEkg
RVhURVJOX0MKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZpbmUgU19BUEkgZXh0ZXJuICJDIiBf
X2RlY2xzcGVjKCBkbGxpbXBvcnQgKSAKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBP
UlRTCi0jZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5W
Ul9BUElfRVhQT1JUUyApCi0gICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2F0dHJpYnV0
ZV9fICgodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZp
bmUgU19BUEkgRVhURVJOX0MKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBPUlRTCi0j
ZWxzZSAvLyAhV0lOMzIKLSAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkK
LSAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2Vsc2UKLSAgICAgICAjZGVm
aW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUwot
I2VuZGlmCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2lmIGRlZmluZWQoIF9fV0lOMzIgKQot
dHlwZWRlZiBjaGFyIGJvb2w7Ci0jZWxzZQotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbmRpZgot
Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVp
bnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotCi0KLS8vIE9wZW5WUiBDb25zdGFudHMKLQotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAz
Mjc2ODsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRleF9I
bWQgPSAwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4VHJhY2tlZERldmljZUNv
dW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5k
ZXhPdGhlciA9IDQyOTQ5NjcyOTQ7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFj
a2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gNDI5NDk2NzI5NTsKLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuSW52YWxpZFByb3BlcnR5VGFnID0gMDsKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50
IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU3Ry
aW5nUHJvcGVydHlUYWcgPSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1kTWF0
cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1k
TWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
SG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyA9IDMwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOwotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplID0gMzI3Njg7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQg
PSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcga191bE92ZXJsYXlIYW5kbGVJbnZhbGlk
ID0gMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blNjcmVlbnNob3RIYW5kbGVJbnZh
bGlkID0gMDsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lz
dGVtXzAxNSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9u
ID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJUcmFj
a2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENhbWVyYV8wMDMiOwotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGludCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0hvbWVBcHAgPSAidnIvaG9tZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVfdGhlYXRl
ciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFw
cGxpY2F0aW9uc18wMDYiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJDaGFwZXJvbmVfVmVyc2lv
biA9ICJJVlJDaGFwZXJvbmVfMDAzIjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25l
U2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAiOwotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4TmFtZUxlbmd0aCA9IDEyODsK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVzQ291bnQgPSAzMjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZST3ZlcmxheV9WZXJzaW9u
ID0gIklWUk92ZXJsYXlfMDE0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxl
cl9Db21wb25lbnRfR0RDMjAxNSA9ICJnZGMyMDE1IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNlIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwID0gInRpcCI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0g
InN0YXR1cyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0g
IklWUlJlbmRlck1vZGVsc18wMDUiOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTm90
aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUk5vdGlm
aWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKLXN0YXRpYyBjb25z
dCBjaGFyICogSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUht
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0
cmluZyA9ICJmb3JjZWREcml2ZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZS
X0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRl
YnVnUHJvY2Vzc1BpcGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJs
ZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVEaXN0b3J0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0gImRpc3BsYXlEZWJ1Z1giOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAi
ZGlzcGxheURlYnVnWSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VuZFN5
c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sID0gInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xl
dmVsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBk
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9
ICJiYWNrZ3JvdW5kIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24i
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERv
bWVSYWRpdXMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9T
dHJpbmcgPSAiZ3JpZENvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Q
bGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2UiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAi
YWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZp
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRf
SW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zs
b2F0ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFz
ZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9h
dCA9ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVj
dGlvbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rp
b25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9q
ZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJh
ZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1p
cnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JW
aWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENv
bXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21B
cHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5h
YmxlSG9tZUFwcCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2V0SW5pdGlh
bERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7Ci1zdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMy
ID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8iOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0
aG91c2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVf
Qm9vbCA9ICJkaXNhYmxlaW11IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3Vz
ZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50MzIg
PSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0
aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7Ci1z
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJo
aXN0b3J5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZl
cl9udWxsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3Ry
aW5nID0gInNlcmlhbE51bWJlciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndpbmRvd1giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5kb3dIZWlnaHQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJl
bmRlcldpZHRoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRf
SW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9T
ZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxv
YXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJ
bnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5
c09uVG9wIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6
ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3RzIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAi
c2NyZWVuc2hvdFR5cGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3RpZmljYXRpb25z
X1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX05v
dGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLXN0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3Jp
YWxDb21wbGV0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NjYWxl
WCA9ICJTY2FsZVgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVm
dFggPSAiT2Zmc2V0TGVmdFgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9P
ZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fy
bk9ubHlPbmNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0
b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfVGVzdERhdGFfRmxvYXQgPSAicGVyZlRlc3REYXRh
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAi
Y29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91
bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29s
bGlzaW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHND
ZW50ZXJNYXJrZXJPbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9
ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29s
b3JHYW1tYVIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29s
bGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRz
X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxl
Q2FtZXJhRm9yUm9vbVZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91
bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAiY2Ft
ZXJhQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFf
Qm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1l
cmFfQm91bmRzU3RyZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5YmFj
a0RldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNl
X1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1
ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZp
Y2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9T
dHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9h
dWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1R1cm5PZmZTY3JlZW5z
VGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5P
ZmZDb250cm9sbGVyc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxl
RGFzaGJvYXJkIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1v
ZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfbW9kZWxz
a2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Ry
aXZlcl9FbmFibGVfQm9vbCA9ICJlbmFibGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTY3Jl
ZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3RzXzAwMSI7Ci1zdGF0aWMgY29uc3QgY2hh
ciAqIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEiOwotCi0vLyBPcGVu
VlIgRW51bXMKLQotdHlwZWRlZiBlbnVtIEVWUkV5ZQotewotICAgICAgIEVWUkV5ZV9FeWVfTGVm
dCA9IDAsCi0gICAgICAgRVZSRXllX0V5ZV9SaWdodCA9IDEsCi19IEVWUkV5ZTsKLQotdHlwZWRl
ZiBlbnVtIEVUZXh0dXJlVHlwZQotewotICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9E
aXJlY3RYID0gMCwKLSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwK
LSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfVnVsa2FuID0gMiwKLSAgICAgICBFVGV4
dHVyZVR5cGVfVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywKLSAgICAgICBFVGV4dHVyZVR5cGVf
VGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwKLX0gRVRleHR1cmVUeXBlOwotCi10eXBlZGVmIGVu
dW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0F1dG8gPSAw
LAotICAgICAgIEVDb2xvclNwYWNlX0NvbG9yU3BhY2VfR2FtbWEgPSAxLAotICAgICAgIEVDb2xv
clNwYWNlX0NvbG9yU3BhY2VfTGluZWFyID0gMiwKLX0gRUNvbG9yU3BhY2U7Ci0KLXR5cGVkZWYg
ZW51bSBFVHJhY2tpbmdSZXN1bHQKLXsKLSAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdS
ZXN1bHRfVW5pbml0aWFsaXplZCA9IDEsCi0gICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgRVRyYWNraW5nUmVz
dWx0X1RyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgPSAxMDEsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgPSAyMDAsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSA9IDIwMSwK
LX0gRVRyYWNraW5nUmVzdWx0OwotCi10eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VDbGFzcwot
ewotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQg
PSAwLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0hNRCA9
IDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfQ29udHJv
bGxlciA9IDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIgPSAzLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERl
dmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwKLX0gRVRyYWNrZWREZXZpY2VDbGFzczsK
LQotdHlwZWRlZiBlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0gMCwKLSAgICAg
ICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9
IDEsCi0gICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVf
UmlnaHRIYW5kID0gMiwKLX0gRVRyYWNrZWRDb250cm9sbGVyUm9sZTsKLQotdHlwZWRlZiBlbnVt
IEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW5fVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsCi0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW5fVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nID0gMSwKLSAgICAgICBFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbl9UcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0gMiwKLX0gRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW47Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tlZERldmljZVByb3Bl
cnR5Ci17Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ludmFsaWQgPSAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3Ry
aW5nID0gMTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTW9kZWxOdW1i
ZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vy
aWFsTnVtYmVyX1N0cmluZyA9IDEwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgPSAxMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgPSAxMDA1LAotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9T
dHJpbmcgPSAxMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJkd2Fy
ZVJldmlzaW9uX1N0cmluZyA9IDEwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmluZyA9IDEwMDgsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmlu
ZyA9IDEwMDksCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUlzV2ly
ZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rl
dmljZUlzQ2hhcmdpbmdfQm9vbCA9IDEwMTEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKLSAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCA9
IDEwMTMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sID0gMTAxNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgPSAxMDE1LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQgPSAxMDE3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZVZl
cnNpb25fVWludDY0ID0gMTAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RlBHQVZlcnNpb25fVWludDY0ID0gMTAxOSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfVlJDVmVyc2lvbl9VaW50NjQgPSAxMDIwLAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0gMTAyMSwKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgPSAxMDIz
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVT
eXN0ZW1XaXRoSG1kX0Jvb2wgPSAxMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0gMTAyNSwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgPSAx
MDI2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VDYW5Qb3dlck9m
Zl9Cb29sID0gMTAyNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdh
cmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2xhc3NfSW50MzIgPSAxMDI5LAotICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9IYXNDYW1lcmFfQm9vbCA9IDEwMzAsCi0gICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJl
ZF9Cb29sID0gMTAzMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVml2ZVN5
c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgPSAxMDMzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wgPSAyMDAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zX0Zsb2F0ID0gMjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgPSAyMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ID0gMjAw
NSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUZpcm13YXJlVmVy
c2lvbl9VaW50NjQgPSAyMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9J
c09uRGVza3RvcF9Cb29sID0gMjAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCA9IDIwMDksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ID0gMjAxMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmlu
ZyA9IDIwMTIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlUmlnaHRfU3RyaW5nID0gMjAxMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0VkaWRQcm9kdWN0SURfSW50MzIgPSAyMDE1LAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFUb0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgPSAy
MDE2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NUeXBlX0lu
dDMyID0gMjAxNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdD
T2Zmc2V0X0Zsb2F0ID0gMjAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RGlzcGxheUdDU2NhbGVfRmxvYXQgPSAyMDE5LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyA9IDIwMjEsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIs
Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9h
dCA9IDIwMjMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJS
aWdodFVfRmxvYXQgPSAyMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9M
ZW5zQ2VudGVyUmlnaHRWX0Zsb2F0ID0gMjAyNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9
IDIwMjcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJl
RGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgPSAyMDMw
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDIwMzEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F1
ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyID0gMjAzMywKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9m
Vmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29s
ID0gMjAzNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgPSAyMDM3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgPSAyMDM5LAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0lu
dDMyID0gMjA0MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1D
SW1hZ2VEYXRhX0JpbmFyeSA9IDIwNDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgPSAyMDQyLAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyA9IDMwMDAsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAw
MSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczBUeXBlX0ludDMyID0g
MzAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczFUeXBlX0ludDMy
ID0gMzAwMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczJUeXBlX0lu
dDMyID0gMzAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczNUeXBl
X0ludDMyID0gMzAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczRU
eXBlX0ludDMyID0gMzAwNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29u
dHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCA9IDQwMDAsCi0gICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0g
NDAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0ID0gNDAwMywKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgPSA0MDA0
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11
bU1ldGVyc19GbG9hdCA9IDQwMDUsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X01vZGVMYWJlbF9TdHJpbmcgPSA0MDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5n
X1N0cmluZyA9IDUwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nID0g
NTAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERl
dmljZVJlYWR5QWxlcnRfU3RyaW5nID0gNTAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCi0gICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5
X1N0cmluZyA9IDUwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgPSA1MDA4LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgPSA1MTAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kID0gNTE1MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVXNlckNv
bmZpZ1BhdGhfU3RyaW5nID0gNjAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kID0g
MTA5OTksCi19IEVUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IKLXsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFBy
b3BfU3VjY2VzcyA9IDAsCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9w
X1dyb25nRGF0YVR5cGUgPSAxLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2Vk
UHJvcF9Xcm9uZ0RldmljZUNsYXNzID0gMiwKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvcl9UcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAotICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlID0gNSwKLSAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0gNiwKLSAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5
RGV2aWNlID0gNywKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfU3Ry
aW5nRXhjZWVkc01heGltdW1MZW5ndGggPSA4LAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJv
cl9UcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvcl9UcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkID0gMTAsCi0gICAgICAgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gPSAxMSwKLX0gRVRy
YWNrZWRQcm9wZXJ0eUVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU3VibWl0RmxhZ3MKLXsKLSAg
ICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfRGVmYXVsdCA9IDAsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAxLAotICAgICAgIEVW
UlN1Ym1pdEZsYWdzX1N1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDIsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X1Jlc2VydmVkID0gNCwKLX0gRVZSU3VibWl0RmxhZ3M7Ci0KLXR5cGVkZWYg
ZW51bSBFVlJTdGF0ZQotewotICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfVW5kZWZpbmVkID0gLTEs
Ci0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9PZmYgPSAwLAotICAgICAgIEVWUlN0YXRlX1ZSU3Rh
dGVfU2VhcmNoaW5nID0gMSwKLSAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1NlYXJjaGluZ19BbGVy
dCA9IDIsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9SZWFkeSA9IDMsCi0gICAgICAgRVZSU3Rh
dGVfVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9Ob3RS
ZWFkeSA9IDUsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TdGFuZGJ5ID0gNiwKLSAgICAgICBF
VlJTdGF0ZV9WUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCi19IEVWUlN0YXRlOwotCi10eXBl
ZGVmIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm9u
ZSA9IDAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZUFjdGl2YXRl
ZCA9IDEwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3Rp
dmF0ZWQgPSAxMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgPSAxMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgPSAxMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
VHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfRW50ZXJTdGFuZGJ5TW9kZSA9IDEwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9M
ZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNr
ZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEwOCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9X
YXRjaGRvZ1dha2VVcFJlcXVlc3RlZCA9IDEwOSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgPSAxMTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfUHJvcGVydHlDaGFuZ2VkID0gMTExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1
dHRvblByZXNzID0gMjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVG91Y2ggPSAyMDIs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVW50b3VjaCA9IDIwMywKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfTW91c2VCdXR0b25Eb3duID0gMzAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vdXNlQnV0dG9uVXAgPSAzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
Rm9jdXNFbnRlciA9IDMwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Gb2N1c0xlYXZl
ID0gMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Njcm9sbCA9IDMwNSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVyZWQgPSA0MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X1NjZW5lRm9jdXNHYWluZWQgPSA0MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
U2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQgPSA0MDQsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfU2NlbmVGb2N1c0NoYW5nZWQgPSA0MDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
SW5wdXRGb2N1c0NoYW5nZWQgPSA0MDYsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Nl
bmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzID0gNDExLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9PdmVybGF5SGlkZGVuID0gNTAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZEFjdGl2YXRlZCA9IDUwMiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkID0gNTA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZFJlcXVlc3RlZCA9IDUwNSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXNldERh
c2hib2FyZCA9IDUwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZW5kZXJUb2FzdCA9
IDUwNywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUxvYWRlZCA9IDUwOCwKLSAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEwLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgPSA1MTEsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgPSA1MTIsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biA9IDUxNCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VGYWlsZWQgPSA1MTcsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgsCi0gICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgPSA1MjAsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFRha2VuID0gNTIxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgPSA1MjIsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkID0gNTIzLAotICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc1RvRGFzaGJvYXJkID0gNTI0LAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2Vk
ID0gNTI1LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9
IDYwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuID0g
NjAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbkludGVy
YWN0aW9uID0gNjAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9E
ZXN0cm95ZWQgPSA2MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdCA9IDcwMCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qcm9jZXNzUXVpdCA9IDcwMSwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ID0gNzAyLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXRBY2tub3dsZWRnZWQgPSA3MDMsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCA9IDgwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgPSA4MDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNo
YW5nZWQgPSA4MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VS
ZXNldCA9IDgwNCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2
ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQmFja2dyb3VuZFNl
dHRpbmdIYXNDaGFuZ2VkID0gODUwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NhbWVy
YVNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
UmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MywKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTQsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCA9IDEwMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0gMTEwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkID0gMTEwMSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9LZXlib2FyZENsb3NlZCA9IDEyMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkRG9uZSA9IDEyMDIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCA9IDEzMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCA9IDEzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25MaXN0
VXBkYXRlZCA9IDEzMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25N
aW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0
aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duID0gMTQwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0
MDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3Vu
ZHNTaG93biA9IDE0MTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNIaWRkZW4gPSAxNDExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRlb1N0cmVhbSA9IDE1
MDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X0VuYWJsZUNhcHR1cmUgPSAxNjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSA9IDE2MDEsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgPSAxNjAyLAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCA9IDE2NTAs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3Rh
cnQgPSAxMDAwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVjaWZpY19S
ZXNlcnZlZF9FbmQgPSAxOTk5OSwKLX0gRVZSRXZlbnRUeXBlOwotCi10eXBlZGVmIGVudW0gRURl
dmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZl
bF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLAotICAgICAgIEVEZXZpY2VBY3Rpdml0
eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwKLSAgICAg
ICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFj
dGlvbl9UaW1lb3V0ID0gMiwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfSBFRGV2aWNlQWN0aXZpdHlMZXZlbDsKLQotdHlw
ZWRlZiBlbnVtIEVWUkJ1dHRvbklkCi17Ci0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N5
c3RlbSA9IDAsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9
IDEsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0dyaXAgPSAyLAotICAgICAgIEVWUkJ1
dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0xlZnQgPSAzLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9EUGFkX1VwID0gNCwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9SaWdo
dCA9IDUsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfRG93biA9IDYsCi0gICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0EgPSA3LAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
QXhpczAgPSAzMiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczEgPSAzMywKLSAg
ICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczIgPSAzNCwKLSAgICAgICBFVlJCdXR0b25J
ZF9rX0VCdXR0b25fQXhpczMgPSAzNSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhp
czQgPSAzNiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCA9
IDMyLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAzMywK
LSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgPSAyLAotICAgICAg
IEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9NYXggPSA2NCwKLX0gRVZSQnV0dG9uSWQ7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VC
dXR0b25fTGVmdCA9IDEsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9SaWdo
dCA9IDIsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9NaWRkbGUgPSA0LAot
fSBFVlJNb3VzZUJ1dHRvbjsKLQotdHlwZWRlZiBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsK
LSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0g
MCwKLSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2Ug
PSAxLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTWF4
ID0gMywKLX0gRUhpZGRlbkFyZWFNZXNoVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQotewotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250cm9sbGVy
QXhpc19Ob25lID0gMCwKLSAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250
cm9sbGVyQXhpc19Kb3lzdGljayA9IDIsCi0gICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tf
ZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAzLAotfSBFVlJDb250cm9sbGVyQXhpc1R5cGU7Ci0K
LXR5cGVkZWYgZW51bSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlCi17Ci0gICAgICAgRVZS
Q29udHJvbGxlckV2ZW50T3V0cHV0VHlwZV9Db250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMg
PSAwLAotICAgICAgIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50
T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZTsKLQot
dHlwZWRlZiBlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQotewotICAgICAgIEVDb2xsaXNpb25C
b3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBF
Q29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUg
PSAxLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxF
X1NRVUFSRVMgPSAyLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9OT05FID0gNCwKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5
bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19IEVDb2xsaXNpb25Cb3VuZHNT
dHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlFcnJvcgotewotICAgICAgIEVWUk92ZXJs
YXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob25lID0gMCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfVW5rbm93bk92ZXJsYXkgPSAxMCwKLSAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZEhhbmRsZSA9IDExLAotICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgRVZST3Zl
cmxheUVycm9yX1ZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkID0gMTMsCi0gICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5cGUgPSAx
NCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyA9IDE1
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9OYW1lVG9vTG9uZyA9IDE2
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlJblVzZSA9IDE3LAot
ICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUg
PSAxOCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNr
ZWREZXZpY2UgPSAxOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwLAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJv
cl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCA9IDIyLAotICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMjMsCi0gICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX1VuYWJsZVRvTG9hZEZpbGUgPSAyNSwKLSAgICAgICBFVlJP
dmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgPSAyNiwKLSAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciA9IDI3LAotICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMg
PSAyOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSA9IDMwLAotfSBFVlJPdmVybGF5RXJyb3I7Ci0KLXR5cGVkZWYgZW51bSBFVlJBcHBsaWNh
dGlvblR5cGUKLXsKLSAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdGhl
ciA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU2NlbmUgPSAx
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LAotICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsCi0g
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fTWF4ID0gNywKLX0gRVZSQXBw
bGljYXRpb25UeXBlOwotCi10eXBlZGVmIGVudW0gRVZSRmlybXdhcmVFcnJvcgotewotICAgICAg
IEVWUkZpcm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIEVWUkZp
cm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX1N1Y2Nlc3MgPSAxLAotICAgICAgIEVWUkZpcm13
YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfSBFVlJGaXJtd2FyZUVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uRXJyb3IKLXsKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEw
MCwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX05vdGlm
aWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAgIEVWUk5v
dGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFs
cmVhZHlFeGlzdHMgPSAxMDMsCi19IEVWUk5vdGlmaWNhdGlvbkVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX05vbmUg
PSAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Vbmtub3duID0gMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEw
MCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3Jy
dXB0ID0gMTAxLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50
RExMTm90Rm91bmQgPSAxMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
RmlsZU5vdEZvdW5kID0gMTAzLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0ZhY3RvcnlOb3RGb3VuZCA9IDEwNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkID0gMTA3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkID0gMTA5LAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kID0g
MTEwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCA9
IDExMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggPSAx
MTIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90
V3JpdGFibGUgPSAxMTMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfQXBw
SW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfUmV0cnkgPSAxMTUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5p
dENhbmNlbGVkQnlVc2VyID0gMTE2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkID0gMTE4LAotICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biA9IDExOSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgPSAxMjEsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBv
c2l0b3IgPSAxMjIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90QXZh
aWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9JbnRlcm5hbCA9IDEyNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSA9IDEyNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgPSAx
MjgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRv
Z05vdFN1cHBvcnRlZCA9IDEyOSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlID0gMTMwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzID0gMTMxLAotICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0g
MTMyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90
Rm91bmQgPSAxMzMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmRTdGFydHVwRmFpbGVkID0gMTM0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9E
cml2ZXJfVW5rbm93biA9IDIwMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0htZFVua25vd24gPSAyMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9Ob3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9SdW50aW1lT3V0T2ZEYXRlID0gMjA0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Ecml2ZXJfSG1kSW5Vc2UgPSAyMDUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkID0gMjA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkID0gMjA3LAotICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kID0gMjA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
cml2ZXJJZE91dE9mQm91bmRzID0gMjExLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkID0gMjEyLAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgPSAzMDEsCi0gICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgPSAzMDIsCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywK
LSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCA9IDMw
NCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCA9IDMwNSwKLSAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVk
ID0gMzA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvcklu
dmFsaWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWly
ZWQgPSA0MDEsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSA9IDQwMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgPSA0MDQsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29u
bmVjdFRvT2N1bHVzUnVudGltZSA9IDEwMDAsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlID0gMTEwMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyA9IDExMDMsCi0gICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZp
Z1Rvb0JpZyA9IDExMDQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsID0gMTEwNSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiA9
IDExMDYsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRh
dGFTdGFydCA9IDExMDgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCA9IDExMDksCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
R2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgPSAxMTExLAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2Vy
RGF0YUVycm9yID0gMTExMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5k
ID0gMjAwMCwKLX0gRVZSSW5pdEVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdFR5
cGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX05vbmUgPSAw
LAotICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ubyA9IDEsCi0g
ICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAg
ICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1hcCA9IDMsCi0gICAg
ICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEg
PSA1LAotfSBFVlJTY3JlZW5zaG90VHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
c19WUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKLSAgICAgICBFVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNf
VlIgPSAxLAotfSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXM7Ci0KLXR5cGVkZWYgZW51
bSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IKLXsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCA9IDEwMCwKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSA9
IDEwMSwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9IDEwMiwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzID0gMTAzLAotICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlID0gMTA0
LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob3RT
dXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAotICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmlu
Z0ZhaWx1cmUgPSAxMDcsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX1N0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkID0gMTA5LAot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
U2hhcmVkVGV4dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVy
ZUZhaWx1cmUgPSAxMTIsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUgPSAxMTMsCi0gICAgICAgRVZSVHJhY2tlZENhbWVy
YUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1l
QnVmZmVyU2l6ZSA9IDExNSwKLX0gRVZSVHJhY2tlZENhbWVyYUVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsCi0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0
b3J0ZWQgPSAxLAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCA9IDIsCi0gICAgICAgRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZV9NQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTID0gMywKLX0gRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLXsKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5
RXhpc3RzID0gMTAwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX05vTWFuaWZlc3QgPSAxMDEsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxp
Y2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgRVZSQXBw
bGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0lQQ0ZhaWxl
ZCA9IDEwNSwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9B
cHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEwNywKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24gPSAx
MDgsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNo
RmFpbGVkID0gMTA5LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0gMTEwLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25R
dWl0dGluZyA9IDExMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25F
cnJvcl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
X1ZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBsYXRlID0gMTE0LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxsID0gMjAwLAotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Byb3BlcnR5Tm90U2V0ID0g
MjAxLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25v
d25Qcm9wZXJ0eSA9IDIwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRp
b25FcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAotfSBFVlJBcHBsaWNhdGlvbkVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotewotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hU
eXBlX1N0cmluZyA9IDExLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNh
dGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nID0gMTIsCi0gICAgICAgRVZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmcg
PSAxMywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Bcmd1bWVudHNfU3RyaW5nID0gMTQsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9W
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyA9IDE1LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rlc2NyaXB0aW9uX1N0cmluZyA9IDUw
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05l
d3NVUkxfU3RyaW5nID0gNTEsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyA9IDUyLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9TdHJpbmcgPSA1MywKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hi
b2FyZE92ZXJsYXlfQm9vbCA9IDYwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJB
cHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCA9IDYxLAotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgPSA2
MiwKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9J
c0ludGVybmFsX0Jvb2wgPSA2MywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgPSA3MCwKLX0gRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0
YXRlCi17Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fTm9uZSA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0
aW5nRm9yRXh0ZXJuYWxMYXVuY2ggPSAxMSwKLSAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRp
b25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVuY2hlZCA9IDIwLAotfSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZTsKLQotdHlwZWRlZiBlbnVtIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0g
MSwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCi0gICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1v
dmVkID0gMTAxLAotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNl
U3RhdGlvblJlbW92ZWQgPSAxMDIsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9X
YXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvciA9IDIwMCwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIwMSwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsCi0gICAgICAg
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsCi0g
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZh
bGlkID0gMjA0LAotfSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlOwotCi10eXBlZGVmIGVudW0g
RUNoYXBlcm9uZUNvbmZpZ0ZpbGUKLXsKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9MaXZl
ID0gMSwKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9UZW1wID0gMiwKLX0gRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGU7Ci0KLXR5cGVkZWYgZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKLXsKLSAg
ICAgICBFQ2hhcGVyb25lSW1wb3J0RmxhZ3NfRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0g
MSwKLX0gRUNoYXBlcm9uZUltcG9ydEZsYWdzOwotCi10eXBlZGVmIGVudW0gRVZSQ29tcG9zaXRv
ckVycm9yCi17Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX05v
bmUgPSAwLAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9SZXF1
ZXN0RmFpbGVkID0gMSwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJy
b3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3Jf
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCi0gICAgICAgRVZSQ29tcG9z
aXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlID0gMTAyLAotICAgICAg
IEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Jc05vdFNjZW5lQXBwbGljYXRp
b24gPSAxMDMsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1Rl
eHR1cmVJc09uV3JvbmdEZXZpY2UgPSAxMDQsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAg
ICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1NoYXJlZFRleHR1cmVzTm90
U3VwcG9ydGVkID0gMTA2LAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JF
cnJvcl9JbmRleE91dE9mUmFuZ2UgPSAxMDcsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgPSAxMDgsCi19IEVWUkNvbXBvc2l0b3JF
cnJvcjsKLQotdHlwZWRlZiBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCi17Ci0gICAgICAgVlJP
dmVybGF5SW5wdXRNZXRob2RfTm9uZSA9IDAsCi0gICAgICAgVlJPdmVybGF5SW5wdXRNZXRob2Rf
TW91c2UgPSAxLAotfSBWUk92ZXJsYXlJbnB1dE1ldGhvZDsKLQotdHlwZWRlZiBlbnVtIFZST3Zl
cmxheVRyYW5zZm9ybVR5cGUKLXsKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3Zl
cmxheVRyYW5zZm9ybV9BYnNvbHV0ZSA9IDAsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlw
ZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1PdmVybGF5ID0g
MiwKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9UcmFj
a2VkQ29tcG9uZW50ID0gMywKLX0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZTsKLQotdHlwZWRlZiBl
bnVtIFZST3ZlcmxheUZsYWdzCi17Ci0gICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSA9IDAsCi0g
ICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVkID0gMSwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19S
R1NTNFggPSAyLAotICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0gMywKLSAg
ICAgICBWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0gICAgICAgVlJP
dmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUsCi0gICAgICAgVlJPdmVybGF5RmxhZ3Nf
U2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3Vj
aHBhZEV2ZW50cyA9IDcsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xs
V2hlZWwgPSA4LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRl
cm5hbFByb2Nlc3MgPSA5LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxs
ZWwgPSAxMCwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwK
LSAgICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLAotICAgICAgIFZST3ZlcmxheUZs
YWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhO
b25TY2VuZU92ZXJsYXlzID0gMTQsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFz
aGJvYXJkID0gMTUsCi19IFZST3ZlcmxheUZsYWdzOwotCi10eXBlZGVmIGVudW0gVlJNZXNzYWdl
T3ZlcmxheVJlc3BvbnNlCi17Ci0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRv
blByZXNzXzAgPSAwLAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18xID0gMSwKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9
IDIsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAot
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkg
PSA0LAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRl
Q2xpZW50T3ZlcmxheSA9IDUsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0FwcGxp
Y2F0aW9uUXVpdCA9IDYsCi19IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKLQotdHlwZWRlZiBl
bnVtIEVHYW1lcGFkVGV4dElucHV0TW9kZQotewotICAgICAgIEVHYW1lcGFkVGV4dElucHV0TW9k
ZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAgRUdhbWVwYWRUZXh0
SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAotICAgICAgIEVH
YW1lcGFkVGV4dElucHV0TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCA9IDIsCi19
IEVHYW1lcGFkVGV4dElucHV0TW9kZTsKLQotdHlwZWRlZiBlbnVtIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGUKLXsKLSAgICAgICBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlX2tfRUdhbWVwYWRU
ZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGVfa19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEsCi19
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGU7Ci0KLXR5cGVkZWYgZW51bSBFT3ZlcmxheURpcmVj
dGlvbgotewotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fVXAgPSAw
LAotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0g
ICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9MZWZ0ID0gMiwKLSAgICAg
ICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1JpZ2h0ID0gMywKLSAgICAgICBF
T3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0NvdW50ID0gNCwKLX0gRU92ZXJsYXlE
aXJlY3Rpb247Ci0KLXR5cGVkZWYgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZVR5cGUKLXsKLSAgICAgICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5
cGVfT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlID0gMCwKLSAgICAg
ICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGVfT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0gMSwKLX0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVUeXBlOwotCi10eXBlZGVmIGVudW0gRVZSUmVuZGVyTW9kZWxFcnJvcgotewot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vbmUgPSAwLAot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAx
MDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90U3Vw
cG9ydGVkID0gMjAwLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVy
cm9yX0ludmFsaWRBcmcgPSAzMDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vU2hhcGVzID0gMzAyLAotICAgICAgIEVWUlJlbmRlck1v
ZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzID0gMzAzLAotICAgICAg
IEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9
IDMwNCwKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0
aXBsZVRleHR1cmVzID0gMzA1LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJN
b2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgRVZS
UmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0g
MzA4LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0ludmFs
aWRUZXh0dXJlID0gNDAwLAotfSBFVlJSZW5kZXJNb2RlbEVycm9yOwotCi10eXBlZGVmIGVudW0g
RVZSQ29tcG9uZW50UHJvcGVydHkKLXsKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNv
bXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0gMSwKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0
eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9IDIsCi0gICAgICAgRVZSQ29tcG9uZW50
UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQgPSA0LAotICAgICAgIEVWUkNv
bXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVzc2VkID0gOCwKLSAgICAg
ICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzU2Nyb2xsZWQgPSAx
NiwKLX0gRVZSQ29tcG9uZW50UHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRp
b25UeXBlCi17Ci0gICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQgPSAwLAotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCi0gICAgICAgRVZSTm90aWZp
Y2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCi19IEVWUk5vdGlm
aWNhdGlvblR5cGU7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQotewotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0Nv
bnRhY3RfRGlzYWJsZWQgPSAyMDAsCi0gICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFj
dF9FbmFibGVkID0gMjAxLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0
aXZlID0gMjAyLAotfSBFVlJOb3RpZmljYXRpb25TdHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNl
dHRpbmdzRXJyb3IKLXsKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9O
b25lID0gMCwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9JUENGYWls
ZWQgPSAxLAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFp
bGVkID0gMiwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9SZWFkRmFp
bGVkID0gMywKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1Vu
c2V0U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsCi19IEVWUlNldHRpbmdzRXJyb3I7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Jf
VlJTY3JlZW5zaG90RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZS
U2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQgPSAxLAotICAgICAgIEVWUlNjcmVlbnNob3RF
cnJvcl9WUlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAotICAgICAg
IEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCA9IDEwMSwKLSAg
ICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwg
PSAxMDIsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX1NjcmVl
bnNob3RBbHJlYWR5SW5Qcm9ncmVzcyA9IDEwOCwKLX0gRVZSU2NyZWVuc2hvdEVycm9yOwotCi0K
LS8vIE9wZW5WUiB0eXBlZGVmcwotCi10eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRl
eF90OwotdHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwotdHlwZWRlZiB1aW50NjRf
dCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotdHlwZWRlZiB2b2lkICogZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlX3Q7Ci10eXBlZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50
X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgdWlu
dDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotdHlw
ZWRlZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLXR5cGVkZWYgdWludDY0X3QgVHJhY2tl
ZENhbWVyYUhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7Ci10
eXBlZGVmIHVpbnQzMl90IFZSQ29tcG9uZW50UHJvcGVydGllczsKLXR5cGVkZWYgaW50MzJfdCBU
ZXh0dXJlSURfdDsKLXR5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLXR5cGVkZWYg
RVZSSW5pdEVycm9yIEhtZEVycm9yOwotdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKLXR5cGVkZWYg
RUNvbG9yU3BhY2UgQ29sb3JTcGFjZTsKLXR5cGVkZWYgRVRyYWNraW5nUmVzdWx0IEhtZFRyYWNr
aW5nUmVzdWx0OwotdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VDbGFz
czsKLXR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLXR5cGVkZWYgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBUcmFja2VkRGV2aWNlUHJvcGVydHk7
Ci10eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBUcmFja2VkUHJvcGVydHlFcnJvcjsKLXR5
cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190OwotdHlwZWRlZiBFVlJTdGF0ZSBW
UlN0YXRlX3Q7Ci10eXBlZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNT
dHlsZV90OwotdHlwZWRlZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci10eXBlZGVm
IEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOwotdHlwZWRlZiBFVlJDb21wb3NpdG9y
RXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7Ci10eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJvciBWUlNj
cmVlbnNob3RzRXJyb3I7Ci0KLS8vIE9wZW5WUiBTdHJ1Y3RzCi0KLXR5cGVkZWYgc3RydWN0IEht
ZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOyAvL2Zsb2F0WzNdWzRdCi19IEht
ZE1hdHJpeDM0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBm
bG9hdCBtWzRdWzRdOyAvL2Zsb2F0WzRdWzRdCi19IEhtZE1hdHJpeDQ0X3Q7Ci0KLXR5cGVkZWYg
c3RydWN0IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107IC8vZmxvYXRbM10KLX0g
SG1kVmVjdG9yM190OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBm
bG9hdCB2WzRdOyAvL2Zsb2F0WzRdCi19IEhtZFZlY3RvcjRfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SG1kVmVjdG9yM2RfdAotewotICAgICAgIGRvdWJsZSB2WzNdOyAvL2RvdWJsZVszXQotfSBIbWRW
ZWN0b3IzZF90OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOyAvL2Zsb2F0WzJdCi19IEhtZFZlY3RvcjJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgSG1k
UXVhdGVybmlvbl90Ci17Ci0gICAgICAgZG91YmxlIHc7Ci0gICAgICAgZG91YmxlIHg7Ci0gICAg
ICAgZG91YmxlIHk7Ci0gICAgICAgZG91YmxlIHo7Ci19IEhtZFF1YXRlcm5pb25fdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgSG1kQ29sb3JfdAotewotICAgICAgIGZsb2F0IHI7Ci0gICAgICAgZmxvYXQg
ZzsKLSAgICAgICBmbG9hdCBiOwotICAgICAgIGZsb2F0IGE7Ci19IEhtZENvbG9yX3Q7Ci0KLXR5
cGVkZWYgc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkNv
cm5lcnNbNF07IC8vc3RydWN0IHZyOjpIbWRWZWN0b3IzX3RbNF0KLX0gSG1kUXVhZF90OwotCi10
eXBlZGVmIHN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2
VG9wTGVmdDsKLSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX0gSG1k
UmVjdDJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBmbG9hdCByZlJlZFsyXTsgLy9mbG9hdFsyXQotICAgICAgIGZsb2F0IHJmR3JlZW5bMl07
IC8vZmxvYXRbMl0KLSAgICAgICBmbG9hdCByZkJsdWVbMl07IC8vZmxvYXRbMl0KLX0gRGlzdG9y
dGlvbkNvb3JkaW5hdGVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFRleHR1cmVfdAotewotICAgICAg
IHZvaWQgKiBoYW5kbGU7IC8vIHZvaWQgKgotICAgICAgIGVudW0gRVRleHR1cmVUeXBlIGVUeXBl
OwotICAgICAgIGVudW0gRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19IFRleHR1cmVfdDsKLQot
dHlwZWRlZiBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdAotewotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2VmVsb2NpdHk7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2QW5ndWxhclZl
bG9jaXR5OwotICAgICAgIGVudW0gRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICBib29sIGJQb3NlSXNWYWxpZDsKLSAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsK
LX0gVHJhY2tlZERldmljZVBvc2VfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRz
X3QKLXsKLSAgICAgICBmbG9hdCB1TWluOwotICAgICAgIGZsb2F0IHZNaW47Ci0gICAgICAgZmxv
YXQgdU1heDsKLSAgICAgICBmbG9hdCB2TWF4OwotfSBWUlRleHR1cmVCb3VuZHNfdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9u
SW1hZ2U7Ci0gICAgICAgc3RydWN0IFZrRGV2aWNlX1QgKiBtX3BEZXZpY2U7IC8vIHN0cnVjdCBW
a0RldmljZV9UICoKLSAgICAgICBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICogbV9wUGh5c2lj
YWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKgotICAgICAgIHN0cnVjdCBW
a0luc3RhbmNlX1QgKiBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAg
ICAgc3RydWN0IFZrUXVldWVfVCAqIG1fcFF1ZXVlOyAvLyBzdHJ1Y3QgVmtRdWV1ZV9UICoKLSAg
ICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbldp
ZHRoOwotICAgICAgIHVpbnQzMl90IG1fbkhlaWdodDsKLSAgICAgICB1aW50MzJfdCBtX25Gb3Jt
YXQ7Ci0gICAgICAgdWludDMyX3QgbV9uU2FtcGxlQ291bnQ7Ci19IFZSVnVsa2FuVGV4dHVyZURh
dGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgc3Ry
dWN0IElEM0QxMlJlc291cmNlICogbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNvdXJj
ZSAqCi0gICAgICAgc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIG1fcENvbW1hbmRRdWV1ZTsg
Ly8gc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqCi0gICAgICAgdWludDMyX3QgbV9uTm9kZU1h
c2s7Ci19IEQzRDEyVGV4dHVyZURhdGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Db250
cm9sbGVyX3QKLXsKLSAgICAgICB1aW50MzJfdCBidXR0b247Ci19IFZSRXZlbnRfQ29udHJvbGxl
cl90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4
OwotICAgICAgIGZsb2F0IHk7Ci0gICAgICAgdWludDMyX3QgYnV0dG9uOwotfSBWUkV2ZW50X01v
dXNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKLXsKLSAgICAgICBmbG9h
dCB4ZGVsdGE7Ci0gICAgICAgZmxvYXQgeWRlbHRhOwotICAgICAgIHVpbnQzMl90IHJlcGVhdENv
dW50OwotfSBWUkV2ZW50X1Njcm9sbF90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLSAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOwotICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKLSAgICAgICBmbG9h
dCBmVmFsdWVZRmlyc3Q7Ci0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBm
VmFsdWVZUmF3OwotfSBWUkV2ZW50X1RvdWNoUGFkTW92ZV90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0g
ICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19IFZSRXZlbnRfTm90aWZpY2F0aW9uX3Q7
Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWludDMyX3Qg
cGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7Ci19IFZS
RXZlbnRfUHJvY2Vzc190OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewot
ICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci19IFZSRXZlbnRfT3ZlcmxheV90OwotCi10
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVz
U3RhdGU7Ci19IFZSRXZlbnRfU3RhdHVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfS2V5
Ym9hcmRfdAotewotICAgICAgIGNoYXIgKiBjTmV3SW5wdXRbOF07IC8vY2hhcls4XQotICAgICAg
IHVpbnQ2NF90IHVVc2VyVmFsdWU7Ci19IFZSRXZlbnRfS2V5Ym9hcmRfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgVlJFdmVudF9JcGRfdAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX0gVlJFdmVu
dF9JcGRfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9DaGFwZXJvbmVfdAotewotICAgICAg
IHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7Ci0gICAgICAgdWludDY0X3QgbV9uQ3VycmVu
dFVuaXZlcnNlOwotfSBWUkV2ZW50X0NoYXBlcm9uZV90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWlu
dDY0X3QgcmVzZXJ2ZWQxOwotfSBWUkV2ZW50X1Jlc2VydmVkX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRlbGl0
eUxldmVsOwotfSBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewotICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0
ZW1NZW51OwotfSBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdDsKLQotdHlwZWRlZiBzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAg
ICAgdWludDMyX3QgdHlwZTsKLX0gVlJFdmVudF9TY3JlZW5zaG90X3Q7Ci0KLXR5cGVkZWYgc3Ry
dWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVz
czsKLX0gVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAg
IHVpbnQzMl90IHVuQXJnc0hhbmRsZTsKLX0gVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Owot
Ci10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fSBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZl
bnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlOwotfSBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
Y29udGFpbmVyOwotICAgICAgIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotfSBW
UkV2ZW50X1Byb3BlcnR5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsK
LSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90ICogcFZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVj
dCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci19
IEhpZGRlbkFyZWFNZXNoX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAot
ewotICAgICAgIGZsb2F0IHg7Ci0gICAgICAgZmxvYXQgeTsKLX0gVlJDb250cm9sbGVyQXhpc190
OwotCi10eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZV90Ci17Ci0gICAgICAgdWludDMy
X3QgdW5QYWNrZXROdW07Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOwotICAgICAg
IHVpbnQ2NF90IHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBzdHJ1Y3QgVlJDb250cm9sbGVyQXhp
c190IHJBeGlzWzVdOyAvL3N0cnVjdCB2cjo6VlJDb250cm9sbGVyQXhpc190WzVdCi19IFZSQ29u
dHJvbGxlclN0YXRlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRp
bmdzCi17Ci0gICAgICAgdWludDMyX3Qgc2l6ZTsKLSAgICAgICBib29sIGN1cnZlZDsKLSAgICAg
ICBib29sIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZTsKLSAgICAgICBmbG9hdCBkaXN0
YW5jZTsKLSAgICAgICBmbG9hdCBhbHBoYTsKLSAgICAgICBmbG9hdCB1T2Zmc2V0OwotICAgICAg
IGZsb2F0IHZPZmZzZXQ7Ci0gICAgICAgZmxvYXQgdVNjYWxlOwotICAgICAgIGZsb2F0IHZTY2Fs
ZTsKLSAgICAgICBmbG9hdCBncmlkRGl2czsKLSAgICAgICBmbG9hdCBncmlkV2lkdGg7Ci0gICAg
ICAgZmxvYXQgZ3JpZFNjYWxlOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IHRyYW5zZm9y
bTsKLX0gQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3M7Ci0KLXR5cGVkZWYgc3RydWN0IENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIGVudW0gRVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSBlRnJhbWVUeXBlOwotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotICAgICAg
IHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOwotICAgICAgIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVI
ZWFkZXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QKLXsKLSAgICAgICBj
aGFyICogcGNoS2V5OyAvLyBjb25zdCBjaGFyICoKLSAgICAgICBjaGFyICogcGNoVmFsdWU7IC8v
IGNvbnN0IGNoYXIgKgotfSBBcHBPdmVycmlkZUtleXNfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQ29t
cG9zaXRvcl9GcmFtZVRpbWluZwotewotICAgICAgIHVpbnQzMl90IG1fblNpemU7Ci0gICAgICAg
dWludDMyX3QgbV9uRnJhbWVJbmRleDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNl
bnRzOwotICAgICAgIHVpbnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fblJlcHJvamVjdGlvbkZs
YWdzOwotICAgICAgIGRvdWJsZSBtX2ZsU3lzdGVtVGltZUluU2Vjb25kczsKLSAgICAgICBmbG9h
dCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgZmxvYXQgbV9mbFBvc3RTdWJtaXRHcHVNczsK
LSAgICAgICBmbG9hdCBtX2ZsVG90YWxSZW5kZXJHcHVNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29t
cG9zaXRvclJlbmRlckdwdU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1
TXM7Ci0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7Ci0gICAgICAgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBmbG9hdCBtX2ZsUHJlc2VudENhbGxD
cHVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZvclByZXNlbnRDcHVNczsKLSAgICAgICBmbG9h
dCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2FsbGVk
TXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBtX2Zs
TmV3RnJhbWVSZWFkeU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRN
czsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOwotICAgICAgIGZsb2F0
IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IG1fSG1kUG9zZTsKLX0gQ29tcG9zaXRvcl9GcmFtZVRpbWluZzsKLQotdHlwZWRlZiBzdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAgICAgICB1aW50MzJfdCBtX25O
dW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVz
OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1M
b2FkaW5nOwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAg
ICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHVpbnQzMl90
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICB1aW50MzJfdCBtX25OdW1U
aW1lZE91dDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19IENvbXBvc2l0b3JfQ3VtdWxh
dGl2ZVN0YXRzOwotCi10eXBlZGVmIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNf
dAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdlNvdXJjZTsKLSAgICAgICBzdHJ1Y3Qg
SG1kVmVjdG9yM190IHZEaXJlY3Rpb247Ci0gICAgICAgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luOwotfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdDsKLQotdHlwZWRl
ZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190Ci17Ci0gICAgICAgc3RydWN0
IEhtZFZlY3RvcjNfdCB2UG9pbnQ7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Tm9ybWFs
OwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlVWczsKLSAgICAgICBmbG9hdCBmRGlzdGFu
Y2U7Ci19IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Ci17Ci0gICAgICAgZmxvYXQgbV9mbFRvcExlZnRY
OwotICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WTsKLSAgICAgICBmbG9hdCBtX2ZsV2lkdGg7Ci0g
ICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLX0gSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsKLSAgICAgICBmbG9h
dCBtX2ZsQ2VudGVyWDsKLSAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWTsKLSAgICAgICBmbG9hdCBt
X2ZsUmFkaXVzOwotfSBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKLXsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVsOwotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7Ci0gICAgICAgVlJDb21wb25lbnRQ
cm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfSBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IzX3QgdlBvc2l0aW9uOwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1h
bDsKLSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsgLy9mbG9hdFsyXQotfSBSZW5kZXJN
b2RlbF9WZXJ0ZXhfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
Ci17Ci0gICAgICAgdWludDE2X3QgdW5XaWR0aDsKLSAgICAgICB1aW50MTZfdCB1bkhlaWdodDsK
LSAgICAgICB1aW50OF90ICogcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fSBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVs
X3QKLXsKLSAgICAgICBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QgKiByVmVydGV4RGF0YTsg
Ly8gY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgdWludDMy
X3QgdW5WZXJ0ZXhDb3VudDsKLSAgICAgICB1aW50MTZfdCAqIHJJbmRleERhdGE7IC8vIGNvbnN0
IHVpbnQxNl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgVGV4
dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsKLX0gUmVuZGVyTW9kZWxfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wg
YlNjcm9sbFdoZWVsVmlzaWJsZTsKLX0gUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dDsKLQotdHlwZWRlZiBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICB2b2lk
ICogbV9wSW1hZ2VEYXRhOyAvLyB2b2lkICoKLSAgICAgICBpbnQzMl90IG1fbldpZHRoOwotICAg
ICAgIGludDMyX3QgbV9uSGVpZ2h0OwotICAgICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsK
LX0gTm90aWZpY2F0aW9uQml0bWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENPcGVuVlJDb250ZXh0
Ci17Ci0gICAgICAgaW50cHRyX3QgbV9wVlJTeXN0ZW07IC8vIGNsYXNzIHZyOjpJVlJTeXN0ZW0g
KgotICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVy
b25lICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6
SVZSQ2hhcGVyb25lU2V0dXAgKgotICAgICAgIGludHB0cl90IG1fcFZSQ29tcG9zaXRvcjsgLy8g
Y2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKgotICAgICAgIGludHB0cl90IG1fcFZST3ZlcmxheTsg
Ly8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgotICAgICAgIGludHB0cl90IG1fcFZSUmVzb3VyY2Vz
OyAvLyBjbGFzcyB2cjo6SVZSUmVzb3VyY2VzICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUlJlbmRl
ck1vZGVsczsgLy8gY2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqCi0gICAgICAgaW50cHRyX3Qg
bV9wVlJFeHRlbmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgot
ICAgICAgIGludHB0cl90IG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNzIHZyOjpJVlJTZXR0aW5ncyAq
Ci0gICAgICAgaW50cHRyX3QgbV9wVlJBcHBsaWNhdGlvbnM7IC8vIGNsYXNzIHZyOjpJVlJBcHBs
aWNhdGlvbnMgKgotICAgICAgIGludHB0cl90IG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xhc3Mg
dnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIGludHB0cl90IG1fcFZSU2NyZWVuc2hvdHM7
IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqCi19IENPcGVuVlJDb250ZXh0OwotCi0KLXR5
cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
LSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKLSAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OwotfSBWUkV2
ZW50X0RhdGFfdDsKLQotLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUgc2VydmVyIHRvIGFsbCBy
dW5uaW5nIGFwcGxpY2F0aW9ucyAqLwotc3RydWN0IFZSRXZlbnRfdAotewotICAgICAgIHVpbnQz
Ml90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KLSAgICAgICBUcmFja2VkRGV2aWNl
SW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7Ci0gICAgICAgZmxvYXQgZXZlbnRBZ2VTZWNvbmRz
OwotICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgYXMg
aXRzIHNpemUgaXMgdmFyaWFibGUKLSAgICAgICBWUkV2ZW50X0RhdGFfdCBkYXRhOwotfTsKLQot
Ci10eXBlZGVmIHVuaW9uCi17Ci0gICAgICAgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1f
UmVjdGFuZ2xlOwotICAgICAgIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKLX0g
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLXN0cnVjdCBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKLXsKLSAgICAgICBFVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCBtX1ByaW1pdGl2ZTsKLX07Ci0K
LQotLy8gT3BlblZSIEZ1bmN0aW9uIFBvaW50ZXIgVGFibGVzCi0KLXN0cnVjdCBWUl9JVlJTeXN0
ZW1fRm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRS
ZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUpKHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3Qg
KiBwbkhlaWdodCk7Ci0gICAgICAgc3RydWN0IEhtZE1hdHJpeDQ0X3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRQcm9qZWN0aW9uTWF0cml4KShFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJa
LCBmbG9hdCBmRmFyWik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByb2plY3Rpb25SYXcpKEVWUkV5ZSBlRXllLCBmbG9hdCAqIHBmTGVmdCwgZmxvYXQgKiBwZlJp
Z2h0LCBmbG9hdCAqIHBmVG9wLCBmbG9hdCAqIHBmQm90dG9tKTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcHV0ZURpc3RvcnRpb24pKEVWUkV5ZSBlRXllLCBmbG9h
dCBmVSwgZmxvYXQgZlYsIHN0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIHBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXMpOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0RXllVG9IZWFkVHJhbnNmb3JtKShFVlJFeWUgZUV5ZSk7Ci0gICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRpbWVTaW5jZUxhc3RWc3luYyko
ZmxvYXQgKiBwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWludDY0X3QgKiBwdWxGcmFtZUNvdW50
ZXIpOwotICAgICAgIGludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREM0Q5QWRh
cHRlckluZGV4KSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
WEdJT3V0cHV0SW5mbykoaW50MzJfdCAqIHBuQWRhcHRlckluZGV4KTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEaXNwbGF5T25EZXNrdG9wKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREaXNwbGF5VmlzaWJpbGl0eSkoYm9vbCBi
SXNWaXNpYmxlT25EZXNrdG9wKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50MzJf
dCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlJlc2V0U2VhdGVkWmVyb1Bvc2UpKCk7Ci0gICAgICAgc3RydWN0IEht
ZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTZWF0ZWRaZXJvUG9zZVRv
U3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSkoKTsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzKShFVHJhY2tlZERl
dmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVu
VHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZUluZGV4QXJy
YXlDb3VudCwgVHJhY2tlZERldmljZUluZGV4X3QgdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUlu
ZGV4KTsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1
bkRldmljZUlkKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQXBwbHlU
cmFuc2Zvcm0pKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dFBvc2UsIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlLCBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCAqIHBUcmFuc2Zvcm0pOwotICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJv
bGUpKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKTsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29udHJvbGxlclJv
bGVGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRUcmFja2VkRGV2aWNlQ2xhc3MpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc1RyYWNrZWREZXZp
Y2VDb25uZWN0ZWQpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgpOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sVHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgZmxv
YXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQ2
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VWludDY0VHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNYXRyaXgzNFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJy
b3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3Qg
dW5CdWZmZXJTaXplLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGNo
YXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSko
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqUG9sbE5leHRFdmVudCkoc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpQb2xsTmV4dEV2ZW50V2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50LCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBjaGFyICogKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0pKEVWUkV2ZW50VHlw
ZSBlVHlwZSk7Ci0gICAgICAgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRIaWRkZW5BcmVhTWVzaCkoRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVz
aFR5cGUgdHlwZSk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENv
bnRyb2xsZXJTdGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9y
aWdpbiwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFZSQ29u
dHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJT
dGF0ZVNpemUsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3Nl
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVHJpZ2dlckhhcHRpY1B1
bHNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMy
X3QgdW5BeGlzSWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QnV0dG9uSWROYW1lRnJvbUVudW0p
KEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKShFVlJDb250cm9sbGVy
QXhpc1R5cGUgZUF4aXNUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqQ2FwdHVyZUlucHV0Rm9jdXMpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlJlbGVhc2VJbnB1dEZvY3VzKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MpKCk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpEcml2ZXJEZWJ1Z1JlcXVlc3Qp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hSZXF1ZXN0LCBj
aGFyICogcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplKTsK
LSAgICAgICBFVlJGaXJtd2FyZUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9y
bUZpcm13YXJlVXBkYXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKLSAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNrbm93bGVkZ2VRdWl0X0V4aXRp
bmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdl
UXVpdF9Vc2VyUHJvbXB0KSgpOwotfTsKLQotc3RydWN0IFZSX0lWUkV4dGVuZGVkRGlzcGxheV9G
blRhYmxlCi17Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdpbmRv
d0JvdW5kcykoaW50MzJfdCAqIHBuWCwgaW50MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRo
LCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0RXllT3V0cHV0Vmlld3BvcnQpKEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqIHBuWCwg
dWludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7
Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERYR0lPdXRwdXRJbmZv
KShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgsIGludDMyX3QgKiBwbkFkYXB0ZXJPdXRwdXRJbmRl
eCk7Ci19OwotCi1zdHJ1Y3QgVlJfSVZSVHJhY2tlZENhbWVyYV9GblRhYmxlCi17Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0pKEVWUlRyYWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOwotICAgICAgIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhhc0NhbWVyYSkoVHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICogcEhhc0NhbWVyYSk7Ci0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJh
RnJhbWVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAq
IHBuSGVpZ2h0LCB1aW50MzJfdCAqIHBuRnJhbWVCdWZmZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFJbnRyaW5z
aWNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICogcEZvY2FsTGVuZ3RoLCBIbWRWZWN0
b3IyX3QgKiBwQ2VudGVyKTsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFQcm9qZWN0aW9uKShUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxv
YXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCBIbWRNYXRyaXg0NF90ICogcFByb2plY3Rpb24pOwot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFj
cXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJ
bmRleCwgVHJhY2tlZENhbWVyYUhhbmRsZV90ICogcEhhbmRsZSk7Ci0gICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFt
aW5nU2VydmljZSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhKTsKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqIHBGcmFtZUJ1ZmZl
ciwgdWludDMyX3QgbkZyYW1lQnVmZmVyU2l6ZSwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90ICogcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRlb1N0
cmVhbVRleHR1cmVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgVlJUZXh0dXJlQm91bmRzX3QgKiBwVGV4
dHVyZUJvdW5kcywgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRW
aWRlb1N0cmVhbVRleHR1cmVEM0QxMSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2Ft
ZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRDNEMTFE
ZXZpY2VPclJlc291cmNlLCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1l
SGVhZGVyU2l6ZSk7Ci0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBn
bFVJbnRfdCAqIHBnbFRleHR1cmVJZCwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICog
cEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlVmlkZW9TdHJl
YW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgZ2xVSW50
X3QgZ2xUZXh0dXJlSWQpOwotfTsKLQotc3RydWN0IFZSX0lWUkFwcGxpY2F0aW9uc19GblRhYmxl
Ci17Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVs
bFBhdGgsIGJvb2wgYlRlbXBvcmFyeSk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBw
Y2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKShjaGFyICogcGNoQXBwS2V5KTsK
LSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9u
Q291bnQpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCkodWludDMyX3QgdW5BcHBsaWNhdGlvbklu
ZGV4LCBjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQpKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICog
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7Ci0gICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbikoY2hhciAqIHBj
aFRlbXBsYXRlQXBwS2V5LCBjaGFyICogcGNoTmV3QXBwS2V5LCBzdHJ1Y3QgQXBwT3ZlcnJpZGVL
ZXlzX3QgKiBwS2V5cywgdWludDMyX3QgdW5LZXlzKTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5
cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hhciAqIHBjaEFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hEYXNoYm9hcmRPdmVy
bGF5KShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gpKGNoYXIgKiBwY2hBcHBLZXkpOwotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJZGVudGlmeUFw
cGxpY2F0aW9uKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBjaEFwcEtleSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb2Nl
c3NJZCkoY2hhciAqIHBjaEFwcEtleSk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0pKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZykoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIGNoYXIgKiBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1
aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4sIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBw
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGlj
YXRpb25Qcm9wZXJ0eUJvb2wpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVy
dHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb3BlcnR5VWlu
dDY0KShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwg
RVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNo
YXIgKiBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNoYXIgKiBwY2hBcHBL
ZXkpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAqIHBjaEFwcEtleSwgY2hh
ciAqIHBjaE1pbWVUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hh
ciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1p
bWVUeXBlcykoY2hhciAqIHBjaEFwcEtleSwgY2hhciAqIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWlu
dDMyX3QgdW5NaW1lVHlwZXNCdWZmZXIpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSkoY2hhciAqIHBj
aE1pbWVUeXBlLCBjaGFyICogcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cykodWludDMyX3QgdW5I
YW5kbGUsIGNoYXIgKiBwY2hBcmdzLCB1aW50MzJfdCB1bkFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdGFydGluZ0FwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRUcmFuc2l0aW9uU3RhdGUpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENo
ZWNrKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0pKEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqSXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCkoKTsKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoSW50ZXJuYWxQ
cm9jZXNzKShjaGFyICogcGNoQmluYXJ5UGF0aCwgY2hhciAqIHBjaEFyZ3VtZW50cywgY2hhciAq
IHBjaFdvcmtpbmdEaXJlY3RvcnkpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKSgpOwotfTsKLQotc3RydWN0IFZSX0lW
UkNoYXBlcm9uZV9GblRhYmxlCi17Ci0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbGlicmF0aW9uU3RhdGUpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFBsYXlBcmVhU2l6ZSkoZmxvYXQgKiBw
U2l6ZVgsIGZsb2F0ICogcFNpemVaKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UGxheUFyZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEluZm8pKCk7Ci0gICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFNjZW5lQ29sb3IpKHN0cnVjdCBIbWRDb2xv
cl90IGNvbG9yKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm91
bmRzQ29sb3IpKHN0cnVjdCBIbWRDb2xvcl90ICogcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVt
T3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgc3RydWN0
IEhtZENvbG9yX3QgKiBwT3V0cHV0Q2FtZXJhQ29sb3IpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpBcmVCb3VuZHNWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpGb3JjZUJvdW5kc1Zpc2libGUpKGJvb2wgYkZvcmNlKTsKLX07
Ci0KLXN0cnVjdCBWUl9JVlJDaGFwZXJvbmVTZXR1cF9GblRhYmxlCi17Ci0gICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbW1pdFdvcmtpbmdDb3B5KShFQ2hhcGVyb25lQ29u
ZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqUmV2ZXJ0V29ya2luZ0NvcHkpKCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNpemVYLCBmbG9hdCAqIHBT
aXplWik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdQ
bGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3QgKiByZWN0KTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8pKHN0cnVj
dCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVDb2xsaXNpb25Cb3Vu
ZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1
YWRzQ291bnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJ
bmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291
bnQpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEZy
b21EaXNrKShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3Jr
aW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMy
X3QgdW5UYWdDb3VudCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBUYWdzQnVmZmVyLCB1aW50
MzJfdCAqIHB1blRhZ0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFk
c0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRf
dCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRXhwb3J0TGl2ZVRvQnVmZmVyKShjaGFyICogcEJ1
ZmZlciwgdWludDMyX3QgKiBwbkJ1ZmZlckxlbmd0aCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcpKGNoYXIgKiBwQnVmZmVy
LCB1aW50MzJfdCBuSW1wb3J0RmxhZ3MpOwotfTsKLQotc3RydWN0IFZSX0lWUkNvbXBvc2l0b3Jf
Rm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRUcmFj
a2luZ1NwYWNlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsKLSAgICAgICBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNraW5n
U3BhY2UpKCk7Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqV2FpdEdldFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQ
b3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRMYXN0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFJlbmRlclBvc2VB
cnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgc3RydWN0IFRyYWNrZWREZXZp
Y2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291bnQp
OwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRl
dmljZUluZGV4LCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRHYW1lUG9zZSk7Ci0gICAgICAgRVZSQ29t
cG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0KShFVlJFeWUgZUV5
ZSwgc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3Qg
KiBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSkoKTsKLSAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9zdFByZXNlbnRIYW5kb2ZmKSgpOwot
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRpbWluZykoc3Ry
dWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBwVGltaW5nLCB1aW50MzJfdCB1bkZyYW1lc0Fn
byk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRp
bWluZ3MpKHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3Qg
bkZyYW1lcyk7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFt
ZVRpbWVSZW1haW5pbmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1bXVsYXRpdmVTdGF0cykoc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICog
cFN0YXRzLCB1aW50MzJfdCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVUb0NvbG9yKShmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJl
ZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3Jv
dW5kKTsKLSAgICAgICBzdHJ1Y3QgSG1kQ29sb3JfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1cnJlbnRGYWRlQ29sb3IpKGJvb2wgYkJhY2tncm91bmQpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpGYWRlR3JpZCkoZmxvYXQgZlNlY29uZHMsIGJvb2wgYkZh
ZGVJbik7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50
R3JpZEFscGhhKSgpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldFNreWJveE92ZXJyaWRlKShzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmVz
LCB1aW50MzJfdCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNsZWFyU2t5Ym94T3ZlcnJpZGUpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQpKCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JHb1RvQmFjaykoKTsKLSAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvclF1aXQpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRnVsbHNjcmVlbikoKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRTY2VuZUZvY3VzUHJv
Y2VzcykoKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExh
c3RGcmFtZVJlbmRlcmVyKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDYW5SZW5kZXJTY2VuZSkoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2hvd01pcnJvcldpbmRvdykoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqSGlkZU1pcnJvcldpbmRvdykoKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNNaXJyb3JXaW5kb3dWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yRHVtcEltYWdlcykoKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyko
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uKShib29sIGJPdmVycmlkZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkZvcmNlUmVjb25uZWN0UHJvY2VzcykoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VzcGVuZFJlbmRlcmluZykoYm9vbCBiU3VzcGVuZCk7
Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TWlycm9yVGV4dHVyZUQzRDExKShFVlJFeWUgZUV5ZSwgdm9pZCAqIHBEM0QxMURldmljZU9yUmVz
b3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEpKHZvaWQg
KiBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1pcnJvclRleHR1cmVHTCkoRVZSRXllIGVFeWUs
IGdsVUludF90ICogcGdsVGV4dHVyZUlkLCBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqIHBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZWxlYXNlU2hhcmVkR0xUZXh0dXJlKShnbFVJbnRfdCBnbFRleHR1cmVJZCwgZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKShn
bFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQpKGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZCkoc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIHBQaHlzaWNhbERl
dmljZSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUpOwotfTsKLQotc3Ry
dWN0IFZSX0lWUk92ZXJsYXlfRm5UYWJsZQotewotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZpbmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3JlYXRlT3ZlcmxheSkoY2hhciAqIHBjaE92
ZXJsYXlLZXksIGNoYXIgKiBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVf
dCAqIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpEZXN0cm95T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRIaWdoUXVhbGl0eU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgVlJPdmVybGF5SGFuZGxlX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRIaWdoUXVhbGl0eU92ZXJsYXkpKCk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5S2V5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJy
b3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0T3ZlcmxheU5hbWUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAq
IHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAqIHBFcnJv
cik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheUltYWdlRGF0YSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lk
ICogcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKiBwdW5XaWR0aCwg
dWludDMyX3QgKiBwdW5IZWlnaHQpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSkoRVZST3ZlcmxheUVycm9yIGVycm9y
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90IHVuUElEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5
RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKLSAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5RmxhZykoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wg
KiBwYkVuYWJsZWQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlNldE92ZXJsYXlDb2xvcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKLSAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5Q29sb3IpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZlJlZCwgZmxvYXQgKiBwZkdy
ZWVuLCBmbG9hdCAqIHBmQmx1ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRleGVsQXNwZWN0KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCk7Ci0gICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleGVsQXNw
ZWN0KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZUZXhlbEFz
cGVjdCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3Zlcmxh
eUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMp
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlXaWR0aEluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0ICogcGZXaWR0aEluTWV0ZXJzKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUlu
TWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNl
UmFuZ2VJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAq
IHBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgKiBwZk1heERpc3RhbmNlSW5NZXRlcnMpOwot
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBF
Q29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFQ29sb3JTcGFjZSAqIHBlVGV4dHVyZUNv
bG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3Ry
dWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsKLSAgICAgICBF
VlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICogcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICogcGVUcmFja2luZ09y
aWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0pOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2
aWNlLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJh
bnNmb3JtKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVuVHJhY2tlZERl
dmljZSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29t
cG9uZW50KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJ
bmRleF90ICogcHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lLCB1aW50MzJf
dCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTaG93T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpIaWRlT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNPdmVybGF5VmlzaWJsZSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5PdmVy
bGF5LCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb2xsTmV4dE92ZXJsYXlFdmVudCkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50
MzJfdCB1bmNiVlJFdmVudCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheUlucHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kICogcGVJbnB1dE1ldGhvZCk7Ci0gICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUlu
cHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheU1vdXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsK
LSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5TW91c2VTY2FsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3Qg
SG1kVmVjdG9yMl90ICogcHZlY01vdXNlU2NhbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDb21wdXRlT3ZlcmxheUludGVyc2VjdGlvbikoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Qg
KiBwUGFyYW1zLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICogcFJlc3Vs
dHMpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzSG92ZXJUYXJnZXRPdmVybGF5
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFZST3ZlcmxheUhh
bmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSko
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRH
YW1lcGFkRm9jdXNPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE5ld0ZvY3VzT3ZlcmxheSk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zl
cmxheU5laWdoYm9yKShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5k
bGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8pOwotICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKk1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9y
KShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5kbGVfdCB1bEZyb20p
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBU
ZXh0dXJlX3QgKiBwVGV4dHVyZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ2xlYXJPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRPdmVybGF5UmF3KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHZvaWQgKiBwdkJ1ZmZlciwgdWludDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVp
bnQzMl90IHVuRGVwdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlGcm9tRmlsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBjaGFyICogcGNoRmlsZVBhdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKiogcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKiBw
TmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKiBwV2lkdGgsIHVpbnQzMl90ICogcEhlaWdodCwg
dWludDMyX3QgKiBwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKiBwQVBJVHlwZSwgRUNvbG9y
U3BhY2UgKiBwQ29sb3JTcGFjZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1cmVC
b3VuZHMpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHZvaWQgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmVTaXplKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJf
dCAqIHBIZWlnaHQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkNyZWF0ZURhc2hib2FyZE92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5S2V5LCBjaGFy
ICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRs
ZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEYXNoYm9hcmRWaXNpYmxlKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blByb2Nlc3NJ
ZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCB1aW50MzJfdCAqIHB1blByb2Nlc3NJZCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dEYXNoYm9hcmQpKGNoYXIgKiBwY2hPdmVybGF5VG9TaG93KTsK
LSAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UpKCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkKShFR2FtZXBhZFRleHRJbnB1dE1vZGUg
ZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY2hh
ciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBwY2hFeGlzdGlu
Z1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlKTsKLSAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmRG
b3JPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVHYW1lcGFkVGV4
dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5w
dXRNb2RlLCBjaGFyICogcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY2hhciAq
IHBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFs
dWUpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0S2V5Ym9h
cmRUZXh0KShjaGFyICogcGNoVGV4dCwgdWludDMyX3QgY2NoVGV4dCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhpZGVLZXlib2FyZCkoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSkoRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRf
dCAqIHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0pOwotICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kUmVjdDJfdCBhdm9p
ZFJlY3QpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKiBwTWFz
a1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuUHJp
bWl0aXZlU2l6ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUZsYWdzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHVpbnQzMl90ICogcEZsYWdzKTsKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93TWVzc2FnZU92ZXJsYXkpKGNoYXIgKiBwY2hUZXh0
LCBjaGFyICogcGNoQ2FwdGlvbiwgY2hhciAqIHBjaEJ1dHRvbjBUZXh0LCBjaGFyICogcGNoQnV0
dG9uMVRleHQsIGNoYXIgKiBwY2hCdXR0b24yVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjNUZXh0KTsK
LX07Ci0KLXN0cnVjdCBWUl9JVlJSZW5kZXJNb2RlbHNfRm5UYWJsZQotewotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkUmVuZGVyTW9kZWxf
QXN5bmMpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cnVjdCBSZW5kZXJNb2RlbF90ICoq
IHBwUmVuZGVyTW9kZWwpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpG
cmVlUmVuZGVyTW9kZWwpKHN0cnVjdCBSZW5kZXJNb2RlbF90ICogcFJlbmRlck1vZGVsKTsKLSAg
ICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFRl
eHR1cmVfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgc3RydWN0IFJlbmRlck1vZGVsX1Rl
eHR1cmVNYXBfdCAqKiBwcFRleHR1cmUpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpGcmVlVGV4dHVyZSkoc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqIHBU
ZXh0dXJlKTsKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqTG9hZFRleHR1cmVEM0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lk
ICogcEQzRDExRGV2aWNlLCB2b2lkICoqIHBwRDNEMTFUZXh0dXJlMkQpOwotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkSW50b1RleHR1cmVE
M0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICogcERzdFRleHR1cmUpOwot
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGcmVlVGV4dHVyZUQzRDExKSh2
b2lkICogcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFJlbmRlck1vZGVsTmFtZSkodWludDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4
LCBjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxl
bik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJN
b2RlbENvdW50KSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q29tcG9uZW50Q291bnQpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50TmFtZSkoY2hhciAq
IHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRJbmRleCwgY2hhciAqIHBj
aENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRCdXR0b25NYXNrKShj
aGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRSZW5kZXJN
b2RlbE5hbWUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnRO
YW1lLCBjaGFyICogcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBv
bmVudFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldENvbXBvbmVudFN0YXRlKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoQ29tcG9uZW50TmFtZSwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3Rh
dGUsIHN0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICogcFN0YXRlLCBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIHBDb21wb25lbnRTdGF0ZSk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbmRlck1vZGVsSGFzQ29tcG9u
ZW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7
Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaFRodW1i
bmFpbFVSTCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIEVWUlJlbmRlck1vZGVsRXJyb3Ig
KiBwZUVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoT3JpZ2luYWxQYXRoLCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgRVZSUmVuZGVy
TW9kZWxFcnJvciAqIHBlRXJyb3IpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW0pKEVWUlJlbmRlck1vZGVsRXJy
b3IgZXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUk5vdGlmaWNhdGlvbnNfRm5UYWJsZQotewot
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3Jl
YXRlTm90aWZpY2F0aW9uKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQ2
NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsIGNoYXIgKiBwY2hUZXh0
LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90
ICogcEltYWdlLCBWUk5vdGlmaWNhdGlvbklkICogcE5vdGlmaWNhdGlvbklkKTsKLSAgICAgICBF
VlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZU5vdGlm
aWNhdGlvbikoVlJOb3RpZmljYXRpb25JZCBub3RpZmljYXRpb25JZCk7Ci19OwotCi1zdHJ1Y3Qg
VlJfSVZSU2V0dGluZ3NfRm5UYWJsZQotewotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0pKEVWUlNldHRpbmdzRXJyb3Ig
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3luYykoYm9v
bCBiRm9yY2UsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0Qm9vbCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBw
Y2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsK
LSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0SW50MzIpKGNoYXIgKiBw
Y2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0
aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBm
bG9hdCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNo
YXIgKiBwY2hTZXR0aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICog
cGVFcnJvcik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2wp
KGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJy
b3IgKiBwZUVycm9yKTsKLSAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0SW50MzIpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNl
dHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0
aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbW92ZVNlY3Rpb24pKGNoYXIgKiBwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICogcGVF
cnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUtleUlu
U2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0
dGluZ3NFcnJvciAqIHBlRXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUlNjcmVlbnNob3RzX0Zu
VGFibGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpSZXF1ZXN0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90ICogcE91dFNjcmVlbnNo
b3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpIb29rU2NyZWVuc2hvdCkoRVZSU2NyZWVuc2hvdFR5cGUg
KiBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgRVZSU2NyZWVuc2hvdFR5
cGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKShT
Y3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhh
bmRsZSwgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSwgY2hhciAq
IHBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxlbmFtZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5z
aG90SGFuZGxlLCBmbG9hdCBmbFByb2dyZXNzKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpUYWtlU3RlcmVvU2NyZWVuc2hvdCkoU2NyZWVuc2hv
dEhhbmRsZV90ICogcE91dFNjcmVlbnNob3RIYW5kbGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdWJtaXRTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxl
X3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAqIHBjaFNv
dXJjZVByZXZpZXdGaWxlbmFtZSwgY2hhciAqIHBjaFNvdXJjZVZSRmlsZW5hbWUpOwotfTsKLQot
c3RydWN0IFZSX0lWUlJlc291cmNlc19GblRhYmxlCi17Ci0gICAgICAgdWludDMyX3QgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpMb2FkU2hhcmVkUmVzb3VyY2UpKGNoYXIgKiBwY2hSZXNvdXJj
ZU5hbWUsIGNoYXIgKiBwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlc291cmNlRnVsbFBhdGgpKGNo
YXIgKiBwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnksIGNo
YXIgKiBwY2hQYXRoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7Ci19OwotCi0KLSNpZiAw
Ci0vLyBHbG9iYWwgZW50cnkgcG9pbnRzCi1TX0FQSSBpbnRwdHJfdCBWUl9Jbml0SW50ZXJuYWwo
IEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVUeXBlICk7Ci1TX0FQ
SSB2b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKLVNfQVBJIGJvb2wgVlJfSXNIbWRQcmVzZW50
KCk7Ci1TX0FQSSBpbnRwdHJfdCBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpw
Y2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLVNfQVBJIGJvb2wg
VlJfSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci1TX0FQSSBjb25zdCBjaGFyICogVlJfR2V0VlJJbml0
RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVycm9yICk7Ci1TX0FQSSBjb25zdCBjaGFyICog
VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9yIGVycm9y
ICk7Ci0jZW5kaWYKLQotI2VuZGlmIC8vIF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkz
OWUyNDY3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwyNTQxICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0vLyBvcGVudnJfZHJpdmVy
LmgKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxl
IGRpcmVjdGx5LgotCi0jaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQotI2RlZmluZSBfT1BFTlZS
X0RSSVZFUl9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0j
aWZuZGVmIF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQot
Ly8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1
Y3QgVmtEZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0
YW5jZV9UOwotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8g
YXZvaWQgcmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotCi0jaWYgZGVmaW5lZChfX2xp
bnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSAgICAgICAvLyBUaGUgMzItYml0IHZlcnNp
b24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRv
dWJsZSBzZXQgdG8KLSAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBw
YWNrKDgpIHRoZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KLSAgICAg
ICAvLyBUaGUgNjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVt
ZW50IGZvciB0aGVzZSB0eXBlcyBzZXQgdG8KLSAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxl
c3Mgd2UgdXNlICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIu
Ci0gICAgICAgLy8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhl
IDMyLWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KLSAgICAgICAjcHJh
Z21hIHBhY2soIHB1c2gsIDQgKQotI2Vsc2UKLSAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDgg
KQotI2VuZGlmCi0KLXR5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci10eXBl
ZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7Ci0KLS8vIHJp
Z2h0LWhhbmRlZCBzeXN0ZW0KLS8vICt5IGlzIHVwCi0vLyAreCBpcyB0byB0aGUgcmlnaHQKLS8v
IC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKLS8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycwot
c3RydWN0IEhtZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOwotfTsKLQotc3Ry
dWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBmbG9hdCBtWzRdWzRdOwotfTsKLQotc3RydWN0
IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVj
dG9yNF90Ci17Ci0gICAgICAgZmxvYXQgdls0XTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IzZF90
Ci17Ci0gICAgICAgZG91YmxlIHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0g
ICAgICAgZmxvYXQgdlsyXTsKLX07Ci0KLXN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKLXsKLSAgICAg
ICBkb3VibGUgdywgeCwgeSwgejsKLX07Ci0KLXN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAgICAg
ZmxvYXQgciwgZywgYiwgYTsKLX07Ci0KLXN0cnVjdCBIbWRRdWFkX3QKLXsKLSAgICAgICBIbWRW
ZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKLX07Ci0KLXN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAg
ICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OwotICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmln
aHQ7Ci19OwotCi0vKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9y
IGVhY2ggY29sb3IgY2hhbm5lbC4gCi0qIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBp
biB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAotKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4g
VGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KLXN0cnVjdCBEaXN0
b3J0aW9uQ29vcmRpbmF0ZXNfdAotewotICAgICAgIGZsb2F0IHJmUmVkWzJdOwotICAgICAgIGZs
b2F0IHJmR3JlZW5bMl07Ci0gICAgICAgZmxvYXQgcmZCbHVlWzJdOwotfTsKLQotZW51bSBFVlJF
eWUKLXsKLSAgICAgICBFeWVfTGVmdCA9IDAsCi0gICAgICAgRXllX1JpZ2h0ID0gMQotfTsKLQot
ZW51bSBFVGV4dHVyZVR5cGUKLXsKLSAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8g
SGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAx
LCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRl
ciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncwotICAgICAgIFRleHR1cmVU
eXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1
cmVEYXRhX3Qgc3RydWN0dXJlCi0gICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8g
SGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKLSAgICAg
ICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
RDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQotfTsKLQotZW51bSBFQ29sb3JTcGFjZQotewot
ICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3Ig
OC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1p
cnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgotICAgICAg
IENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3Bs
YXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsu
YS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KLSAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIs
ICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVh
ciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4K
LX07Ci0KLXN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBF
VGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQotICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsK
LSAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKLX07Ci0KLS8vIEhhbmRsZSB0byBhIHNo
YXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVk
UmVzb3VyY2UpLgotdHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci0jZGVm
aW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1
cmVIYW5kbGVfdCkwKQotCi1lbnVtIEVUcmFja2luZ1Jlc3VsdAotewotICAgICAgIFRyYWNraW5n
UmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCi0KLSAgICAgICBU
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAotICAgICAg
IFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCi0KLSAg
ICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAwLAotICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAg
ICAgICAgPSAyMDEsCi19OwotCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRl
YnVnUmVzcG9uc2VTaXplID0gMzI3Njg7Ci0KLS8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0
byBBUEkgY2FsbHMgKi8KLXR5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci1z
dGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOwotc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKLXN0YXRp
YyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZF
Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0g
MHhGRkZGRkZGRjsKLQotLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5n
IHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLwotZW51bSBFVHJhY2tlZERldmljZUNsYXNzCi17Ci0g
ICAgICAgVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfSE1EID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91
bnRlZCBEaXNwbGF5cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwg
ICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCi0gICAgICAgVHJhY2tl
ZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMg
dHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJvbGxlcnMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlv
bnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCi19OwotCi0KLS8qKiBE
ZXNjcmliZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2
aWNlICovCi1lbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBJbnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKLSAgICAg
ICBUcmFja2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5k
Ci19OwotCi0KLS8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVj
dCAqLwotc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKLXsKLSAgICAgICBIbWRNYXRyaXgzNF90
IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0
eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFj
ZSBpbiBtL3MKLSAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAg
ICAgIC8vIGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQotICAgICAgIEVUcmFja2lu
Z1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7Ci0gICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7Ci0KLSAg
ICAgICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBm
b3IgdGhpcyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgotICAgICAgIC8vIEl0IGNvdWxkIGdvIGZy
b20gdHJ1ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCi0gICAgICAg
Ym9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0vKiogSWRlbnRpZmllcyB3aGljaCBzdHls
ZSBvZiB0cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQotKiBmb3Ig
dGhlIHBvc2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KLWVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4KLXsKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8v
IFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQotICAg
ICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92
aWRlZCByZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgot
ICAgICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQ
b3NlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhl
IGRyaXZlci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBz
YW1lIGRyaXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KLX07Ci0KLS8vIFJl
ZmVycyB0byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwotdHlwZWRlZiB1aW50NjRf
dCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5
cGVUYWdfdDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bElu
dmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFn
X3Qga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7Ci0KLS8vIFVzZSB0aGVzZSB0YWdzIHRvIHNl
dC9nZXQgY29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCi1zdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKLXN0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOwotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwot
c3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFn
ID0gMjE7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9w
ZXJ0eVRhZyA9IDIyOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0
b3I0UHJvcGVydHlUYWcgPSAyMzsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAx
MDAwMDsKLQotCi0vKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3Bl
cnR5IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCi0qIHRyYWNrZWQgZGV2aWNlLiBNYW55
IGZpZWxkcyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCi1l
bnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkKLXsKLSAgICAgICBQcm9wX0ludmFsaWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKLQot
ICAgICAgIC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xh
c3NlcwotICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDAsCi0gICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCi0gICAgICAgUHJv
cF9TZXJpYWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMDIsCi0gICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMDMsCi0gICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCi0gICAgICAgUHJv
cF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MDUsCi0gICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVz
c0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAotICAgICAgIFByb3BfQ29u
bmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAot
ICAgICAgIFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMTAsCi0gICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKLSAgICAgICBQcm9wX0Rldmlj
ZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAw
IGlzIGVtcHR5LCAxIGlzIGZ1bGwKLSAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1f
TWF0cml4MzQgICAgICAgICAgICAgID0gMTAxMywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAotICAgICAgIFByb3Bf
RmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDE1LAotICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAg
ICAgICAgPSAxMDE2LAotICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDE3LAotICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAotICAgICAg
IFByb3BfRlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDE5LAotICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCi0gICAgICAgUHJvcF9SYWRp
b1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEs
Ci0gICAgICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5
Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCi0gICAgICAgUHJvcF9D
b250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAot
ICAgICAgIFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAg
ID0gMTAyNiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAyNywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dy
YW1taW5nVGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAotICAgICAgIFByb3BfRGV2
aWNlQ2xhc3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMjksCi0gICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCi0gICAgICAgUHJvcF9Ecml2ZXJWZXJz
aW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCi0gICAgICAgUHJvcF9GaXJtd2Fy
ZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCi0gICAgICAgUHJvcF9WaXZl
U3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAotICAgICAg
IFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDM0LAotCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBU
cmFja2VkRGV2aWNlQ2xhc3NfSE1ECi0gICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCi0gICAgICAgUHJvcF9TZWNv
bmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCi0gICAgICAg
UHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMDIsCi0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDMsCi0gICAgICAgUHJvcF9DdXJyZW50VW5pdmVy
c2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKLSAgICAgICBQ
cm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDA1LCAKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICAgICAgICAgPSAyMDA2LAotICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKLSAgICAgICBQcm9w
X0Rpc3BsYXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxv
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKLSAgICAgICBQcm9w
X0VkaWRWZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAxMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAg
ICAgICAgID0gMjAxMiwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAg
ICAgICAgICAgID0gMjAxMywKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAotICAgICAgIFByb3BfRWRpZFByb2R1
Y3RJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAotICAg
ICAgIFByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE2LAotICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDE3LAotICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0
X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCi0gICAgICAg
UHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE5LAotICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDIwLAotICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCi0gICAgICAgUHJv
cF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDIzLAotICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAotICAgICAg
IFByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDI1LAotICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSAyMDI2LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKLSAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCi0gICAg
ICAgUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAyOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAotICAgICAgIFByb3BfQXVkaW9GaXJt
d2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAotICAgICAgIFBy
b3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIw
MzMsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19G
bG9hdCA9IDIwMzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0Rl
Z3JlZXNfRmxvYXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAotICAgICAgIFByb3BfRGlz
cGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3
LAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzgsCi0gICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjA0MSwKLSAgICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDQyLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKLSAgICAgICBQcm9wX0F0dGFj
aGVkRGV2aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKLSAg
ICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5
cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2
YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczJU
eXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0
LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAg
ICBQcm9wX0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4
aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVW
UkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9m
IHR5cGUgRVRyYWNrZWRDb250cm9sbGVyUm9sZQotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCi0gICAg
ICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
PSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMDEsCi0gICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNf
RmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCi0gICAgICAgUHJvcF9GaWVsZE9mVmll
d0JvdHRvbURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCi0gICAgICAg
UHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0
LAotICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAg
ICAgID0gNDAwNSwKLSAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVz
IHRoYXQgYXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKLSAgICAg
ICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgot
ICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1
MDAyLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0
cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwg
b3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90
aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAg
ICAgICAgICAgICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5p
bWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDYsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywg
Ly8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBo
ZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycwotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2Vk
IGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucwotICAgICAgIFByb3Bf
RGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNTEwMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gZHJpdmVycwotICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCi0gICAgICAgUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDYwMDEsCi0KLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KLSAgICAgICBQcm9wX1ZlbmRvclNw
ZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKLSAgICAg
ICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0g
MTA5OTksCi19OwotCi0vKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIg
dGhhbiB0aGlzIGxlbmd0aCAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0
eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7Ci0KLS8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhh
dCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KLWVudW0gRVRyYWNrZWRQcm9wZXJ0
eUVycm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMCwKLSAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFU
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBUcmFja2VkUHJvcF9X
cm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAotICAgICAgIFRyYWNrZWRQ
cm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAg
ICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVy
KS4KLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNSwKLSAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAg
ICAgICAgICAgID0gNiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZp
Y2UgICAgICAgPSA3LAotICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVu
Z3RoICAgICAgID0gOCwKLSAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25v
d24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KLSAgICAgICBU
cmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKLSAg
ICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAx
MSwKLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0
IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKLSogZnJhbWUgYnVm
ZmVyLiAqLwotc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgZmxvYXQgdU1pbiwg
dk1pbjsKLSAgICAgICBmbG9hdCB1TWF4LCB2TWF4OwotfTsKLQotCi0vKiogQWxsb3dzIHRoZSBh
cHBsaWNhdGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUg
Y29tcG9zaXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLwotZW51bSBFVlJTdWJtaXRGbGFncwot
ewotICAgICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVm
dCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9u
IGFwcGxpZWQuCi0gICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAotCi0gICAgICAgLy8gQXBw
IHN1Ym1pdHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9y
dGlvbiBhbHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFw
cGVhcgotICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlv
biBjb3JyZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSBy
ZXR1cm5lZCBieQotICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkg
dG8gYXBwbHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJl
Zm9yZSBjYWxsaW5nIFN1Ym1pdCgpLgotICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVh
ZHlBcHBsaWVkID0gMHgwMSwKLQotICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFz
c2VkIGluIGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5H
TCkgdGhlbiBzZXQgdGhpcyBmbGFnLgotICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4
MDIsCi0KLSAgICAgICAvLyBEbyBub3QgdXNlCi0gICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgw
NCwKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0
byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRv
d24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2Fu
VGV4dHVyZURhdGFfdAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0g
ICAgICAgVmtEZXZpY2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAq
bV9wUGh5c2ljYWxEZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAg
ICAgICBWa1F1ZXVlX1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5
SW5kZXg7Ci0gICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBt
X25TYW1wbGVDb3VudDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEy
IHRleHR1cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9w
ZW5WUl9TaHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1
Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291
cmNlOwotICAgICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAg
IHVpbnQzMl90IG1fbk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBz
eXN0ZW0gb3IgdHJhY2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJT
dGF0ZV9VbmRlZmluZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJT
dGF0ZV9TZWFyY2hpbmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwK
LSAgICAgICBWUlN0YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0g
NCwKLSAgICAgICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkg
PSA2LAotICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUg
dHlwZXMgb2YgZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1l
dGVycyBtZWFuIGZvciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewot
ICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VB
Y3RpdmF0ZWQgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZURlYWN0aXZhdGVkICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgICAgICAgICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2Vk
RGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9J
cGRDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAg
ICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAg
ICAgICBWUkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywK
LSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAg
ICAgICBWUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwK
LSAgICAgICBWUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAs
Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTEsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJF
dmVudF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBk
YXRhIGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAg
ICAgVlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
LCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAg
ICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAxLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywg
Ly8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAg
VlJFdmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwNSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRh
dGEgaXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXND
YXB0dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQ
UkVDQVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVu
dF9TY2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAg
ICAgICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVB
cHBsaWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3Mg
LSBUaGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8g
b3IgZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAg
Z290IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0No
YW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAg
ICAgVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQw
NywgLy8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMg
ICAgICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRp
b24gdG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZS
RXZlbnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50
IHRvIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9k
ZWwgdmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0
aXZhdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3Zlcmxh
eSBtYW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1
ZXN0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0
b2FzdCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VM
b2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRv
IG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxs
IGZpbmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0
aGUgZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRl
cmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdh
bWVwYWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4g
SVZST3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZl
bnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRv
IGFuIG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6
U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZl
bnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3Jl
ZW5zaG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3Qg
YnV0dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3Jl
ZW5zaG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlS
YXcgb3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNj
cmVlbnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0
byBjb21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50
IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFz
IGJlZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGlj
YXRpb24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2
ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNl
bnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVu
c2hvdCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rh
c2hib2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9h
cmQgdGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZS
RXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAg
ICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDYwMCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRl
cmFjdGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95
ZWQgICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcw
MiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA3MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3du
Ci0KLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQg
ICAgICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXND
aGFuZ2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRp
bmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAg
VlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAot
ICAgICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4
NTEsCi0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9
IDg1MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAg
ICAgPSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
ICAgICAgID0gODU1LAotCi0gICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAotCi0gICAgICAgVlJFdmVudF9NQ0ltYWdlVXBk
YXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotCi0gICAgICAg
VlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAs
Ci0gICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAxLAotCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFy
SW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAotICAgICAgIFZSRXZlbnRf
S2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8v
IFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCi0KLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKLSAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0g
MTMwMSwKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQg
ICAgICAgPSAxMzAyLAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlv
bk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUs
Ci0KLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAg
ICAgID0gMTQwMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVu
ICAgICAgICAgICAgICA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9u
ZUJvdW5kc1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCi0KLSAgICAgICBWUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAotICAgICAgIFZSRXZlbnRf
VHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9U
cmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKLSAgICAgICBWUkV2ZW50X1Ry
YWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAotICAgICAgIFZSRXZlbnRfVHJh
Y2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCi0KLSAgICAgICBWUkV2ZW50X1Bl
cmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKLSAgICAgICBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCi0gICAgICAgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCi0KLSAgICAg
ICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1
MCwKLSAgICAgICAKLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGV2ZW50cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFZSRXZlbnRfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKLSAgICAgICBWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKLX07Ci0KLQotLyoq
IExldmVsIG9mIEhtZCBhY3Rpdml0eSAqLwotZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAotewot
ICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAotICAgICAgIGtfRURl
dmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb24gPSAxLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNl
ckludGVyYWN0aW9uX1RpbWVvdXQgPSAyLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxf
U3RhbmRieSA9IDMsCi19OwotCi0KLS8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJ
RHMgKi8KLWVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAg
ICAgICAgICAgICAgICAgPSAwLAotICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAg
ICAgPSAxLAotICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMiwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAz
LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAotICAg
ICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKLSAgICAgICBrX0VCdXR0b25f
QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAotICAgICAgIAotICAgICAg
IGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAotCi0gICAgICAga19FQnV0dG9uX0F4
aXMwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCi0gICAgICAga19FQnV0dG9uX0F4
aXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCi0gICAgICAga19FQnV0dG9uX0F4
aXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCi0gICAgICAga19FQnV0dG9uX0F4
aXMzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCi0gICAgICAga19FQnV0dG9uX0F4
aXM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCi0KLSAgICAgICAvLyBhbGlhc2Vz
IGZvciB3ZWxsIGtub3duIGNvbnRyb2xsZXJzCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91
Y2hwYWQgICAgICAgPSBrX0VCdXR0b25fQXhpczAsCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJf
VHJpZ2dlciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAotCi0gICAgICAga19FQnV0dG9uX01h
eCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY0Ci19OwotCi1pbmxpbmUgdWludDY0X3Qg
QnV0dG9uTWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9
Ci0KLS8qKiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KLXN0cnVjdCBWUkV2
ZW50X0NvbnRyb2xsZXJfdAotewotICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9u
SWQgZW51bQotfTsKLQotCi0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBv
dmVybGF5IHNwYWNlICovCi1lbnVtIEVWUk1vdXNlQnV0dG9uCi17Ci0gICAgICAgVlJNb3VzZUJ1
dHRvbl9MZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKLSAg
ICAgICBWUk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwMiwKLSAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwNCwKLX07Ci0KLQotLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3Vz
ZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotc3RydWN0IFZSRXZlbnRfTW91c2VfdAotewot
ICAgICAgIGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVm
dCBvZiB0aGUgdGV4dHVyZSBpcyAwLDAKLSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1v
dXNlQnV0dG9uIGVudW0KLX07Ci0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwg
c2Nyb2xsIGluIG92ZXJsYXkgc3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0g
ICAgICAgZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRo
ZSBwYWQgdHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCi0g
ICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7Ci19OwotCi0vKiogd2hlbiBpbiBtb3VzZSBpbnB1
dCBtb2RlIHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVu
dHMgYXJlIG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCi0gICBpcyBvbiB0aGUgdG91Y2hw
YWQgKG9yIGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCi0qKi8KLXN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVj
dGVkIG9uIHRoZSB0b3VjaCBwYWQKLSAgICAgICBib29sIGJGaW5nZXJEb3duOwotCi0gICAgICAg
Ly8gSG93IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKLSAgICAgICBm
bG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotCi0gICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGlj
YXRlIHRoZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNp
YyBzd2lwZSBzdHVmZikKLSAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgZmxvYXQg
ZlZhbHVlWUZpcnN0OwotCi0gICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRp
bmF0ZSB3aXRob3V0IGRlYWR6b25pbmcKLSAgICAgICBmbG9hdCBmVmFsdWVYUmF3OwotICAgICAg
IGZsb2F0IGZWYWx1ZVlSYXc7Ci19OwotCi0vKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRz
LiBEZXRhaWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KLXN0cnVjdCBWUkV2
ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0gICAg
ICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19OwotCi0vKiogVXNlZCBmb3IgZXZlbnRzIGFi
b3V0IHByb2Nlc3NlcyAqLwotc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWlu
dDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8v
IEVWUlN0YXRlIGVudW0KLX07Ci0KLS8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCi1z
dHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAg
ICAgIC8vIFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAotICAgICAgIHVpbnQ2NF90IHVVc2Vy
VmFsdWU7ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKLX07Ci0K
LXN0cnVjdCBWUkV2ZW50X0lwZF90Ci17Ci0gICAgICAgZmxvYXQgaXBkTWV0ZXJzOwotfTsKLQot
c3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICB1aW50NjRfdCBtX25QcmV2aW91
c1VuaXZlcnNlOwotICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKLX07Ci0KLS8q
KiBOb3QgYWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLwotc3RydWN0IFZSRXZlbnRfUmVz
ZXJ2ZWRfdAotewotICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKLSAgICAgICB1aW50NjRfdCBy
ZXNlcnZlZDE7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAotewotICAg
ICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3QKLXsKLSAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKLX07
Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAotewotICAgICAgIHVpbnQzMl90IGhhbmRs
ZTsKLSAgICAgICB1aW50MzJfdCB0eXBlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVzczsKLX07Ci0KLXN0cnVjdCBWUkV2
ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICB1aW50MzJfdCBwaWQ7Ci0gICAgICAg
dWludDMyX3QgdW5BcmdzSGFuZGxlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVy
YVN1cmZhY2VfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci0gICAgICAgdWlu
dDMyX3QgblZpc3VhbE1vZGU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90
Ci17Ci0gICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgZW51bQotfTsKLQotc3RydWN0IFZSRXZlbnRfUHJvcGVy
dHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOwotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKLX07Ci0KLS8qKiBOT1RFISEhIElmIHlv
dSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3Mu
cHkgKi8KLXR5cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2
ZWQ7Ci0gICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2
ZW50X01vdXNlX3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlv
bl90IG5vdGlmaWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAg
ICAgIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBr
ZXlib2FyZDsKLSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBl
cm9uZV90IGNoYXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZv
cm1hbmNlVGVzdDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0
OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7Ci0gICAgICAgVlJFdmVu
dF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7Ci0gICAgICAgVlJFdmVu
dF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOwotICAgICAgIFZSRXZlbnRf
RWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOwotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3Qg
cHJvcGVydHk7Ci19IFZSRXZlbnRfRGF0YV90OwotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRo
ZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90
Ci17Ci0gICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAg
ICAgIFRyYWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9h
dCBldmVudEFnZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQg
b2YgdGhlIHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0
YV90IGRhdGE7Ci19OwotCi0KLS8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwg
KG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKLSogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgp
IGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCi0qIFRo
aXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVy
IGRpc3RvcnRpb24uIAotKgotKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxl
IGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCi0qIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3Vu
dCB3aWxsIGJlIDAuICovCi1zdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAotewotICAgICAgIGNvbnN0
IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7Ci0gICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNv
dW50OwotfTsKLQotCi1lbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsKLSAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJz
ZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAotCi0gICAgICAg
a19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKLX07Ci0KLQotLyoqIElkZW50aWZpZXMgd2hhdCBr
aW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5
cGUgCi0qIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3Bf
QXhpczBUeXBlX0ludDMyICsgbiApOwotKi8KLWVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCi17
Ci0gICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCi0gICAgICAga19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0g
MiwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdn
ZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCi19OwotCi0KLS8qKiBjb250YWlucyBpbmZvcm1hdGlv
biBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLwotc3RydWN0IFZSQ29udHJvbGxl
ckF4aXNfdAotewotICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZv
ciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRy
aWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KLSAgICAgICBmbG9hdCB5OyAvLyBSYW5n
ZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdh
eXMgMC4wIGZvciB0cmlnZ2Vycy4KLX07Ci0KLQotLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0
aGUgY29udHJvbGxlciBzdGF0ZSAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9s
bGVyU3RhdGVBeGlzQ291bnQgPSA1OwotCi0KLS8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEg
Y29udHJvbGxlciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCi1zdHJ1Y3QgVlJDb250cm9sbGVy
U3RhdGUwMDFfdAotewotICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlv
dXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFu
Z2VkIHNpbmNlIAotICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVk
IHRvIHByb2Nlc3MgaXQKLSAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKLQotICAgICAgIC8v
IGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQg
dG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzawotICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7Ci0KLSAgICAgICAvLyBBeGlzIGRh
dGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cwotICAgICAgIFZSQ29udHJvbGxl
ckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOwotfTsKLQotCi10
eXBlZGVmIFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKLQotCi0v
KiogZGV0ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9m
IHZhcmlvdXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCi1lbnVtIEVWUkNvbnRyb2xs
ZXJFdmVudE91dHB1dFR5cGUKLXsKLSAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVu
dHMgPSAwLAotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCi19Owot
Ci0KLQotLyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KLWVudW0gRUNvbGxpc2lvbkJvdW5k
c1N0eWxlCi17Ci0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCi0g
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCi0gICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVf
QURWQU5DRUQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAotCi0gICAgICAg
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVAotfTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGlj
YXRpb24gdG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3Np
dG9yICovCi1zdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKLXsKLSAgICAgICB1aW50
MzJfdCBzaXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCi0gICAgICAg
Ym9vbCBjdXJ2ZWQsIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFs
cGhhOwotICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOwotICAg
ICAgIGZsb2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKLSAgICAgICBIbWRNYXRy
aXg0NF90IHRyYW5zZm9ybTsKLX07Ci0KLS8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZS
IG92ZXJsYXkgKi8KLXR5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Ci0KLXN0YXRp
YyBjb25zdCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOwot
Ci0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLwotZW51bSBF
VlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0gICAgICAgVlJPdmVybGF5RXJy
b3JfVW5rbm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAgIFZST3Zl
cmxheUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAg
IFZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEy
LAotICAgICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAg
ICA9IDEzLCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUg
bWF4aW11bSBudW1iZXIgYWxyZWFkeSBleGlzdAotICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25n
VmlzaWJpbGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCi0gICAgICAgVlJPdmVybGF5RXJyb3Jf
S2V5VG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAg
ICAgICAgICAgICA9IDE4LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2
aWNlICAgICAgICAgICAgICA9IDE5LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJh
bWV0ZXIgICAgICAgICAgICAgICAgICAgICA9IDIwLAotICAgICAgIFZST3ZlcmxheUVycm9yX1Ro
dW1ibmFpbENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAotICAgICAgIFZST3ZlcmxheUVycm9y
X0FycmF5VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAotICAgICAgIFZST3Zlcmxh
eUVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAotICAgICAgIFZS
T3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKLSAg
ICAgICBWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAg
PSAyNSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAg
ICAgICAgPSAyNiwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQ
cmltaXRpdmVzICAgICAgID0gMjksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSAgICAgICAgICAgICAgICAgICAgID0gMzAsCi19OwotCi0vKiogZW51bSB2YWx1ZXMgdG8g
cGFzcyBpbiB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdp
bGwgCi0qIGRyYXcgYSAzRCBzY2VuZS4gKi8KLWVudW0gRVZSQXBwbGljYXRpb25UeXBlCi17Ci0g
ICAgICAgVlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVy
IGtpbmQgb2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRy
aWVzIAotICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAg
Ly8gQXBwbGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAotICAgICAgIFZSQXBwbGljYXRp
b25fT3ZlcmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0
cyB3aXRoIG92ZXJsYXlzCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAg
ICAgLy8gQXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFs
cmVhZHkgcnVubmluZywgYW5kIHNob3VsZCBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBp
ZiBldmVyeXRoaW5nIGVsc2UgcXVpdHMuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0g
NCwgICAgICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVy
cy4gVGhlIGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRl
cmZhY2VzIChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFy
ZHdhcmUuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNl
cnZlZCBmb3IgdnJtb25pdG9yCi0gICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0g
NiwvLyBSZXNlcnZlZCBmb3IgU3RlYW0KLQotICAgICAgIFZSQXBwbGljYXRpb25fTWF4Ci19Owot
Ci0KLS8qKiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KLWVudW0gRVZSRmlybXdhcmVFcnJv
cgotewotICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKLSAgICAgICBWUkZpcm13YXJl
RXJyb3JfU3VjY2VzcyA9IDEsCi0gICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfTsK
LQotCi0vKiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KLWVudW0gRVZSTm90aWZp
Y2F0aW9uRXJyb3IKLXsKLSAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAg
IFZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAx
MDMsCi19OwotCi0KLS8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCi0KLS8v
IFBsZWFzZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9w
ZXIudmFsdmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhl
bHAKLWVudW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9
IDAsCi0gICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCi0KLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90
Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCi0gICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEw
NywKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTA4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5
Tm90V3JpdGFibGUgICAgICAgPSAxMTMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZv
SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAotICAgICAgIFZSSW5pdEVycm9y
X0luaXRfUmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NSwgLy8gVXNlZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAg
ID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4g
VGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTIwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9T
ZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAotICAgICAg
IFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAg
ICAgICAgICAgICAgICAgICAgID0gMTI1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90
Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAotICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0g
MTI5LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAg
ICAgICAgICAgID0gMTMwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9X
YXRjaGRvZ0FwcHMgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2Fi
bGVkSW5TZXR0aW5ncyA9IDEzMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
Tm90Rm91bmQgICAgICAgICAgICAgID0gMTMzLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJE
YXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgID0gMTM0LAotCi0gICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MSwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAg
ICAgID0gMjAyLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMywKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9m
RGF0ZSAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZElu
VXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAotICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAotICAgICAgIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCi0gICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAotICAg
ICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAg
ICAgPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKLQotICAgICAg
IFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKLSAg
ICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0g
MzAxLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAg
PSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAg
ID0gMzAzLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICA9IDMwNCwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCi0gICAgICAgVlJJbml0RXJyb3Jf
SVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAotICAgICAgIFZSSW5p
dEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNDAwLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFI
YXJkd2FyZVJlcXVpcmVkICAgICAgID0gNDAxLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKLSAgICAgICBWUkluaXRFcnJv
cl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKLSAgICAg
ICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQw
NCwKLQotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRv
T2N1bHVzUnVudGltZSA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTAxLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
UmVxdWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAg
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9
IDExMDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJl
YWRGaXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEw
OCwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dl
dFVzZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDEx
MTAsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFB
ZGRyZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJ
bml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1l
bnVtIEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0g
ICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0
LAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0g
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAw
LAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAg
ID0gMTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAg
ICAgICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
RnJhbWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9P
dXRPZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRy
YWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywK
LSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9
IDEwOCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAg
ICAgICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4
dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dl
dEdMVGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFy
ZWRUZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9Ob0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhl
IGNhbWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAg
ICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAg
ICAgICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVn
aW9uIHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFu
Z2VzIHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRp
c3RvcnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52
YWxpZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCBy
ZWdpb25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWlu
dDY0X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FN
RVJBX0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0
IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAg
ICB1aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0g
ICAgICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVz
Ci10eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVp
bnQzMl90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjaygg
cG9wICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwK
LSNpZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJf
SU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVm
aW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5k
aWYKLQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8
IGRlZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9J
TlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQotI2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vs
c2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmlu
ZWQoIF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5l
IFZSX0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBf
SU5DTFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4K
LSMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFU
VFIgKSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNk
ZWZpbmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAi
OyIgKQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQot
I2RlZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkK
LSNkZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiAp
Ci0jZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9D
TEFOR19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAj
UEFSQU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJS
QVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIg
IjsiICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19B
VFRSKCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZS
X0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NP
VU5URVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09V
VF9TVFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6
IiAjQ09VTlRFUiAiOyIgKQotCi0vLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCi0jaWZuZGVmIF9W
UlRSQUNLRURDQU1FUkFUWVBFU19ICi0jZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAot
Ci1uYW1lc3BhY2UgdnIKLXsKLQotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCi0gICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFs
aWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCi0gICAgICAg
Ly8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3
aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCi0gICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJz
aW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMg
c2V0IHRvCi0gICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBh
Y2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgotICAgICAgIC8vIFRoZSA2NC1i
aXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBh
Y2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkK
LSNlbHNlCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLSNlbmRpZgotCi1lbnVtIEVD
YW1lcmFWaWRlb1N0cmVhbUZvcm1hdAotewotICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAs
Ci0gICAgICAgQ1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBl
ciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBi
aXRzIHBlciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAg
Ly8gMjQgYml0cyBwZXIgcGl4ZWwKLSAgICAgICBDVlNfTUFYX0ZPUk1BVFMKLX07Ci0KLWVudW0g
RUNhbWVyYUNvbXBhdGliaWxpdHlNb2RlCi17Ci0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JV
TEtfREVGQVVMVCA9IDAsCi0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwK
LSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAotICAgICAgIENBTUVSQV9D
T01QQVRfTU9ERV9CVUxLXzhLX0RNQSwKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUy
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180OEZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180MkZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQw
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT18zMEZQUywKLSAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUwot
fTsKLQotI2lmZGVmIF9NU0NfVkVSCi0jZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkg
X19kZWNsc3BlYyggYWxpZ24oIHggKSApCi0jZWxzZQotI2RlZmluZSBWUl9DQU1FUkFfREVDTF9B
TElHTiggeCApIC8vCi0jZW5kaWYKLQotI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9I
QU5ETEVTICAgICAgIDQKLQotVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZV90Ci17Ci0gICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1f
blN0cmVhbUZvcm1hdDsKLQotICAgICAgIHVpbnQzMl90IG1fbldpZHRoOwotICAgICAgIHVpbnQz
Ml90IG1fbkhlaWdodDsKLQotICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZv
cm1hdCwgd2lkdGgsIGhlaWdodAotCi0gICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAw
IHdoZW4gc3RyZWFtIHN0YXJ0cy4KLQotICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hp
Y2ggYnVmZmVyIHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAotICAgICAgIHVpbnQzMl90IG1fbkJ1
ZmZlckNvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRv
dGFsIG51bWJlciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKLQotICAgICAgIHVpbnQzMl90IG1fbkV4
cG9zdXJlVGltZTsKLQotICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3Rh
bXAgcGVyIGRyaXZlciBjZW50cmljIHRpbWUgYmFzZQotICAgICAgIHVpbnQzMl90IG1fbklTUFJl
ZmVyZW5jZVRpbWVTdGFtcDsKLSAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKLQotICAg
ICAgIHVpbnQzMl90IG1fbkNhbVN5bmNFdmVudHM7Ci0gICAgICAgdWludDMyX3QgbV9uSVNQU3lu
Y0V2ZW50czsKLQotICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7Ci0KLSAg
ICAgICBkb3VibGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25k
cy4KLSAgICAgICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOwotCi0gICAgICAgZG91Ymxl
IG1fZmxGcmFtZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4g
VVNCIHRpbWUsIHZpYSBBdXhFdmVudAotICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGlt
ZV9TZXJ2ZXJSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0
aGUgc2VydmVyCi0gICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJz
b2x1dGU7ICAgICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgotICAgICAg
IGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAg
IC8vIEF0IHRoZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2Vk
L2NhcHR1cmVkLgotCi0gICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7Ci0KLSAgICAg
ICBUcmFja2VkRGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAg
Ly8gU3VwcGxpZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCi0K
LSAgICAgICB1aW50NjRfdCBtX3BJbWFnZURhdGE7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCAp
Ci0KLX0KLQotI2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICi0vLyBpdnJzZXR0aW5n
cy5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKLSAgICAgICAgICAg
ICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCi0gICAgICAgICAgICAgIFZSU2V0dGlu
Z3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9S
ZWFkRmFpbGVkID0gMywKLSAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZh
aWxlZCA9IDQsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNO
b0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9l
cyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3Qg
YmVlbiBzZXQKLSAgICAgICB9OwotCi0gICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEg
c2V0dGluZ3Mga2V5Ci0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5n
c0tleUxlbmd0aCA9IDEyODsKLQotICAgICAgIGNsYXNzIElWUlNldHRpbmdzCi0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0
aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKLQot
ICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3Jj
ZSBvciBzZXR0aW5ncyBkaXJ0eSkKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJv
b2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkg
PSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpw
Y2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBj
aFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZs
VmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRp
bmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIFVz
ZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVm
YXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQotICAg
ICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGly
ZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIi
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQz
MiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBj
aFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVT
ZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUlu
U2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NL
ZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgIH07
Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7Ci0KLSAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gc3RlYW12ciBrZXlzCi0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3Rl
YW12ciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Jl
cXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERy
aXZlciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Zv
cmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVn
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQ
cm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJl
bmFibGVEaXN0b3J0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQz
MiA9ICJkaXNwbGF5RGVidWdZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0g
ImJhY2tncm91bmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9t
ZVByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcg
PSAiZ3JpZENvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNo
b3dTdGFnZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RN
b2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlk
VmlkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGly
ZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAi
dXNpbmdTcGVha2VycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNG
b3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0
YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNz
ZXMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5k
ZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVw
cm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wg
PSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VS
ZXByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2lu
ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1
bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJz
aG93TWlycm9yVmlldyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25p
dG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJv
bUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZy
b21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBz
RnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFw
cCA9ICJlbmFibGVIb21lQXBwIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0
SG9tZUFwcCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFn
ZVRpbWVTZWMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5
cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0
aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJp
Z3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMy
ID0gImRpc2FtYmlndWF0aW9uZGVidWciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJh
c2VzdGF0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0
aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKLQotICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvLyBudWxsIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAi
c2VyaWFsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9
ICJ3aW5kb3dZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
V2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lk
dGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1Rv
UGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9
ICJkaXNwbGF5RnJlcXVlbmN5IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7Ci0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fs
d2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0g
Ik1pbmltaXplVG9UcmF5IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RU
eXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9O
b3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBrZXlib2FyZCBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlv
bnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAi
T2Zmc2V0TGVmdFgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5
Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNt
b290aGluZyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gcGVy
ZiBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rp
b24gPSAicGVyZmNoZWNrIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3
YXJuSW5ITUQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9O
b3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1Rp
bWluZ1N0b3JlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZf
U2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZU
ZXN0RGF0YSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29s
bGlzaW9uIGJvdW5kcyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0NlbnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJv
dW5kc1BsYXlTcGFjZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFk
ZURpc3RhbmNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxp
c2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
UiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfQ29sb3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFCX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9J
bnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJv
YXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNp
b25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXci
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0Nv
bG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQz
MiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91
bmRzQ29sb3JHYW1tYUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFB
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNT
dHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvblBsYXliYWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWly
cm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvZmZQbGF5YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7
Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdh
aW4gPSAidml2ZUhETUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwb3dlciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9s
bGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGlt
ZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkYXNoYm9hcmQga2V5cwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVE
YXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2Rl
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBtb2RlbCBza2lu
IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9T
ZWN0aW9uID0gIm1vZGVsc2tpbnMiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJp
dmVyXzxuYW1lPiBzZWN0aW9uCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXNlcnZlcnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAotbmFtZXNwYWNlIHZyCi17Ci0KLQotc3Ry
dWN0IERyaXZlclBvc2VRdWF0ZXJuaW9uX3QKLXsKLSAgICAgICBkb3VibGUgdywgeCwgeSwgejsK
LX07Ci0KLXN0cnVjdCBEcml2ZXJQb3NlX3QKLXsKLSAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0
aGlzIHBvc2UsIGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCi0g
ICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBt
YWRlIGJ5IHRoZSBkcml2ZXIuCi0gICAgICAgICovCi0gICAgICAgZG91YmxlIHBvc2VUaW1lT2Zm
c2V0OwotCi0gICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJp
dmVyCi0gICAgICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVy
ZW50Ci0gICAgICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwg
eisgYmFjay4KLSAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNr
aW5nIHRoZSAiaGVhZCIgcG9zaXRpb24sCi0gICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJu
YWwgSU1VIG9yIGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCi0gICAgICAgICog
VGhlIGZvbGxvd2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmll
bnRhdGlvbnMKLSAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQg
c3BhY2UsCi0gICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2Fs
IGJvZHkgc3BhY2UuIAotICAgICAgICAqCi0gICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZl
ciBwb3NlIHN0YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKLSAgICAgICAg
KiBzbyB3ZSBjYW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRv
Ci0gICAgICAgICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFy
IGFjY2VsZXJhdGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAotICAgICAgICAqIGFuZCBp
cyBpbnN0ZWFkIGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2
ZWxvY2l0eS4KLSAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVy
YXRpb24gdmFsdWVzLCB3aGljaCBhcmUgYWxzbwotICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhl
IGZpbHRlcmluZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZl
bC4KLSAgICAgICAgKi8KLSAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2
ZXJSb3RhdGlvbjsKLSAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25b
IDMgXTsKLQotICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRp
b247Ci0gICAgICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKLQot
ICAgICAgIC8qIFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICov
Ci0gICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4g
ZHJpdmVyIHdvcmxkIHNwYWNlCi0gICAgICAgKiArWzBdICh4KSBpcyByaWdodAotICAgICAgICog
K1sxXSAoeSkgaXMgdXAKLSAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKLSAgICAgICAqLwot
ICAgICAgIGRvdWJsZSB2ZWNQb3NpdGlvblsgMyBdOwotCi0gICAgICAgLyogVmVsb2NpdHkgb2Yg
dGhlIHBvc2UgaW4gbWV0ZXJzL3NlY29uZCAqLwotICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsg
MyBdOwotCi0gICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNv
bmQgKi8KLSAgICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07Ci0KLSAgICAgICAvKiBP
cmllbnRhdGlvbiBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICov
Ci0gICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247Ci0KLSAgICAgICAvKiBBbmd1
bGFyIHZlbG9jaXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCi0gICAgICAgKiByZXByZXNl
bnRhdGlvbi4gVGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKLSAgICAgICAqIHJvdGF0aW9u
IGFuZCB0aGUgbWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKLSAgICAgICAqIHRoYXQgYXhp
cyBpbiByYWRpYW5zL3NlY29uZC4gKi8KLSAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5
WyAzIF07Ci0KLSAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBh
eGlzLWFuZ2xlIAotICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhl
IGFuZ2xlIG9mCi0gICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5n
bGUgYXJvdW5kCi0gICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KLSAg
ICAgICBkb3VibGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOwotCi0gICAgICAgRVRyYWNr
aW5nUmVzdWx0IHJlc3VsdDsKLQotICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7Ci0gICAgICAgYm9v
bCB3aWxsRHJpZnRJbllhdzsKLSAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOwotICAg
ICAgIGJvb2wgZGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJh
Y2tlZCBkZXZpY2UgaW4gYSBkcml2ZXIKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCi17Ci1wdWJsaWM6Ci0K
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAv
LyBNYW5hZ2VtZW50IE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyBy
ZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCi0gICAgICAgKiBj
YWxsZWQgYmVmb3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQg
cHJvY2Vzc29yIHVzZSBieSB0aGUKLSAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVy
IG9iamVjdCBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVk
LgotICAgICAgICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1
bnRpbCBEZWFjdGl2YXRlIGlzIGNhbGxlZCwgYnV0Ci0gICAgICAgKiBzaG91bGQgbm90IGJlIHVz
ZWQgYWZ0ZXIgdGhhdCBwb2ludC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3Rp
dmF0ZSggdWludDMyX3QgdW5PYmplY3RJZCApID0gMDsKLQotICAgICAgIC8qKiBUaGlzIGlzIGNh
bGxlZCB3aGVuIFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcg
dGhlIGFjdGl2ZSBkaXNwbGF5Ci0gICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0
aXZlIGRpc3BsYXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQotICAg
ICAgICogYW5kIHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKLQotICAgICAgIC8qKiBIYW5kbGVz
IGEgcmVxdWVzdCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRi
eSBtb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLwotICAgICAg
IHZpcnR1YWwgdm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmVxdWVzdHMg
YSBjb21wb25lbnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBm
dW5jdGlvbmFsaXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAotICAgICAgICogaWYg
dGhlIHJlcXVlc3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25l
bnROYW1lQW5kVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFk
ZSB0aGlzIGRlYnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1
ZXN0cyBpcyBlbnRpcmVseQotICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVu
dCB0byBmaWd1cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9u
c2VzIHRoYXQKLSAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZm
ZXIgc2hvdWxkIGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCi0gICAgICAgdmly
dHVhbCB2b2lkIERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNo
UmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
VHJhY2tpbmcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Ci19Owot
Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNp
b24gPSAiSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKLQotfQotLy8gaXZyZGlzcGxh
eWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5
IGNvbXBvbmVudCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQotICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29t
cG9uZW50Ci0gICAgICAgewotICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gRGlzcGxh
eSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3
aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCi0gICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNr
dG9wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlz
IHJlYWwgYW5kIG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgSXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBTdWdnZXN0ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQg
dGhlIGRpc3RvcnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQz
Ml90ICpwbkhlaWdodCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3Bv
cnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRp
b24gaW50byAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3Bv
cnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAq
cG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBU
aGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRy
aXggaW4gY2FzZSB5b3VyCi0gICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpw
ZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZv
ciB0aGUgc3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KLSAg
ICAgICAgICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAx
LDEgaW4gdGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24o
IEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7Ci0KLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJ
VlJEaXNwbGF5Q29tcG9uZW50XzAwMiI7Ci0KLX0KLQotLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNv
bXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50
IGlzIHVzZWQgZm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkg
b24gdGhlaXIgb3duCi0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93
aW5nIHRoZSBWUiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBh
cmUgeW91IGRvbid0Ci0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxl
bWVudCB0aGlzIGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0
TW9kZUNvbXBvbmVudAotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8g
RGlyZWN0IG1vZGUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMg
Y29tcG9zaXRvciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNp
bmcgdGhpcyBtZXRob2QuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2Fw
VGV4dHVyZVNldCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1
bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBT
aGFyZWRUZXh0dXJlSGFuZGxlcyApWyAzIF0gKSB7fQotCi0gICAgICAgICAgICAgIC8qKiBVc2Vk
IHRvIHRleHR1cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9u
ZSBvZiB0aGUgc2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVu
dGlyZSBzZXQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1
cmVTZXQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9
Ci0KLSAgICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3Ig
YSBnaXZlbiBwcm9jZXNzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFs
bFN3YXBUZXh0dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQotCi0gICAgICAgICAgICAgIC8q
KiBBZnRlciBQcmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4
IHRvIHVzZSBmb3IgcmVuZGVyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVk
VGV4dHVyZUhhbmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQotCi0g
ICAgICAgICAgICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJh
bWUuICBPbmUgc2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJl
IGNyZWF0ZWQKLSAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQg
c2hvdWxkIGJlIGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxh
eWVycyBoYXZlIGJlZW4gc3VibWl0dGVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U3VibWl0TGF5ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRs
ZXNbIDIgXSwgY29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29u
c3QgdnI6OkhtZE1hdHJpeDM0X3QgKnBQb3NlICkge30KLQotICAgICAgICAgICAgICAvKiogU3Vi
bWl0cyBxdWV1ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgUHJlc2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9
Ci0KLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAw
MiI7Ci0KLX0KLQotLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsK
LQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAg
ICAgIC8vIFB1cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2
aWNlLgotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDb250cm9sbGVyQ29tcG9uZW50Ci0gICAgICAgewotICAgICAgIHB1Ymxp
YzoKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICAgICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCi0gICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBw
cm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3Qg
dW5BeGlzSWQsIHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKLQot
ICAgICAgIH07Ci0KLQotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJD
b21wb25lbnRfVmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7Ci0KLX0KLS8v
IGl2cmNhbWVyYWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIGNsYXNz
IElDYW1lcmFWaWRlb1NpbmtDYWxsYmFjawotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOwot
ICAgICAgIH07Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRl
dmljZQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDYW1lcmFDb21wb25lbnQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgot
ICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAgICAgICAgLy8gQ2FtZXJhIE1ldGhvZHMKLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDYW1lcmFGcmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZp
ZGVvU3RyZWFtRm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVx
dWlyZW1lbnRzKCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVC
dWZmZXJEYXRhU2l6ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVy
YUZyYW1lQnVmZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVm
ZmVycywgdWludDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7Ci0gICAgICAgICAgICAg
IHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7Ci0gICAgICAgICAgICAgIHZp
cnR1YWwgdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZv
cm1hdCgpID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpw
YlBhdXNlZCwgZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJh
bWUoKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1G
cmFtZSggY29uc3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVu
YWJsZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0
IGZsSW5wdXRVLCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxP
dXRwdXRWICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVj
dGlvbiggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxa
TmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVS
YXRlLCBpbnQgblNlbnNvckZyYW1lUmF0ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIFNldENhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxi
YWNrICpwQ2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBHZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmls
aXR5TW9kZSAqcENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0
aWJpbGl0eU1vZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVp
bnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJf
dCAqcENlbnRlciApID0gMDsKLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KklWUkNhbWVyYUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOwot
fQotLy8gaXRyYWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7Ci1zdHJ1Y3QgVHJhY2tlZERldmljZURy
aXZlckluZm9fdDsKLXN0cnVjdCBEcml2ZXJQb3NlX3Q7Ci10eXBlZGVmIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgRHJpdmVySGFuZGxlX3Q7Ci0KLS8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92
aWRlZCBieSB2cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKLSogdGhlIHN5
c3RlbSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2Vz
IG11c3QKLSogbm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2
aWNlIGJlY2F1c2UgdGhvc2UgdmFsdWVzCi0qIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdp
dGggdGhlIGRldmljZSdzIGluZGV4LiAqLwotY2xhc3MgSVZSRHJpdmVyQ29udGV4dAotewotcHVi
bGljOgotICAgICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUg
aW50ZXJmYWNlIHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwK
LSAgICAgICAqIG91dCB0aGUgZXJyb3IuICovCi0gICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5l
cmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHBy
b3BlcnR5IGNvbnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCi0gICAgICAgdmlydHVh
bCBEcml2ZXJIYW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Ci19OwotCi0KLS8qKiBUaGlz
IGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJl
IGxvYWRlZCBpbiB2cnNlcnZlci5leGUgKi8KLWNsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJv
dmlkZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhp
cyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KLSAg
ICAgICAqIElmIEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05v
bmUgdGhlIGRyaXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KLSAgICAgICAqCi0gICAgICAgKiBw
RHJpdmVySG9zdCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50
ZXIgdG8gYSBJU2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKLSAgICAgICAqCi0gICAgICAgKiBw
Y2hVc2VyRHJpdmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9y
eSB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCi0gICAgICAgKiAgICAgICBjb25m
aWcgZmlsZXMuCi0gICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBh
dGggb2YgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgotICAgICAgICovCi0gICAg
ICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNv
bnRleHQgKSA9IDA7Ci0KLSAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVm
b3JlIGl0IGlzIHVubG9hZGVkICovCi0gICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7
Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VT
ZXJ2ZXJEcml2ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KLSAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogQWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxv
b3Agb2YgdGhlIHNlcnZlci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7
Ci0KLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBk
cml2ZXIgd2FudHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBTaG91bGRCbG9ja1N0YW5kYnlNb2RlKCkgPSAwOwotCi0gICAgICAgLyoqIENhbGxlZCB3aGVu
IHRoZSBzeXN0ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBz
d2l0Y2ggaXRzZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKLSAgICAgICAqIHN0
YXRlIGl0IGhhcy4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOwot
Ci0gICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1v
ZGUuIFRoZSBkcml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bwotICAgICAgIGZ1bGwg
b3BlcmF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7Ci0K
LX07Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJf
VmVyc2lvbiA9ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7Ci0KLQotCi0KLS8q
KiBUaGlzIGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3
aWxsIGJlIGxvYWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KLWNsYXNzIElWUldhdGNoZG9nUHJvdmlk
ZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRj
aGRvZyBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZl
ckNvbnRleHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOwotCi0gICAgICAgLyoqIGNsZWFucyB1cCB0
aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwg
dm9pZCBDbGVhbnVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9n
UHJvdmlkZXJfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7Ci0KLX0KLS8vIGl2
cnByb3BlcnRpZXMuaAotI2luY2x1ZGUgPHN0cmluZz4KLQotbmFtZXNwYWNlIHZyCi17Ci0KLSAg
ICAgICBlbnVtIEVQcm9wZXJ0eVdyaXRlVHlwZQotICAgICAgIHsKLSAgICAgICAgICAgICAgUHJv
cGVydHlXcml0ZV9TZXQgPSAwLAotICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0g
MSwKLSAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKLSAgICAgICB9Owot
Ci0gICAgICAgc3RydWN0IFByb3BlcnR5V3JpdGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotICAgICAgICAgICAgICBFUHJvcGVydHlXcml0
ZVR5cGUgd3JpdGVUeXBlOwotICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNl
dEVycm9yOwotICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKLSAgICAgICAgICAgICAgdWlu
dDMyX3QgdW5CdWZmZXJTaXplOwotICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRh
ZzsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKLSAgICAgICB9
OwotCi0gICAgICAgc3RydWN0IFByb3BlcnR5UmVhZF90Ci0gICAgICAgewotICAgICAgICAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Ci0gICAgICAgICAgICAgIHZvaWQgKnB2QnVm
ZmVyOwotICAgICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7Ci0gICAgICAgICAgICAg
IFByb3BlcnR5VHlwZVRhZ190IHVuVGFnOwotICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVp
cmVkQnVmZmVyU2l6ZTsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJv
cjsKLSAgICAgICB9OwotCi0KLWNsYXNzIElWUlByb3BlcnRpZXMKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBSZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJv
cGVydHlSZWFkQmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCi0gICAgICAg
dmlydHVhbCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0
Y2gsIHVpbnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIFdyaXRl
cyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJh
dGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQz
Ml90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIHJldHVybnMgYSBzdHJp
bmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRo
ZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZQotICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFs
dWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hh
ciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0
cmFja2VkIGRldmljZSBpbmRleCAqLwotICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCBUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZSApID0gMDsKLQotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJ
VlJQcm9wZXJ0aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOwotCi1jbGFzcyBDVlJQ
cm9wZXJ0eUhlbHBlcnMKLXsKLXB1YmxpYzoKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElW
UlByb3BlcnRpZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMg
KSB7fQotCi0gICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZp
Y2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90
IG1hdGNoLAotICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICBib29sIEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENv
bnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0gICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0g
ICAgICAgaW50MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsKLSAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9
IDBMICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0
cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lz
ZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nhcnkg
dG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAgICAgKiBudWxs
LiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgPSAwTCApOwotCi0KLSAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9w
ZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlz
IG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAu
IE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBu
ZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAg
ICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRTdHJp
bmdQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3Ig
PSAwTCApOwotCi0gICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6
OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5
IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJu
IGFuIGVtcHR5IHN0cmluZy4gKi8KLSAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0
eSggdnI6OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICk7Ci0KLSAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIFNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOwot
ICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApOwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFu
ZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7Ci0g
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIHVpbnQ2NF90IHVsTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc3RyaW5n
IHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVl
bnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAgICBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
Y29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5
cGVkIHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNl
cXVlbnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9p
ZCAqcHZOZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190
IHVuVGFnICk7Ci0KLSAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBh
IHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQg
cmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvciBTZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNl
dCBmb3IgdGhlIHByb3BlcnR5LiAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFz
ZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgKTsKLQotICAgICAgIC8qIFR1cm5zIGEgZGV2aWNl
IGluZGV4IGludG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLwotICAgICAgIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFj
a2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQotCi1wcml2YXRlOgot
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlcigg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVs
dCwgUHJvcGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7Ci0KLSAgICAgICBJVlJQcm9wZXJ0aWVz
ICptX3BQcm9wZXJ0aWVzOwotfTsKLQotCi1pbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxw
ZXJzOjpHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAq
cHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRh
ZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIFByb3BlcnR5UmVh
ZF90IGJhdGNoOwotICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOwotICAgICAgIGJhdGNoLnB2QnVm
ZmVyID0gcHZCdWZmZXI7Ci0gICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXpl
OwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVy
SGFuZGxlLCAmYmF0Y2gsIDEgKTsKLQotICAgICAgIGlmICggcEVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7Ci0gICAgICAgfQotCi0gICAgICAg
aWYgKCBwdW5UYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVu
VGFnOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6
ZTsKLX0KLQotCi0vKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1
ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJv
cGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENW
UlByb3BlcnR5SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZO
ZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFn
ICkKLXsKLSAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7Ci0gICAgICAgYmF0Y2gud3JpdGVU
eXBlID0gUHJvcGVydHlXcml0ZV9TZXQ7Ci0gICAgICAgYmF0Y2gucHJvcCA9IHByb3A7Ci0gICAg
ICAgYmF0Y2gucHZCdWZmZXIgPSBwdk5ld1ZhbHVlOwotICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6
ZSA9IHVuTmV3VmFsdWVTaXplOwotICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7Ci0KLSAgICAg
ICBtX3BQcm9wZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAm
YmF0Y2gsIDEgKTsKLQotICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Ci19Ci0KLQotLyoqIFJl
dHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlk
IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwK
LSogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJl
ciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRy
YWlsaW5nCi0qIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191
bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLwotaW5saW5lIHVpbnQzMl90IENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJf
T1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKLXsKLSAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1
blRhZzsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7Ci0gICAgICAgdWludDMy
X3QgdW5SZXF1aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBjaFZhbHVlLCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7Ci0gICAgICAgaWYgKCB1
blRhZyAhPSBrX3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25n
RGF0YVR5cGU7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwRXJyb3IgKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgKnBFcnJvciA9IGVycm9yOwotICAgICAgIH0KLQotICAgICAgIGlmICggZXJy
b3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAo
IHBjaFZhbHVlICYmIHVuQnVmZmVyU2l6ZSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICpwY2hWYWx1ZSA9ICdcMCc7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0K
LSAgICAgICByZXR1cm4gdW5SZXF1aXJlZFNpemU7Ci19Ci0KLQotLyoqIFJldHVybnMgYSBzdHJp
bmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3Qg
dmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24g
d2lsbAotKiByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLwotaW5saW5lIHN0ZDo6c3RyaW5nIENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2
cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKLXsKLSAgICAgICBjaGFyIGJ1Zlsx
MDI0XTsKLSAgICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKLSAgICAgICB1aW50
MzJfdCB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVy
LCBwcm9wLCBidWYsIHNpemVvZihidWYpLCAmZXJyICk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBz
UmVzdWx0OwotCi0gICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAg
ICAgewotICAgICAgICAgICAgICBzUmVzdWx0ID0gYnVmOwotICAgICAgIH0KLSAgICAgICBlbHNl
IGlmICggZXJyID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5d
OwotICAgICAgICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHko
IHVsQ29udGFpbmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIg
KTsKLSAgICAgICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKLSAgICAgICAgICAgICAgZGVs
ZXRlW10gcGNoQnVmZmVyOwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAg
ICAgewotICAgICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKLSAgICAgICB9Ci0KLSAgICAgICBy
ZXR1cm4gc1Jlc3VsdDsKLX0KLQotCi0vKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgY29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKQotewotICAgICAgIGlmICggIXBjaE5ld1ZhbHVl
ICkKLSAgICAgICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247Ci0K
LSAgICAgICAvLyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmlu
Zy5oCi0gICAgICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOwotICAgICAgIHdo
aWxlICggKnBjaEN1cnIgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGNoQ3VycisrOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHBy
b3AsICh2b2lkICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVl
KSArIDEsIGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyApOwotfQotCi0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1pbmxpbmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQ
cm9wZXJ0eVR5cGVUYWdfdCB1blR5cGVUYWcgKQotewotICAgICAgIFQgYlZhbHVlOwotICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7Ci0gICAgICAgUHJvcGVydHlUeXBlVGFnX3Qg
dW5SZWFkVGFnOwotICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwg
JmJWYWx1ZSwgc2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOwotICAgICAg
IGlmICggdW5SZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlOwotICAgICAgIH07Ci0KLSAgICAgICBpZiAoIHBFcnJvciApCi0gICAgICAgICAg
ICAgICpwRXJyb3IgPSBlRXJyb3I7Ci0gICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3Bf
U3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7Ci0gICAg
ICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7
Ci0gICAgICAgfQotfQotCi0KLWlubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9v
bFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9y
ICkKLXsKLSAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Ci19Ci0K
LQotaW5saW5lIGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCi17Ci0gICAgICAg
cmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBFcnJvciwgMC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgaW50MzJf
dCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9w
ZXJ0eUhlbHBlcjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwg
a191bkludDMyUHJvcGVydHlUYWcgKTsKLX0KLQotaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5
SGVscGVyczo6R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1
aW50NjRfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQ
cm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3Bl
cnR5SGVscGVyczo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1Zh
bHVlICkKLXsKLSAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCAmYk5ld1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFn
ICk7Ci19Ci0KLWlubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJz
OjpTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCi17
Ci0gICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZO
ZXdWYWx1ZSwgc2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKLX0K
LQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldElu
dDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQotewotICAg
ICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFs
dWUsIHNpemVvZiggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Ci19Ci0KLWlu
bGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKLXsKLSAgICAg
ICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1
ZSwgc2l6ZW9mKCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOwotfQotCi0v
KiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBw
cm9wZXJ0eSAqLwotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBl
cnM6OlNldFByb3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIGVFcnJvciApCi17Ci0gICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOwotICAgICAgIGJh
dGNoLndyaXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7Ci0gICAgICAgYmF0Y2gucHJv
cCA9IHByb3A7Ci0gICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOwotCi0gICAgICAgbV9w
UHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNo
LCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwotfQotCi0vKiogQ2xlYXJzIGFu
eSB2YWx1ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KLWlubGluZSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AgKQotewotICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKLSAgICAgICBiYXRj
aC53cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOwotICAgICAgIGJhdGNoLnByb3AgPSBw
cm9wOwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRh
aW5lckhhbmRsZSwgJmJhdGNoLCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwot
Ci19Ci0KLX0KLQotCi0vLyBpdnJkcml2ZXJsb2cuaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUkRyaXZlckxvZwotewotcHVibGljOgotICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2Fn
ZSB0byB0aGUgbG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOwotfTsK
LQotCi1zdGF0aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVy
TG9nXzAwMSI7Ci0KLX0KLS8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAotbmFtZXNwYWNlIHZyCi17
Ci0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOwotc3RydWN0IFRyYWNrZWREZXZp
Y2VEcml2ZXJJbmZvX3Q7Ci1zdHJ1Y3QgRHJpdmVyUG9zZV90OwotCi0vKiogVGhpcyBpbnRlcmZh
Y2UgaXMgcHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkg
Ci0qIHRoZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhl
c2UgY2hhbmdlcyBtdXN0Ci0qIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mg
b2YgdGhlIGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcwotKiBhcmUgcGVybWFuZW50bHkgYXNz
b2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KLWNsYXNzIElWUlNlcnZlckRyaXZl
ckhvc3QKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEg
dHJhY2tlZCBkZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0
cnVlCi0gICAgICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNl
LiBJZiBpdCByZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgotICAgICAgICogaGFzIG9j
Y3VycmVkIGFuZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJp
YWxOdW1iZXIsIEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmlj
ZVNlcnZlckRyaXZlciAqcERyaXZlciApID0gMDsKLQotICAgICAgIC8qKiBOb3RpZmllcyB0aGUg
c2VydmVyIHRoYXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9z
ZVN0cnVjdFNpemUgKSA9IDA7Ci0KLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0
IHZzeW5jIGhhcyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRl
dmljZS4gVGhpcyBpcwotICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUg
SE1EIGNsYXNzLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5
bmNUaW1lT2Zmc2V0U2Vjb25kcyApID0gMDsKLQotICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2Vy
dmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0
dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0gICAgICAg
LyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8K
LSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMy
X3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1l
T2Zmc2V0ICkgPSAwOwotCi0gICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUg
YnV0dG9uIHdhcyBwcmVzc2VkICovCi0gICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VC
dXR0b25Ub3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9u
SWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7Ci0KLSAgICAgICAvKiogbm90aWZpZXMg
dGhlIHNlcnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLwotICAgICAgIHZpcnR1
YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2
aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7
Ci0KLSAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlz
IGNoYW5nZWQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVk
KCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJD
b250cm9sbGVyQXhpc190ICYgYXhpc1N0YXRlICkgPSAwOwotCi0gICAgICAgLyoqIE5vdGlmaWVz
IHRoZSBzZXJ2ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRl
dmljZSAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQz
Ml90IHVuV2hpY2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsK
LQotICAgICAgIC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5k
b3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9FbmQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMy
X3QgdW5XaGljaERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZl
bnRfRGF0YV90ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNFeGl0aW5nKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBh
bmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRo
ZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRob2Qg
cmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9m
IHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZl
bnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLX07Ci0K
LXN0YXRpYyBjb25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2Vy
dmVyRHJpdmVySG9zdF8wMDQiOwotCi19Ci0vLyBpdnJoaWRkZW5hcmVhLmgKLW5hbWVzcGFjZSB2
cgotewotCi1jbGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycwotewotcHVibGljOgotICAgICAgIENW
UkhpZGRlbkFyZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJv
cGVydGllcyggcFByb3BlcnRpZXMgKSB7fQotCi0gICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBh
cmVhIG1lc2ggaW4gYSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRIaWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRW
ZWN0b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKLQotICAgICAgIC8qKiBy
ZXRyaWV2ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUg
dmVydCBjb3VudCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLwotICAgICAgIHVpbnQzMl90
IEdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEht
ZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwZUVycm9yICk7Ci0KLXByaXZhdGU6Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBHZXRQcm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5
cGUgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3Bl
cnR5KShQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAy
KSArIChpbnQpZUV5ZSk7Ci0gICAgICAgfQotCi0gICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJv
cGVydGllczsKLX07Ci0KLQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5B
cmVhSGVscGVyczo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5
cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKLXsK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVF
eWUsIHR5cGUgKTsKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFBy
b3BlcnRpZXMgKTsKLSAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BI
ZWxwZXJzLlRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmlj
ZUluZGV4X0htZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZl
cnRDb3VudCwga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOwotfQotCi0KLWlubGluZSB1aW50
MzJfdCBDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVI
aWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVu
VmVydENvdW50LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQotewotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSAp
OwotICAgICAgIENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyAp
OwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7Ci0gICAgICAgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UYWc7Ci0gICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BI
ZWxwZXJzLkdldFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNv
bnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXpl
b2YoIEhtZFZlY3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKLSAg
ICAgICBpZiAoIHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHJvcEVy
cm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKLSAgICAgICAgICAgICAgdW5CeXRlc05l
ZWRlZCA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwZUVycm9yID0gcHJvcEVycm9yOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB1bkJ5dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKLX0KLQotfQotLy8g
aXZyd2F0Y2hkb2dob3N0LmgKLW5hbWVzcGFjZSB2cgotewotCi0vKiogVGhpcyBpbnRlcmZhY2Ug
aXMgcHJvdmlkZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5
dGhpbmcgd2FrZSB1cCAqLwotY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Ci17Ci1wdWJsaWM6Ci0gICAg
ICAgLyoqIENsaWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3
aGVuIHRoZXkgaGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxk
Ci0gICAgICAgKiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCi0gICAgICAgdmlydHVhbCB2b2lk
IFdhdGNoZG9nV2FrZVVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNo
ZG9nSG9zdF9WZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOwotCi19OwotCi0KLQotCi0K
LQotCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
SW50ZXJmYWNlVmVyc2lvbnNbXSA9Ci0gICAgICAgewotICAgICAgICAgICAgICBJVlJTZXR0aW5n
c19WZXJzaW9uLAotICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJz
aW9uLAotICAgICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCi0gICAgICAg
ICAgICAgIElWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAg
ICAgSVZSQ29udHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJDYW1l
cmFDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQ
cm92aWRlcl9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNp
b24sCi0gICAgICAgICAgICAgIG51bGxwdHIKLSAgICAgICB9OwotCi0gICAgICAgaW5saW5lIElW
UkRyaXZlckNvbnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgc3RhdGljIElWUkRyaXZlckNvbnRleHQgKnBIb3N0OwotICAgICAgICAgICAgICByZXR1cm4g
cEhvc3Q7Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKLSAg
ICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4
dCgpIDogbV9wcm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVs
bHB0cikgeyBDbGVhcigpOyB9Ci0gICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKLQotICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOwotICAgICAgICAgICAgICBFVlJJbml0
RXJyb3IgSW5pdFdhdGNoZG9nKCk7Ci0KLSAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0
dGluZ3MoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
U2V0dGluZ3MgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0
KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
UlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSUHJvcGVydGll
cyAqVlJQcm9wZXJ0aWVzUmF3KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGll
cyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVz
X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3Bl
cnR5SGVscGVycyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFy
ZWFIZWxwZXJzKCBtX3BWUlByb3BlcnRpZXMgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOwot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFy
ZWEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNS
YXcoKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsK
LSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZS
U2VydmVyRHJpdmVySG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
IGlmICggbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElW
UlNlcnZlckRyaXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFj
ZSggSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJI
b3N0OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpW
UldhdGNoZG9nSG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlm
ICggbV9wVlJXYXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hv
c3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dI
b3N0X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKLSAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJMb2cgPSAoSVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRl
cmZhY2UoIElWUkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBW
UkRyaXZlckhhbmRsZSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBWUkRyaXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAg
ICAgICAgICAgICAgKm1fcFZSU2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUlByb3BlcnRpZXMg
ICAgICAgICAgICAgICptX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAgIENWUlByb3BlcnR5
SGVscGVycyAgICAgICBtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAgICAgICAgQ1ZSSGlkZGVu
QXJlYUhlbHBlcnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKLSAgICAgICAgICAgICAgSVZS
U2VydmVyRHJpdmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OwotICAgICAgICAg
ICAgICBJVlJXYXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKLSAg
ICAgICAgICAgICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7Ci0g
ICAgICAgfTsKLQotICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCi0gICAgICAgewotICAgICAgICAgICAg
ICBzdGF0aWMgdm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVv
Ziggdm9pZCAqICldOwotICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4
dCAqKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgotICAgICAgIH0KLQotICAg
ICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVz
UmF3KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgp
LlZSUHJvcGVydGllc1JhdygpOyB9Ci0gICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAq
VlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
U2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9Ci0gICAgICAgaW5saW5lIENW
UkhpZGRlbkFyZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRy
aXZlckxvZygpOyB9Ci0gICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExU
WVBFIFZSU2VydmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNl
cnZlckRyaXZlckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQotICAgICAgIGlubGlu
ZSBJVlJXYXRjaGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0
KCk7IH0KLSAgICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJI
YW5kbGUoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0
KCkuVlJEcml2ZXJIYW5kbGUoKTsgfQotICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJD
b250ZXh0OjpDbGVhcigpCi0gICAgICAgewotICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0g
bnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKLSAgICAg
ICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAg
bV9wVlJEcml2ZXJMb2cgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9z
dCA9IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3Bl
blZSRHJpdmVyQ29udGV4dDo6SW5pdFNlcnZlcigpCi0gICAgICAgewotICAgICAgICAgICAgICBD
bGVhcigpOwotICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQotICAgICAg
ICAgICAgICAgICAgICAgfHwgIVZSU2V0dGluZ3MoKQotICAgICAgICAgICAgICAgICAgICAgfHwg
IVZSUHJvcGVydGllcygpCi0gICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VO
b3RGb3VuZDsKLSAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Ci0gICAgICAg
fQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5p
dFdhdGNoZG9nKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENsZWFyKCk7Ci0gICAgICAgICAg
ICAgIGlmICggIVZSV2F0Y2hkb2dIb3N0KCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNl
dHRpbmdzKCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2
ZXJDb250ZXh0ICpwQ29udGV4dCApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkRyaXZlckNv
bnRleHQoKSA9IHBDb250ZXh0OwotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxf
TW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRy
aXZlckNvbnRleHQgKnBDb250ZXh0ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSRHJpdmVy
Q29udGV4dCgpID0gcENvbnRleHQ7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7Ci0gICAgICAgfQot
Ci0gICAgICAgaW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOwotICAgICAgICAgICAgICBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKLSAgICAg
ICB9Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29u
dGV4dCApIFwKLSAgICAgICAgICAgICAgICAgICAgIHsgXAotICAgICAgICAgICAgICAgICAgICAg
dnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBD
b250ZXh0ICk7IFwKLSAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5p
dEVycm9yX05vbmUgKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJv
cjsgXAotICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgI2RlZmluZSBWUl9DTEVBTlVQ
X1NFUlZFUl9EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2
ZXJDb250ZXh0KCk7Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NP
TlRFWFQoIHBDb250ZXh0ICkgXAotICAgICAgICAgICAgICAgICAgICAgeyBcCi0gICAgICAgICAg
ICAgICAgICAgICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2
ZXJDb250ZXh0KCBwQ29udGV4dCApOyBcCi0gICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9y
ICE9IHZyOjpWUkluaXRFcnJvcl9Ob25lICkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBlRXJyb3I7IFwKLSAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICNkZWZp
bmUgVlJfQ0xFQU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAg
dnI6OkNsZWFudXBEcml2ZXJDb250ZXh0KCk7Ci19Ci0vLyBFbmQKLQotI2VuZGlmIC8vIF9PUEVO
VlJfRFJJVkVSX0FQSQotCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9w
YXRjaGVzL1BhdGhfV3JpdGVCaW5hcnlGaWxlLWZpeC1yZXR1cm4tY29uZGl0aW9uLnBhdGNoIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4
LXJldHVybi1jb25kaXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2
NjA4YTYyZDZjYmRhOGQyNWExNGIwNTM2YWJkOTZjYmNjNzFlMTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Bh
dGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2gKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL3ZyY29tbW9uL3Bh
dGh0b29sc19wdWJsaWMuY3BwIGIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCi1p
bmRleCA3ZjdjN2U4Li5kZTdhNzJhIDEwMDY0NAotLS0tIGEvc3JjL3ZyY29tbW9uL3BhdGh0b29s
c19wdWJsaWMuY3BwCi0rKysgYi9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKLUBA
IC02NTUsNyArNjU1LDcgQEAgYm9vbCBQYXRoX1dyaXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0
cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLAotICAgICAgICAgICAgICAg
ZmNsb3NlKGYpOwotICAgICAgICB9Ci0gCi0tICAgICAgIHJldHVybiB3cml0dGVuID0gblNpemUg
PyB0cnVlIDogZmFsc2U7Ci0rICAgICAgIHJldHVybiB3cml0dGVuID09IG5TaXplID8gdHJ1ZSA6
IGZhbHNlOwotIH0KLSAKLSBzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckZpbGVuYW1lICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9wYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNoIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZjlhN2M5Y2M4MzExNWRjYmM4OTY4NDMyZmE0ZjgzMTg0YWQxY2IuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBA
QAotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IGQ3
MDI1YzBkYjRiLi5kMTNhN2Y5MGNmOCAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysg
Yi9DTWFrZUxpc3RzLnR4dAotQEAgLTEsMTQgKzEsOCBAQAotICMgU2V0IHRoZSBtaW5pbXVtIHJl
cXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KLSBjbWFrZV9taW5pbXVt
X3JlcXVpcmVkKFZFUlNJT04gMi44KQotIAotLSMgU2V0IHByb2plY3QgbmFtZS4KLS1wcm9qZWN0
KE9wZW5WUlNESykKLS0KLSAjIFNldHVwIHNvbWUgb3B0aW9ucy4KLSBvcHRpb24oQlVJTERfU0hB
UkVEICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKLS1vcHRpb24o
QlVJTERfRlJBTUVXT1JLICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgYW4gYXBwbGUgRnJhbWV3b3Jr
IiBPRkYpCi0tb3B0aW9uKEJVSUxEX1VOSVZFUlNBTCAiQnVpbGRzIHRoZSBzaGFyZWQgb3IgZnJh
bWV3b3JrIGFzIGEgdW5pdmVyc2FsIChmYXQsIDMyLSAmIDY0LWJpdCkgYmluYXJ5IiBPTikKLS1v
cHRpb24oQlVJTERfT1NYX0kzODYgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29yayBhcyBh
IDMyLWJpdCBiaW5hcnksIGV2ZW4gb24gYSA2NC1iaXQgcGxhdGZvcm0iIE9GRikKLSBvcHRpb24o
VVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQotIG9wdGlv
bihVU0VfQ1VTVE9NX0xJQkNYWCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLSAKLUBAIC0z
NywyMSArMzEsOSBAQCBlbHNlaWYoQVBQTEUpCi0gICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRD
SEVTICIuKkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioi
KQotICAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikKLSAgICAgYWRkX2RlZmluaXRpb25zKC1E
T1NYIC1EUE9TSVgpCi0tICAgIGlmKEJVSUxEX1VOSVZFUlNBTCkKLS0gICAgICBzZXQoQ01BS0Vf
T1NYX0FSQ0hJVEVDVFVSRVMgImkzODY7eDg2XzY0IikKLS0gICAgZW5kaWYoKQotLSAgICBpZihC
VUlMRF9PU1hfSTM4NikKLS0gICAgICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikKLS0gICAgICBz
ZXQoQ01BS0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODYiKQotLSAgICBlbmRpZigpCi0gICBlbmRp
ZigpCi0gZW5kaWYoKQotIAotLSMgU2V0IG91dHB1dCBmb2xkZXIgZm9yIHN0YXRpYyBhbmQgc2hh
cmVkIGxpYnJhcmllcwotLXNldChDTUFLRV9MSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFL
RV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNl
dChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4v
JHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNldChDTUFLRV9SVU5USU1FX09V
VFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7
UFJPQ0VTU09SX0FSQ0h9KQotLQotICMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KLSBpZihDTUFL
RV9DT01QSUxFUl9JU19HTlVDQyBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5n
IikKLSAgICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRu
J3QgYmUgdmlzaWJsZQotZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBiL3NyYy9DTWFr
ZUxpc3RzLnR4dAotaW5kZXggZTU4YzllMWMwMzkuLjA5NWY4MWU1NjJiIDEwMDY0NAotLS0tIGEv
c3JjL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC0xLDggKzEs
MTAgQEAKLS0jIFByb2plY3QgbmFtZS4KLS1wcm9qZWN0KG9wZW52cl9hcGkpCi0rc2V0KE9QRU5W
Ul9TT1VSQ0VfRElSICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
KQotIAotIHNldCggTElCTkFNRSAib3BlbnZyX2FwaSIgKQotIAotK3NldChFWENFUFRJT05fRkxB
R1MgIi1mZXhjZXB0aW9ucyIpCi0rYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkK
LSsKLSAjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMgZmlsZXMuCi0gaWYoQVBQTEUp
Ci0gICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCi1AQCAtMjIsNyArMjQsNyBAQCBlbHNlaWYo
V0lOMzIpCi0gZW5kaWYoKQotIAotICMgQWRkIGluY2x1ZGUgZm9sZGVycy4KLS1pbmNsdWRlX2Rp
cmVjdG9yaWVzKCR7Q01BS0VfU09VUkNFX0RJUn0vc3JjICR7Q01BS0VfU09VUkNFX0RJUn0vaGVh
ZGVycyAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLStpbmNsdWRlX2RpcmVjdG9y
aWVzKCR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYyAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJz
ICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLSAKLSBpZihVU0VfQ1VTVE9NX0xJ
QkNYWCkKLSAgICAgICAgbGlua19kaXJlY3RvcmllcygKLUBAIC02NSwyOCArNjcsMzUgQEAgZWxz
ZWlmKEJVSUxEX0ZSQU1FV09SSykKLSAgICAgICAgc2V0KCBMSUJOQU1FICJPcGVuVlIiICkKLSAg
ICAgICAgYWRkX2xpYnJhcnkoICR7TElCTkFNRX0gCi0gICAgICAgICAgICAgU0hBUkVEICR7U09V
UkNFX0ZJTEVTfQotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVu
dnIuaAotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBp
LmNzCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
anNvbgotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2Fw
aS5oCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2
ZXIuaAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3MK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNv
bgotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGku
aAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCi0gICAgICAgICkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9Q
RVJUSUVTCi0gICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQotICAgICAgICAgICAgICAgRlJB
TUVXT1JLX1ZFUlNJT04gQQotICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElG
SUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLS0gICAgICAgICAgICAgIE1B
Q09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZvLnBs
aXN0Ci0rICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtPUEVOVlJf
U09VUkNFX0RJUn0vc3JjL0luZm8ucGxpc3QKLSAgICAgICAgICAgICAgICMgImN1cnJlbnQgdmVy
c2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAg
ICAgICAgVkVSU0lPTiAxLjAuNgotICAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJz
aW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCi0gICAgICAgICAg
ICAgICBTT1ZFUlNJT04gMS4wLjAKLS0gICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7Q01B
S0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRl
cnMvb3BlbnZyX2FwaS5jczske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uOyR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7Q01BS0VfU09V
UkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0rICAgICAgICAgICAgICBQVUJMSUNf
SEVBREVSICIke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52ci5oOyR7T1BFTlZSX1NP
VVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5jczske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFk
ZXJzL29wZW52cl9hcGkuanNvbjske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9j
YXBpLmg7JHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0gICAg
ICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAgICAgICkKLSBlbHNlKCkKLSAgICAg
ICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VSQ0VfRklMRVN9KQotIGVuZGlm
KCkKLSAKLStpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotKyAgICBXRUJLSVRfQUREX1RB
UkdFVF9DWFhfRkxBR1MoJHtMSUJOQU1FfSAtV25vLWltcGxpY2l0LWZhbGx0aHJvdWdoCi0rICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW5rbm93bi1wcmFn
bWFzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW51
c2VkLXBhcmFtZXRlcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtV25vLXVudXNlZC12YXJpYWJsZSkKLStlbmRpZigpCi0rCi0gaWYoVVNFX0NVU1RPTV9MSUJD
WFgpCi0gICAgICAgIHNldChFWFRSQV9MSUJTICR7RVhUUkFfTElCU30gYysrIGMrK2FiaSkKLSBl
bmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0NDBkMzZlMDk5OGY0OTQ2MzUxNmM5NzdkZWE4
MmY2OWRhYzlmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTA1ICswLDAgQEAKLXNldChPUEVOVlJfU09VUkNFX0RJUiAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52cikKLQotc2V0KCBMSUJOQU1FICJvcGVudnJf
YXBpIiApCi0KLXNldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCi1hZGRfZGVmaW5p
dGlvbnMoJHtFWENFUFRJT05fRkxBR1N9KQotCi0jIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3Bl
Y2lmaWMgZmlsZXMuCi1pZihBUFBMRSkKLSAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQotICBp
ZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJEYXJ3aW4iKQotICAgIHNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcyh2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCB2cmNvbW1vbi92cnBh
dGhyZWdpc3RyeV9wdWJsaWMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiLXggb2JqZWN0
aXZlLWMrKyIpCi0gIGVuZGlmKCkKLSAgaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09S
SykKLSAgICBmaW5kX2xpYnJhcnkoRk9VTkRBVElPTl9GUkFNRVdPUksgRm91bmRhdGlvbikKLSAg
ICBtYXJrX2FzX2FkdmFuY2VkKEZPVU5EQVRJT05fRlJBTUVXT1JLKQotICAgIHNldChFWFRSQV9M
SUJTICR7RVhUUkFfTElCU30gJHtGT1VOREFUSU9OX0ZSQU1FV09SS30pCi0gIGVuZGlmKEJVSUxE
X1NIQVJFRCBPUiBCVUlMRF9GUkFNRVdPUkspCi1lbHNlaWYoV0lOMzIpCi0gIGlmKENNQUtFX1NJ
WkVPRl9WT0lEX1AgRVFVQUwgOCkKLSAgICBhZGRfZGVmaW5pdGlvbnMoIC1EV0lONjQgKQotICAg
IHNldCggTElCTkFNRSAib3BlbnZyX2FwaTY0IiApCi0gIGVuZGlmKCkKLWVuZGlmKCkKLQotIyBB
ZGQgaW5jbHVkZSBmb2xkZXJzLgotaW5jbHVkZV9kaXJlY3Rvcmllcygke09QRU5WUl9TT1VSQ0Vf
RElSfS9zcmMgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycyAke09QRU5WUl9TT1VSQ0VfRElS
fS9zcmMvdnJjb21tb24pCi0KLWlmKFVTRV9DVVNUT01fTElCQ1hYKQotICAgICAgIGxpbmtfZGly
ZWN0b3JpZXMoCi0gICAgICAgICAgICAgICR7TElCQ1hYX0xJQl9ESVJ9Ci0gICAgICAgKQotZW5k
aWYoKQotCi0jIFNldCB0aGUgc291cmNlIGdyb3VwIGFuZCBmaWxlcy4KLXNldChDT1JFX0ZJTEVT
Ci0gICAgICAgb3BlbnZyX2FwaV9wdWJsaWMuY3BwCi0gICAgICAganNvbmNwcC5jcHAKLSkKLXNl
dChWUkNPTU1PTl9GSUxFUwotICAgICAgIHZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKLSAg
ICAgICB2cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vcGF0
aHRvb2xzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMu
Y3BwCi0gICAgICAgdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1v
bi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmNwcAotKQotCi1zZXQoU09VUkNFX0ZJTEVTCi0gICAgICAgJHtDT1JFX0ZJTEVTfQotICAg
ICAgICR7VlJDT01NT05fRklMRVN9Ci0pCi0KLXNvdXJjZV9ncm91cCgiU3JjIiBGSUxFUwotICAg
ICAgICR7Q09SRV9GSUxFU30KLSkKLQotc291cmNlX2dyb3VwKCJWUkNvbW1vbiIgRklMRVMKLSAg
ICAgICAke1ZSQ09NTU9OX0ZJTEVTfQotKQotCi0jIEJ1aWxkIHRoZSBsaWJyYXJ5LgotaWYoQlVJ
TERfU0hBUkVEKQotICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0gU0hBUkVEICR7U09VUkNF
X0ZJTEVTfSkKLWVsc2VpZihCVUlMRF9GUkFNRVdPUkspCi0gICAgICAgc2V0KCBMSUJOQU1FICJP
cGVuVlIiICkKLSAgICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKLSAgICAgICAgICAgIFNI
QVJFRCAke1NPVVJDRV9GSUxFU30KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hl
YWRlcnMvb3BlbnZyLmgKLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2FwaS5jcwotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfYXBpLmpzb24KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2NhcGkuaAotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfZHJpdmVyLmgKLSAgICAgICApCi0gICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9w
ZW5WUiBQUk9QRVJUSUVTCi0gICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCi0gICAgICAgICAg
ICAgIEZSQU1FV09SS19WRVJTSU9OIEEKLSAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
REVOVElGSUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLSAgICAgICAgICAg
ICAgTUFDT1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy9J
bmZvLnBsaXN0Ci0gICAgICAgICAgICAgICMgImN1cnJlbnQgdmVyc2lvbiIgaW4gc2VtYW50aWMg
Zm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42
Ci0gICAgICAgICAgICAgICMgImNvbXBhdGliaWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9y
bWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBTT1ZFUlNJT04gMS4wLjAK
LSAgICAgICAgICAgICAgUFVCTElDX0hFQURFUiAiJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVy
cy9vcGVudnIuaDske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3M7JHtP
UEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtPUEVOVlJfU09VUkNF
X0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2RyaXZlci5oIgotICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAg
ICAgKQotZWxzZSgpCi0gICAgICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VS
Q0VfRklMRVN9KQotZW5kaWYoKQotCi1pZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotICAg
IFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUygke0xJQk5BTUV9IC1Xbm8taW1wbGljaXQtZmFs
bHRocm91Z2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25v
LXVua25vd24tcHJhZ21hcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC1Xbm8tdW51c2VkLXBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC1Xbm8tdW51c2VkLXZhcmlhYmxlKQotZW5kaWYoKQotCi1pZihVU0VfQ1VT
VE9NX0xJQkNYWCkKLSAgICAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9IGMrKyBjKyth
YmkpCi1lbmRpZigpCi0KLXRhcmdldF9saW5rX2xpYnJhcmllcygke0xJQk5BTUV9ICR7RVhUUkFf
TElCU30pCi0KLWluc3RhbGwoVEFSR0VUUyAke0xJQk5BTUV9IERFU1RJTkFUSU9OIGxpYikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTVlNTY5ODA4N2YwOTM5MTQ1OGJiMTk3YWQ4ZDgxN2VlZGViODI2OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBV
QkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20v
RFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0
PgotICAgICAgIDxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0gICAgICAgPHN0cmluZz5j
b20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+Ci0gICAgICAgPGtleT5D
RkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotICAgICAgIDxzdHJpbmc+Ni4wPC9z
dHJpbmc+Ci0gICAgICAgPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KLSAgICAgICA8c3RyaW5nPk9w
ZW5WUjwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotICAg
ICAgIDxzdHJpbmc+Rk1XSzwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmc8L2tleT4KLSAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgotICAgICAgIDxrZXk+
Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0gICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4KLTwvZGlj
dD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JF
QURNRSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MjZjNThkYTc5ZmI5NGUwMmRjZmVjZDI2YTVlNTUyZDlhYTU4YWMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotVGhpcyBpcyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBPcGVuVlIgQVBJIGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkgd2hpY2ggY29ubmVjdHMKLU9wZW5WUiBhcHBsaWNhdGlvbnMgdG8gdGhlIFN0
ZWFtVlIgcnVudGltZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgdmVyc2lvbgotb2YgdGhlIE9w
ZW5WUiBpbnRlcmZhY2UgdGhleSB3ZXJlIGNvbXBpbGVkIGFnYWluc3QuCi0KLVRoZSBjbGllbnQg
YmluZGluZyBsaWJyYXJ5IC0gb3BlbnZyX2FwaS5kbGwgb24gV2luZG93cywgb3BlbnZyX2FwaS5z
byBvbgotTGludXgsIGFuZCBvcGVudnJfYXBpLmR5bGliIG9yIE9wZW5WUi5mcmFtZXdvcmsgb24g
bWFjT1MgLSBrbm93cyBob3cgdG8gZmluZAotYW5kIHJlYWQgdGhlIFN0ZWFtVlIgcnVudGltZSBp
bnN0YWxsYXRpb24gaW5mb3JtYXRpb24gd2hpY2ggYWxsb3dzIGl0IHRvCi1maW5kIGFuZCBkeW5h
bWljYWxseSBjb25uZWN0IHRvIHRoZSBpbnN0YWxsZWQgcnVudGltZS4gSW4gY29tYmluYXRpb24g
d2l0aCB0aGUKLWludGVyZmFjZSB2ZXJzaW9uIGlkZW50aWZpZXJzIGZyb20gL2luY2x1ZGUvb3Bl
bnZyLmggd2hpY2ggYXJlIGJha2VkCi1pbnRvIGFwcGxpY2F0aW9ucyBhdCB0aGUgdGltZSB0aGV5
IGFyZSBidWlsdCwgdGhlIE9wZW5WUiBBUEkgY2xpZW50Ci1iaW5kaW5nIGxpYnJhcnkgY2FwdHVy
ZXMgYW5kIGNvbnZleXMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSB0aGUgdmVyc2lvbgotb2YgdGhl
IE9wZW5WUiBBUEkgaW50ZXJmYWNlIGJlaGF2aW9yIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGV4cGVj
dHMuCi0KLUFwcGxpY2F0aW9ucyBjYXJyeSB3aXRoIHRoZW0gYSBwcml2YXRlL2xvY2FsIGNvcHkg
b2YgdGhlIGNsaWVudCBiaW5kaW5nCi1saWJyYXJ5IHdoZW4gdGhleSBzaGlwLCBhbmQgdGhleSBz
aG91bGQgaW5zdGFsbCBpdCBsb2NhbGx5IHRvIHRoZWlyCi1hcHBsaWNhdGlvbi4gIEFwcGxpY2F0
aW9ucyBzaG91bGQgbm90IGluc3RhbGwgdGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkKLWdsb2Jh
bGx5IG9yIGF0dGVtcHQgdG8gbGluayB0byBhIGdsb2JhbGx5IGluc3RhbGxlZCBjbGllbnQgYmlu
ZGluZyBsaWJyYXJ5LgotRG9pbmcgc28gbmVnYXRlcyBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBhYmls
aXR5IGZvciB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQotdG8gYWNjdXJhdGVseSByZWZsZWN0
IHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuVlIgQVBJIHRoYXQgdGhlIGFwcGxpY2F0aW9uCi13YXMg
YnVpbHQgYWdhaW5zdCwgYW5kIHNvIGhpbmRlcnMgY29tcGF0aWJpbGl0eSBzdXBwb3J0IGluIHRo
ZSBmYWNlIG9mCi1BUEkgY2hhbmdlcy4KLQotTW9zdCBhcHBsaWNhdGlvbnMgc2hvdWxkIHNpbXBs
eSBsaW5rIHRvIGFuZCByZWRpc3RyaWJ1dGUgd2l0aCB0aGVpciBhcHBsaWNhdGlvbgotdGhlIHBy
ZS1idWlsdCBjbGllbnQgYmluZGluZyBsaWJyYXJ5IGZvdW5kIGluIHRoZSAvYmluIGRpcmVjdG9y
eSBvZiB0aGlzCi1yZXBvc2l0b3J5LiBTb21lIHNtYWxsIG51bWJlciBvZiBhcHBsaWNhdGlvbnMg
d2hpY2ggaGF2ZSBzcGVjaWZpYyByZXF1aXJlbWVudHMKLWFyb3VuZCByZWRpc3RyaWJ1dGluZyBv
bmx5IGJpbmFyaWVzIHRoZXkgYnVpbGQgdGhlbXNlbHZlcyBzaG91bGQgYnVpbGQKLXRoZSBjbGll
bnQgbGlicmFyeSBmcm9tIHRoaXMgc291cmNlIGFuZCBlaXRoZXIgc3RhdGljYWxseSBsaW5rIGl0
IGludG8KLXRoZWlyIGFwcGxpY2F0aW9uIG9yIHJlZGlzdHJpYnV0ZSB0aGUgYmluYXJ5IHRoZXkg
YnVpbGQuCi0KLVRoaXMgaXMgYSBjbWFrZSBwcm9qZWN0LCB0byBidWlsZCBpdCB1c2UgdGhlIHZl
cnNpb24gb2YgY21ha2UgYXBwcm9wcmlhdGUKLWZvciB5b3VyIHBsYXRmb3JtLiBGb3IgZXhhbXBs
ZSwgdG8gYnVpbGQgb24gYSBQT1NJWCBzeXN0ZW0gc2ltcGx5IHBlcmZvcm0KLQotICBjZCBzcmM7
IG1rZGlyIF9idWlsZDsgY2QgX2J1aWxkOyBjbWFrZSAuLjsgbWFrZQotCi1hbmQgeW91IHdpbGwg
ZW5kIHVwIHdpdGggdGhlIHN0YXRpYyBsaWJyYXJ5IC9zcmMvYmluLzxhcmNoPi9saWJvcGVudnJf
YXBpLmEKLQotVG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeSwgcGFzcyAtREJVSUxEX1NIQVJFRD0x
IHRvIGNtYWtlLgotVG8gYnVpbGQgYXMgYSBmcmFtZXdvcmsgb24gYXBwbGUgcGxhdGZvcm1zLCBw
YXNzIC1EQlVJTERfRlJBTUVXT1JLPTEgdG8gY21ha2UuCi1UbyBzZWUgYSBjb21wbGV0ZSBsaXN0
IG9mIGNvbmZpZ3VyYWJsZSBidWlsZCBvcHRpb25zLCB1c2UgYGNtYWtlIC1MQUhgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNvcmUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MWZlMzYwZWU0YWQ1MmM4Nzk5MGMyNTE3NDZmMDFjYjg5YmJmMDA2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUkNsaWVu
dENvcmUKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIHN5c3RlbSAqLwot
ICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUg
ZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkgPSAwOwotCi0gICAg
ICAgLyoqIGNsZWFucyB1cCBldmVyeXRoaW5nIGluIHZyY2xpZW50LmRsbCBhbmQgcHJlcGFyZXMg
dGhlIERMTCB0byBiZSB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkg
PSAwOwotCi0gICAgICAgLyoqIGNoZWNrcyB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBpbnRlcmZh
Y2UvdmVyc2lvbiBpcyBzdXBwb3J0ZWQgaW4gdGhpcyB2cmNsaWVudC5kbGwgKi8KLSAgICAgICB2
aXJ0dWFsIEVWUkluaXRFcnJvciBJc0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAq
cGNoSW50ZXJmYWNlVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBSZXRyaWV2ZXMgYW55IGlu
dGVyZmFjZSBmcm9tIHZyY2xpZW50LmRsbCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2Vu
ZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoTmFtZUFuZFZlcnNpb24sIEVWUkluaXRFcnJv
ciAqcGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW55IGRyaXZl
ciBoYXMgYW4gSE1EIGF0dGFjaGVkLiBDYW4gYmUgY2FsbGVkIG91dHNpZGUgb2YgSW5pdC9DbGVh
bnVwICovCi0gICAgICAgdmlydHVhbCBib29sIEJJc0htZFByZXNlbnQoKSA9IDA7Ci0KLSAgICAg
ICAvKiogUmV0dXJucyBhbiBFbmdsaXNoIGVycm9yIHN0cmluZyBmcm9tIGluc2lkZSB2cmNsaWVu
dC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLwotICAgICAgIHZp
cnR1YWwgY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5p
dEVycm9yIGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGFuIGVycm9yIHN5bWJv
bCBmcm9tIGluc2lkZSB2cmNsaWVudC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUg
QVBJIERMTCAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJv
ciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IElWUkNsaWVudENvcmVfVmVyc2lvbiA9ICJJVlJDbGllbnRDb3JlXzAwMyI7Ci0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24t
Zm9yd2FyZHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndh
cmRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGM3ZGU5NzY0YjQyMTgyYjAx
N2Y3MGVlMDA5MzFiZjZlNDkwNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2Fy
ZHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIGZvcndhcmQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KLS8v
LyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3
YXJkcy5oIgotLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9y
IGFsbCBKc29uQ3BwIHR5cGVzLgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBMSUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8qCi1UaGUgSnNv
bkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1l
bnRhdGlvbiwgCi10ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNl
bnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCi1jb25kaXRpb25zLi4uCi0KLVRoZSBhdXRob3IgKEJh
cHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAK
LWp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNo
IGp1cmlzZGljdGlvbnMsIAotdGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJs
aWMgRG9tYWluLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVi
bGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCi0yMDEwKSwgdGhpcyBzb2Z0
d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFu
ZCBpcwotcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KS4KLQotSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBw
cm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKLXNvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0
IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCi1jb25kaXRpb25z
IG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9m
IGR1YWwgCi1QdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhl
cmUsIGFzIHRoZXkgY2hvb3NlLgotCi1UaGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2Ug
dG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlzCi1kZXNjcmliZWQg
aW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6Ci0KLSAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3Jn
L3dpa2kvTUlUX0xpY2Vuc2UKLSAgIAotVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2Ug
Zm9sbG93czoKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1Db3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0
aXN0ZSBMZXBpbGxldXIKLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24KLW9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi1maWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci1yZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKLW1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK
LWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0KLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlCi1pbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KLQotVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi1FWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLU1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi1OT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCi1CRSBMSUFC
TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4KLUFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOCi1DT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFCi1TT0ZUV0FSRS4KLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKEVORCBM
SUNFTlNFIFRFWFQpCi0KLVRoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0
aGUgR1BMIGFuZCBjb21tZXJjaWFsCi1zb2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhl
IHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCi1taW5vciBudWlzYW5jZSBvZiBiZWlu
ZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlCi1hbmQgbGljZW5z
ZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRo
ZQotUHVibGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1
c2luZyB3aGF0ZXZlcgotbGljZW5zZSB5b3UgbGlrZS4KLQotKi8KLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLSNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0jIGRl
ZmluZSBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKLS8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCi0vLy8gdG8gcHJldmVu
dCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCi0jZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9O
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi9jb25maWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05f
Q09ORklHX0hfSU5DTFVERUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8g
SWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENw
cFRMIGxpYnJhcnkuCi0vLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5l
ZCwgaW5kaWNhdGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBk
ZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNw
cHRsIHZlY3RvciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6
bWFwCi0vLy8gYXMgVmFsdWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAgMQotCi0vLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25z
IHRvIHJlcG9ydCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBU
aGUgZGVmYXVsdCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBU
SU9OCi0jZGVmaW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmlu
ZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBw
cmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRv
bWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8g
I2RlZmluZSBKU09OX0lTX0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lu
Y2x1ZGUgPGNwcHRsL2NvbmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBK
U09OX1VTRV9DUFBUTCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2RlZmluZSBKU09OX0FQSSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQp
Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxl
eHBvcnQpCi0jZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNl
bmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9y
dCkKLSNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlm
IC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2lmICFkZWZpbmVkKEpTT05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElm
IEpTT05fTk9fSU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImlu
dCIgdHlwZSBmb3IKLS8vIGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2Vy
IHN1cHBvcnQgaXMgZGlzYWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYg
ZGVmaW5lZChfTVNDX1ZFUikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZD
IDYKLSAgICAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJz
aW9uIGZyb20gX19pbnQ2NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVu
c2lnbmVkIF9faW50NjQpLgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04gMQotICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNU
TCAoaWRlbnRpZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBp
biB0aGUgZGVidWcgaW5mb3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBz
ZWVuIHdpdGggVlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAg
IC8vIHdpdGggcHJhZ21hIHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6
IDQ3ODYpCi0jICBlbmRpZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBN
U1ZDIDIwMDgKLSAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBp
cyBkZXByZWNhdGVkLgotIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9f
ZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZp
bmVkKF9NU0NfVkVSKQotCi0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQot
I2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEw
Ci0jZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49
IDIwMTAKLQotI2lmZGVmIF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9y
ZWZlcmVuY2VzKQotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYg
IC8vIGhhc19mZWF0dXJlCi0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChn
Y2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19H
WFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklN
RU5UQUwKLQotI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90
IGRlZmluZWQgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0j
ZW5kaWYKLQotI2lmZGVmIF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3Qg
Y2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAo
X19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgo
ZGVwcmVjYXRlZChtZXNzYWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19f
ID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJF
Q0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlm
ICAvLyBHTlVDIHZlcnNpb24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lm
ICFkZWZpbmVkKEpTT05DUFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVE
KG1lc3NhZ2UpCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1u
YW1lc3BhY2UgSnNvbiB7Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBV
SW50OwotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7
Ci10eXBlZGVmIHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2
NAotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8v
IEZvciBNaWNyb3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMg
bm90IHN1cHBvcnRlZAotI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwg
U3R1ZGlvCi10eXBlZGVmIF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQg
VUludDY0OwotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8v
IE90aGVyIHBsYXRmb3JtcywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IElu
dDY0OwotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBV
SW50NjQgTGFyZ2VzdFVJbnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlm
IC8vIEpTT05fQ09ORklHX0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0j
aWZuZGVmIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hf
SU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQot
Ci1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xh
c3MgU3R5bGVkV3JpdGVyOwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0
dXJlcy5oCi1jbGFzcyBGZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBp
bnQgQXJyYXlJbmRleDsKLWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQ
YXRoQXJndW1lbnQ7Ci1jbGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xh
c3MgVmFsdWVJdGVyYXRvcjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1l
c3BhY2UgSnNvbgotCi0jZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3
YXJkcy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2VuZGlmIC8vaWZuZGVmIEpTT05f
Rk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
anNvbi9qc29uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyN2Y2NWQ5ZGZhODUz
NmMzNWZmNDdkZTA4NGZlY2U3ODk4YWIxZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDIwNzcgKzAsMCBAQAotLy8vIEpzb24tY3BwIGFtYWxnYXRl
ZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgotLy8vIEl0IGlzIGlu
dGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCi0KLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLQotLyoKLVRoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29kZSwgaW5j
bHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKLXRlc3RzIGFuZCBkZW1vbnN0cmF0
aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcKLWNvbmRp
dGlvbnMuLi4KLQotVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRp
c2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAotanVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUg
c3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCi10aGlzIHNvZnR3YXJl
IGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCi0KLUluIGp1cmlzZGljdGlvbnMg
d2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcuIEdlcm1h
bnkgYXMgb2YKLTIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEw
IGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCi1yZWxlYXNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNo
IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlzIAotc29m
dHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21haW4s
IDIpIHVuZGVyIHRoZSAKLWNvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cp
LCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKLVB1YmxpYyBEb21haW4vTUlUIExpY2Vu
c2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCi0KLVRoZSBNSVQg
TGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGljZW5zZSBj
YW4gZ2V0LCBhbmQgaXMKLWRlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKLQot
ICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQotICAgCi1UaGUgZnVs
bCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgotCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLUNv
cHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotCi1QZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgotb2J0YWluaW5n
IGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KLWZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKLXJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LAotbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzCi1vZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLWluY2x1ZGVkIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotCi1USEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLUVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQKLU5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMKLUJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLUNPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKLVNPRlRXQVJF
LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0oRU5EIExJQ0VOU0UgVEVYVCkKLQotVGhlIE1JVCBsaWNlbnNl
IGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKLXNvZnR3YXJl
LCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4gd2l0aCB0
aGUKLW1pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UKLWFuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2RlLiBOb3Rl
IGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCi1QdWJsaWMgRG9tYWluICJsaWNlbnNlIiB5b3Ug
Y2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCi1saWNlbnNlIHlvdSBsaWtl
LgotCi0qLwotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBM
SUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2lmbmRlZiBKU09OX0FNQUxHQVRF
RF9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0vLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAotLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgotI2RlZmluZSBKU09OX0lTX0FN
QUxHQU1BVElPTgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIERP
IE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIpIGlzIGdlbmVyYXRlZCBieSBDTWFr
ZS4KLS8vIFJ1biBDTWFrZSBjb25maWd1cmUgc3RlcCB0byB1cGRhdGUgaXQuCi0jaWZuZGVmIEpT
T05fVkVSU0lPTl9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAot
Ci0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICIxLjYuNSIKLSMgZGVmaW5lIEpTT05D
UFBfVkVSU0lPTl9NQUpPUiAxCi0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUlOT1IgNgotIyBk
ZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDUKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9R
VUFMSUZJRVIKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhBICgoSlNPTkNQUF9WRVJTSU9O
X01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgKEpTT05DUFBf
VkVSU0lPTl9QQVRDSCA8PCA4KSkKLQotI2VuZGlmIC8vIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVE
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi92ZXJzaW9uLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25m
aWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJhcnkuCi0v
LyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRo
YXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBkZWZpbmUgSlNPTl9VU0Vf
Q1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3RvciBiYXNl
ZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6bWFwCi0vLy8gYXMgVmFs
dWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAgMQotCi0v
LyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9ydCBiYWQg
aW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVsdCBpcyB0
byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jZGVmaW5lIEpT
T05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0
aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBwcmV2ZW50IHByaXZhdGUg
aGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmlu
ZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8gI2RlZmluZSBKU09OX0lT
X0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2luY2x1ZGUgPGNwcHRsL2Nv
bmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBKU09OX1VTRV9DUFBUTCAx
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2RlZmluZSBKU09OX0FQ
SSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCi0jaWYgZGVmaW5lZChf
TVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCi0jZGVmaW5l
IEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNlbmRpZiAvLyBpZiBkZWZp
bmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKLSNkZWZpbmUgSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlmIC8vIGlmIGRlZmluZWQo
X01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lmICFkZWZpbmVkKEpT
T05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElmIEpTT05fTk9fSU5UNjQg
aXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBmb3IKLS8v
IGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQgaXMgZGlz
YWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYgZGVmaW5lZChfTVNDX1ZF
UikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKLSAgICAvLyBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20gX19pbnQ2
NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQp
LgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQotICAgIC8v
IERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRpZmllciB3
YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVidWcgaW5m
b3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGggVlM2IHdl
cmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAgIC8vIHdpdGggcHJhZ21h
IHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCi0jICBlbmRp
ZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKLSAgICAv
Ly8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVj
YXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQot
Ci0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmIGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCi0jZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49IDIwMTAKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2VzKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIGhhc19mZWF0dXJl
Ci0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIg
c2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFM
X0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2RlZmluZSBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKLQotI2VuZGlm
IC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90IGRlZmluZWQgSlNPTl9I
QVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNF
UwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0jZW5kaWYKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21l
cyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAoX19HTlVDX18gPiA0IHx8
IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQotIyAgICBkZWZpbmUgSlNP
TkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRlZChtZXNz
YWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVD
X01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkg
IF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlmICAvLyBHTlVDIHZlcnNp
b24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lmICFkZWZpbmVkKEpTT05D
UFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpCi0jZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1uYW1lc3BhY2UgSnNvbiB7
Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OwotI2lmIGRlZmlu
ZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7Ci10eXBlZGVmIHVuc2ln
bmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2NAotI2Vsc2UgICAgICAg
ICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8vIEZvciBNaWNyb3NvZnQg
VmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAot
I2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCi10eXBlZGVm
IF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OwotI2Vsc2Ug
ICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBsYXRmb3Jt
cywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwotdHlwZWRlZiB1
bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJ
bnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlmIC8vIEpTT05fQ09ORklH
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0y
MDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2Us
IG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBq
dXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBo
dHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fRk9S
V0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNv
biB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xhc3MgU3R5bGVkV3JpdGVy
OwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0dXJlcy5oCi1jbGFzcyBG
ZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsK
LWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQYXRoQXJndW1lbnQ7Ci1j
bGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xhc3MgVmFsdWVJdGVyYXRv
cjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0j
ZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
LS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQotCi0jaWZuZGVmIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAotI2RlZmluZSBD
UFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotI2luY2x1ZGUgImZvcndhcmRzLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLyoqIFxicmllZiBD
b25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KLSAqIFRoaXMgY29uZmln
dXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBXcml0ZXIK
LSAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgotICovCi1jbGFzcyBK
U09OX0FQSSBGZWF0dXJlcyB7Ci1wdWJsaWM6Ci0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9u
IHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncwotICAgKiBh
cmUgVVRGLTguCi0gICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAotICAgKiAtIFJv
b3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQotICAgKiAtIEFzc3VtZXMgVmFsdWUgc3Ry
aW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAotICAgKi8KLSAgc3RhdGljIEZlYXR1cmVzIGFsbCgp
OwotCi0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29tcGF0
aWJsZSB3aXRoIHRoZSBKU09OCi0gICAqIHNwZWNpZmljYXRpb24uCi0gICAqIC0gQ29tbWVudHMg
YXJlIGZvcmJpZGRlbi4KLSAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJh
eSBvciBhbiBvYmplY3QgdmFsdWUuCi0gICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBl
bmNvZGVkIGluIFVURi04Ci0gICAqLwotICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9kZSgpOwot
Ci0gIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpzb25Db25m
aWc6OmFsbEZlYXR1cmVzOwotICAgKi8KLSAgRmVhdHVyZXMoKTsKLQotICAvLy8gXGMgdHJ1ZSBp
ZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KLSAgYm9vbCBhbGxvd0Nv
bW1lbnRzXzsKLQotICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5
IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKLSAgLy8vIGZhbHNlLgotICBib29sIHN0
cmljdFJvb3RfOwotCi0gIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhvbGRlcnMg
YXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgotICBib29sIGFsbG93RHJvcHBlZE51bGxQ
bGFjZWhvbGRlcnNfOwotCi0gIC8vLyBcYyB0cnVlIGlmIG51bWVyaWMgb2JqZWN0IGtleSBhcmUg
YWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2UuCi0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBKc29uCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX0ZFQVRVUkVT
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1
ZGUvanNvbi92YWx1ZS5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIw
MTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgQ1BQVExfSlNP
Tl9IX0lOQ0xVREVECi0jZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAotCi0jaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSAiZm9yd2FyZHMuaCIKLSNlbmRpZiAv
LyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgPGV4Y2VwdGlvbj4KLQotI2lmbmRlZiBKU09OX1VT
RV9DUFBUTF9TTUFMTE1BUAotI2luY2x1ZGUgPG1hcD4KLSNlbHNlCi0jaW5jbHVkZSA8Y3BwdGwv
c21hbGxtYXAuaD4KLSNlbmRpZgotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0jaW5jbHVkZSA8Y3Bw
dGwvZm9yd2FyZHMuaD4KLSNlbmRpZgotCi0vLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRh
IG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KLS8vIGJlIHVz
ZWQgYnkuLi4KLSNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcpCi0jcHJhZ21hIHdhcm5pbmcocHVzaCkKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1
MSkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCi0KLS8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pLgot
ICovCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8qKiBCYXNlIGNsYXNzIGZvciBhbGwgZXhjZXB0aW9u
cyB3ZSB0aHJvdy4KLSAqCi0gKiBXZSB1c2Ugbm90aGluZyBidXQgdGhlc2UgaW50ZXJuYWxseS4g
T2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KLSAqLwotY2xhc3MgSlNPTl9BUEkgRXhj
ZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKLXB1YmxpYzoKLSAgRXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotICB+RXhjZXB0aW9uKCkgdGhyb3coKTsKLSAgY2hhciBj
b25zdCogd2hhdCgpIGNvbnN0IHRocm93KCk7Ci1wcm90ZWN0ZWQ6Ci0gIHN0ZDo6c3RyaW5nIG1z
Z187Ci19OwotCi0vKiogRXhjZXB0aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFzaWx5IGF2
b2lkLgotICoKLSAqIEUuZy4gb3V0LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9jKSwgc3Rh
Y2stb3ZlcmZsb3csIG1hbGljaW91cyBpbnB1dAotICogCi0gKiBccmVtYXJrIGRlcml2ZWQgZnJv
bSBKc29uOjpFeGNlcHRpb24KLSAqLwotY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9yIDogcHVi
bGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIFJ1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKLX07Ci0KLS8qKiBFeGNlcHRpb25zIHRocm93biBieSBKU09OX0FTU0VSVC9KU09O
X0ZBSUwgbWFjcm9zLgotICoKLSAqIFRoZXNlIGFyZSBwcmVjb25kaXRpb24tdmlvbGF0aW9ucyAo
dXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJyb3JzIChvdXIgYnVncykuCi0gKiAKLSAqIFxyZW1h
cmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgotICovCi1jbGFzcyBKU09OX0FQSSBMb2dp
Y0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIExvZ2ljRXJyb3Ioc3RkOjpz
dHJpbmcgY29uc3QmIG1zZyk7Ci19OwotCi0vLy8gdXNlZCBpbnRlcm5hbGx5Ci12b2lkIHRocm93
UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotLy8vIHVzZWQgaW50ZXJuYWxs
eQotdm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Ci0KLS8qKiBc
YnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KLSAqLwotZW51
bSBWYWx1ZVR5cGUgewotICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQotICBpbnRW
YWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCi0gIHVpbnRWYWx1ZSwgICAgIC8v
LzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQotICByZWFsVmFsdWUsICAgICAvLy88IGRvdWJsZSB2
YWx1ZQotICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQotICBib29sZWFu
VmFsdWUsICAvLy88IGJvb2wgdmFsdWUKLSAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJheSB2YWx1
ZSAob3JkZXJlZCBsaXN0KQotICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1ZSAoY29s
bGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KLX07Ci0KLWVudW0gQ29tbWVudFBsYWNlbWVu
dCB7Ci0gIGNvbW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0
aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQotICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAvLy88IGEg
Y29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQotICBjb21tZW50QWZ0
ZXIsIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkgbWFrZSBz
ZW5zZSBmb3IKLSAgLy8vIHJvb3QgdmFsdWUpCi0gIG51bWJlck9mQ29tbWVudFBsYWNlbWVudAot
fTsKLQotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgIHR5cGVkZWYgQ3BwVEw6OkFueUVu
dW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7Ci0vLyAgIHR5cGVkZWYgQ3Bw
VEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKLS8vIyBlbmRpZgot
Ci0vKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJpbmcuCi0g
KgotICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3NpZ25lbWVu
dCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCi0gKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lkIHRoZSBj
b3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCi0gKiBzdHJpbmcgb3Ig
dGhlIG1lbWJlciBuYW1lLgotICoKLSAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gKiBcY29kZQotICog
SnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gKiBKc29u
OjpWYWx1ZSBvYmplY3Q7Ci0gKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUi
KTsKLSAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gKiBcZW5kY29kZQotICovCi1jbGFzcyBKU09O
X0FQSSBTdGF0aWNTdHJpbmcgewotcHVibGljOgotICBleHBsaWNpdCBTdGF0aWNTdHJpbmcoY29u
c3QgY2hhciogY3pzdHJpbmcpIDogY19zdHJfKGN6c3RyaW5nKSB7fQotCi0gIG9wZXJhdG9yIGNv
bnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9Ci0KLSAgY29uc3QgY2hhciogY19z
dHIoKSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KLQotcHJpdmF0ZToKLSAgY29uc3QgY2hhciog
Y19zdHJfOwotfTsKLQotLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCi0gKgotICogVGhpcyBjbGFzcyBpcyBhIGRpc2Ny
aW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6Ci0gKiAtIHNpZ25l
ZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCi0gKiAtIHVu
c2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCi0gKiAtIGRvdWJsZQot
ICogLSBVVEYtOCBzdHJpbmcKLSAqIC0gYm9vbGVhbgotICogLSAnbnVsbCcKLSAqIC0gYW4gb3Jk
ZXJlZCBsaXN0IG9mIFZhbHVlCi0gKiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyAo
amF2YXNjcmlwdCBvYmplY3QpCi0gKgotICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFsdWUgaXMg
cmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZAotICogY2FuIGJlIG9idGFpbmVkIHVzaW5n
IHR5cGUoKS4KLSAqCi0gKiBWYWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVl
IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkKLSAqIG1ldGhvZHMuCi0gKiBOb24t
Y29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUg
ZWxlbWVudAotICogaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gKiBUaGUgc2VxdWVuY2Ugb2YgYW4g
I2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRpYWxpemVk
Ci0gKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFyZ2Ugb3Ig
dHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCi0gKgotICogVGhlIGdldCgpIG1ldGhvZHMgY2FuIGJl
IHVzZWQgdG8gb2J0YWluIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCi0gKiByZXF1aXJl
ZCBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgotICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJh
dGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcKLSAqIHRoZSBn
ZXRNZW1iZXJOYW1lcygpIG1ldGhvZC4KLSAqCi0gKiBcbm90ZSAjVmFsdWUgc3RyaW5nLWxlbmd0
aCBmaXQgaW4gc2l6ZV90LCBidXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KLSAqIChUaGUgcmVhc29u
IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCByYWlzZSBh
bgotICogZXhjZXB0aW9uIGlmIGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2VjdXJpdHkg
aG9sZXMgaW4geW91ciBhcHAsCi0gKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3QqIGNoZWNr
IGJvdW5kcy4gVGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKLSAqIG9mIHRoZSBjYWxsZXIuCi0g
Ki8KLWNsYXNzIEpTT05fQVBJIFZhbHVlIHsKLSAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JC
YXNlOwotcHVibGljOgotICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBNZW1iZXJz
OwotICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7Ci0gIHR5cGVkZWYgVmFsdWVDb25z
dEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotICB0eXBlZGVmIEpzb246OlVJbnQgVUludDsKLSAg
dHlwZWRlZiBKc29uOjpJbnQgSW50OwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHR5
cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKLSAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICB0eXBlZGVmIEpzb246Okxhcmdl
c3RJbnQgTGFyZ2VzdEludDsKLSAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0VUlu
dDsKLSAgdHlwZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7Ci0KLSAgc3RhdGljIGNv
bnN0IFZhbHVlJiBudWxsOyAgLy8vPCBXZSByZWdyZXQgdGhpcyByZWZlcmVuY2UgdG8gYSBnbG9i
YWwgaW5zdGFuY2U7IHByZWZlciB0aGUgc2ltcGxlciBWYWx1ZSgpLgotICBzdGF0aWMgY29uc3Qg
VmFsdWUmIG51bGxSZWY7ICAvLy88IGp1c3QgYSBrbHVkZ2UgZm9yIGJpbmFyeS1jb21wYXRpYmls
aXR5OyBzYW1lIGFzIG51bGwKLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhh
dCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBMYXJnZXN0
SW50IG1pbkxhcmdlc3RJbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRo
YXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFyZ2Vz
dEludCBtYXhMYXJnZXN0SW50OwotICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVl
IHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFy
Z2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7Ci0KLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludCB2YWx1
ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgc3RhdGljIGNvbnN0IElu
dCBtaW5JbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50OwotICAvLy8g
TWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7Ci0KLSNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQotICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBj
YW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQ2NCBtaW5J
bnQ2NDsKLSAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJl
IHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgSW50NjQgbWF4SW50NjQ7
Ci0gIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0
b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi1wcml2YXRlOgotI2lmbmRlZiBK
U09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gIGNsYXNzIENaU3RyaW5nIHsKLSAg
cHVibGljOgotICAgIGVudW0gRHVwbGljYXRpb25Qb2xpY3kgewotICAgICAgbm9EdXBsaWNhdGlv
biA9IDAsCi0gICAgICBkdXBsaWNhdGUsCi0gICAgICBkdXBsaWNhdGVPbkNvcHkKLSAgICB9Owot
ICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOwotICAgIENaU3RyaW5nKGNoYXIgY29uc3Qq
IHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7Ci0gICAg
Q1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKLSNpZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUwotICAgIENaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpOwotI2VuZGlmCi0gICAgfkNa
U3RyaW5nKCk7Ci0gICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyBvdGhlcik7Ci0gICAg
Ym9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBib29sIG9w
ZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBBcnJheUluZGV4IGlu
ZGV4KCkgY29uc3Q7Ci0gICAgLy9jb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0OyAvLy88IFxkZXBy
ZWNhdGVkCi0gICAgY2hhciBjb25zdCogZGF0YSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OwotICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLQotICBwcml2YXRl
OgotICAgIHZvaWQgc3dhcChDWlN0cmluZyYgb3RoZXIpOwotCi0gICAgc3RydWN0IFN0cmluZ1N0
b3JhZ2UgewotICAgICAgdW5zaWduZWQgcG9saWN5XzogMjsKLSAgICAgIHVuc2lnbmVkIGxlbmd0
aF86IDMwOyAvLyAxR0IgbWF4Ci0gICAgfTsKLQotICAgIGNoYXIgY29uc3QqIGNzdHJfOyAgLy8g
YWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVwCi0gICAg
dW5pb24gewotICAgICAgQXJyYXlJbmRleCBpbmRleF87Ci0gICAgICBTdHJpbmdTdG9yYWdlIHN0
b3JhZ2VfOwotICAgIH07Ci0gIH07Ci0KLXB1YmxpYzoKLSNpZm5kZWYgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAKLSAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVl
czsKLSNlbHNlCi0gIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2Jq
ZWN0VmFsdWVzOwotI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotI2Vu
ZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLXB1Ymxp
YzoKLSAgLyoqIFxicmllZiBDcmVhdGUgYSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZlbiB0eXBl
LgotCi0gICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgotICAgIFRvIGNyZWF0
ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgotICAgIFRvIGNyZWF0ZSBhbiBlbXB0
eSBvYmplY3QsIHBhc3Mgb2JqZWN0VmFsdWUuCi0gICAgQW5vdGhlciBWYWx1ZSBjYW4gdGhlbiBi
ZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KLVRoaXMgaXMgdXNlZnVsIHNpbmNlIGNs
ZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAgRXhhbXBsZXM6
Ci1cY29kZQotSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAotSnNvbjo6VmFsdWUgYXJy
X3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQotSnNvbjo6VmFsdWUgb2JqX3ZhbHVlKEpz
b246Om9iamVjdFZhbHVlKTsgLy8ge30KLVxlbmRjb2RlCi0gICovCi0gIFZhbHVlKFZhbHVlVHlw
ZSB0eXBlID0gbnVsbFZhbHVlKTsKLSAgVmFsdWUoSW50IHZhbHVlKTsKLSAgVmFsdWUoVUludCB2
YWx1ZSk7Ci0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgVmFsdWUoSW50NjQgdmFsdWUp
OwotICBWYWx1ZShVSW50NjQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCi0gIFZhbHVlKGRvdWJsZSB2YWx1ZSk7Ci0gIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVl
KTsgLy8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0LikKLSAg
VmFsdWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29weSBhbGws
IGluY2wgemVyb2VzLgotICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9tIGEgc3Rh
dGljIHN0cmluZy4KLQotICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1Y3RvciBi
dXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgotICAgKiBpbnRlcm5hbCBzdG9yYWdl
LiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxsIHRvIHRo
aXMKLSAgICogY29uc3RydWN0b3IuCi0gICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBmb3IgbnVs
bC10ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQotICAgKiAgIHNpemUg
b2YgdGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5ndGgsCi0g
ICAqICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3BlcmF0aW9u
cy4pCi0gICAqCi0gICAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gICAqIFxjb2RlCi0gICAqIHN0YXRp
YyBTdGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKLSAgICogSnNvbjo6VmFsdWUgYVZhbHVl
KGZvbyk7Ci0gICAqIFxlbmRjb2RlCi0gICAqLwotICBWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcm
IHZhbHVlKTsKLSAgVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsgLy8vPCBDb3B5IGRh
dGEoKSB0aWwgc2l6ZSgpLiBFbWJlZGRlZCB6ZXJvZXMgdG9vLgotI2lmZGVmIEpTT05fVVNFX0NQ
UFRMCi0gIFZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpOwotI2VuZGlmCi0g
IFZhbHVlKGJvb2wgdmFsdWUpOwotICAvLy8gRGVlcCBjb3B5LgotICBWYWx1ZShjb25zdCBWYWx1
ZSYgb3RoZXIpOwotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0gIC8vLyBNb3ZlIGNv
bnN0cnVjdG9yCi0gIFZhbHVlKFZhbHVlJiYgb3RoZXIpOwotI2VuZGlmCi0gIH5WYWx1ZSgpOwot
Ci0gIC8vLyBEZWVwIGNvcHksIHRoZW4gc3dhcChvdGhlcikuCi0gIC8vLyBcbm90ZSBPdmVyLXdy
aXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlICNzd2FwUGF5
bG9hZCgpLgotICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlIG90aGVyKTsKLSAgLy8vIFN3YXAgZXZl
cnl0aGluZy4KLSAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7Ci0gIC8vLyBTd2FwIHZhbHVlcyBi
dXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgotICB2b2lkIHN3
YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7Ci0KLSAgVmFsdWVUeXBlIHR5cGUoKSBjb25zdDsKLQot
ICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBldGMuCi0gIGJvb2wgb3Bl
cmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3BlcmF0b3I8PShjb25z
dCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBib29sIG9wZXJhdG9yPj0oY29uc3QgVmFsdWUmIG90
aGVyKSBjb25zdDsKLSAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsK
LSAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBpbnQgY29tcGFyZShjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0OwotCi0gIGNvbnN0IGNoYXIqIGFzQ1N0cmluZygpIGNvbnN0OyAv
Ly88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJsZSEKLSAgc3RkOjpzdHJp
bmcgYXNTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3NpYmxlLgot
ICAvKiogR2V0IHJhdyBjaGFyKiBvZiBzdHJpbmctdmFsdWUuCi0gICAqICBccmV0dXJuIGZhbHNl
IGlmICFzdHJpbmcuIChTZWctZmF1bHQgaWYgc3RyIG9yIGVuZCBhcmUgTlVMTC4pCi0gICAqLwot
ICBib29sIGdldFN0cmluZygKLSAgICAgIGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBjb25zdCoq
IGVuZCkgY29uc3Q7Ci0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgQ3BwVEw6OkNvbnN0U3RyaW5n
IGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKLSNlbmRpZgotICBJbnQgYXNJbnQoKSBjb25zdDsKLSAg
VUludCBhc1VJbnQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICBJbnQ2
NCBhc0ludDY0KCkgY29uc3Q7Ci0gIFVJbnQ2NCBhc1VJbnQ2NCgpIGNvbnN0OwotI2VuZGlmIC8v
IGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIExhcmdlc3RJbnQgYXNMYXJnZXN0SW50KCkg
Y29uc3Q7Ci0gIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKLSAgZmxvYXQgYXNG
bG9hdCgpIGNvbnN0OwotICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKLSAgYm9vbCBhc0Jvb2wo
KSBjb25zdDsKLQotICBib29sIGlzTnVsbCgpIGNvbnN0OwotICBib29sIGlzQm9vbCgpIGNvbnN0
OwotICBib29sIGlzSW50KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnQ2NCgpIGNvbnN0OwotICBib29s
IGlzVUludCgpIGNvbnN0OwotICBib29sIGlzVUludDY0KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnRl
Z3JhbCgpIGNvbnN0OwotICBib29sIGlzRG91YmxlKCkgY29uc3Q7Ci0gIGJvb2wgaXNOdW1lcmlj
KCkgY29uc3Q7Ci0gIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKLSAgYm9vbCBpc0FycmF5KCkgY29u
c3Q7Ci0gIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKLQotICBib29sIGlzQ29udmVydGlibGVUbyhW
YWx1ZVR5cGUgb3RoZXIpIGNvbnN0OwotCi0gIC8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAvLy8gXGJyaWVmIFJl
dHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Ci0gIC8vLyBv
dGhlcndpc2UsIGZhbHNlLgotICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgLy8vIFJldHVybiBp
c051bGwoKQotICBib29sIG9wZXJhdG9yISgpIGNvbnN0OwotCi0gIC8vLyBSZW1vdmUgYWxsIG9i
amVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgLy8vIFxwcmUgdHlwZSgpIGlzIGFy
cmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKLSAgLy8vIFxwb3N0IHR5cGUoKSBp
cyB1bmNoYW5nZWQKLSAgdm9pZCBjbGVhcigpOwotCi0gIC8vLyBSZXNpemUgdGhlIGFycmF5IHRv
IHNpemUgZWxlbWVudHMuCi0gIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIG51
bGwuCi0gIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5VmFsdWUu
Ci0gIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBv
c3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgdm9pZCByZXNpemUoQXJyYXlJbmRleCBzaXplKTsK
LQotICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KLSAg
Ly8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBu
dWxsIHZhbHVlIGFyZQotICAvLy8gaW5zZXJ0ZWQKLSAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0
IGl0cyBzaXplIGlzIGluZGV4KzEuCi0gIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVb
MHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAvLy8gIHRoaXMgZnJv
bSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gIFZhbHVlJiBvcGVyYXRv
cltdKEFycmF5SW5kZXggaW5kZXgpOwotCi0gIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAo
emVybyBiYXNlZCBpbmRleCApLgotICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhh
biBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCi0gIC8vLyBpbnNlcnRlZAotICAv
Ly8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgLy8vIChZb3Ug
bWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rp
bmd1aXNoCi0gIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3Ry
aW5nLikKLSAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsKLQotICAvLy8gQWNjZXNzIGFu
IGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBtYXkgbmVlZCB0
byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAg
Ly8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICBj
b25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLQotICAvLy8g
QWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBt
YXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGlu
Z3Vpc2gKLSAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJp
bmcuKQotICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0OwotCi0gIC8v
LyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJu
cyB0aGUgZWxlbWVudAotICAvLy8gdmFsdWUsCi0gIC8vLyBvdGhlcndpc2UgcmV0dXJucyBkZWZh
dWx0VmFsdWUuCi0gIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4LCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgot
ICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLSAgLy8vIFxicmll
ZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KLSAgLy8vCi0gIC8vLyBFcXVpdmFs
ZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICBWYWx1ZSYgYXBw
ZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8v
LyBcbm90ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGltaXRlZCB0
byAyXjMwIC0xIGNoYXJzLgotICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2UgYW4gZXhj
ZXB0aW9uLgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOwotICAvLy8gQWNj
ZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8g
bWVtYmVyIHdpdGgKLSAgLy8vIHRoYXQgbmFtZS4KLSAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgY2hhcioga2V5KSBjb25zdDsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkg
bmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8vLyBc
cGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSYgb3BlcmF0b3Jb
XShjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCi0gIC8vLyB0
aGF0IG5hbWUuCi0gIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgot
ICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBjb25zdDsK
LSAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51
bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90Ci0gICBleGlzdC4KLQotICAgKiBJZiB0aGUgb2JqZWN0
IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1c2VkIHRv
IHN0b3JlCi0gICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAqIEV4YW1w
bGUgb2YgdXNlOgotICAgKiBcY29kZQotICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAqIHN0
YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgKiBvYmplY3RbY29kZV0g
PSAxMjM0OwotICAgKiBcZW5kY29kZQotICAgKi8KLSAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qg
U3RhdGljU3RyaW5nJiBrZXkpOwotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0gIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcm
IGtleSk7Ci0gIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVs
bCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAotICAvLy8gdGhhdCBuYW1lLgotICBjb25zdCBW
YWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVm
YXVsdFZhbHVlIG90aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICBWYWx1ZSBnZXQo
Y29uc3QgY2hhcioga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSAgLy8v
IFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90
aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICAvLy8gXG5vdGUga2V5IG1heSBjb250
YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSBnZXQoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0
IGNoYXIqIGVuZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBSZXR1
cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndp
c2UuCi0gIC8vLyBcbm90ZSBkZWVwIGNvcHkKLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4g
ZW1iZWRkZWQgbnVsbHMuCi0gIFZhbHVlIGdldChjb25zdCBzdGQ6OnN0cmluZyYga2V5LCBjb25z
dCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTAotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgotICAvLy8gXG5vdGUgZGVlcCBjb3B5Ci0gIFZhbHVlIGdldChjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2YgaXNNZW1i
ZXIoKWNvbnN0LCBnZXQoKWNvbnN0LAotICAvLy8gYW5kIG9wZXJhdG9yW11jb25zdAotICAvLy8g
XG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIChlbmQt
YmVnaW4pID49IDJeMzAKLSAgVmFsdWUgY29uc3QqIGZpbmQoY2hhciBjb25zdCogYmVnaW4sIGNo
YXIgY29uc3QqIGVuZCkgY29uc3Q7Ci0gIC8vLyBNb3N0IGdlbmVyYWwgYW5kIGVmZmljaWVudCB2
ZXJzaW9uIG9mIG9iamVjdC1tdXRhdG9ycy4KLSAgLy8vIFxub3RlIEFzIHN0YXRlZCBlbHNld2hl
cmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCi0gIC8vLyBc
cmV0dXJuIG5vbi16ZXJvLCBidXQgSlNPTl9BU1NFUlQgaWYgdGhpcyBpcyBuZWl0aGVyIG9iamVj
dCBub3IgbnVsbFZhbHVlLgotICBWYWx1ZSBjb25zdCogZGVtYW5kKGNoYXIgY29uc3QqIGJlZ2lu
LCBjaGFyIGNvbnN0KiBlbmQpOwotICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJuIHRoZSBu
YW1lZCBtZW1iZXIuCi0gIC8vLwotICAvLy8gRG8gbm90aGluZyBpZiBpdCBkaWQgbm90IGV4aXN0
LgotICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgLy8vIFxwcmUg
dHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBvc3QgdHlwZSgpIGlz
IHVuY2hhbmdlZAotICAvLy8gXGRlcHJlY2F0ZWQKLSAgVmFsdWUgcmVtb3ZlTWVtYmVyKGNvbnN0
IGNoYXIqIGtleSk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKikKLSAg
Ly8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCi0gIC8vLyBcZGVwcmVj
YXRlZAotICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0gIC8v
LyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5k
LCBWYWx1ZSogcmVtb3ZlZCksCi0gIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5hdGVkLgot
ICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKTsKLSAg
LyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCi0KLSAgICAgIFVwZGF0ZSAn
cmVtb3ZlZCcgaWZmIHJlbW92ZWQuCi0gICAgICBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVk
ZGVkIG51bGxzLgotICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNlcHRpb25z
KQotICAqLwotICBib29sIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1
ZSogcmVtb3ZlZCk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25z
dCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKLSAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhciog
YmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOwotICAvKiogXGJyaWVmIFJl
bW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgotCi0gICAgICBPKG4pIGV4cGVuc2l2ZSBv
cGVyYXRpb25zLgotICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KLSAgICAgIFxy
ZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKLSAgKi8KLSAgYm9vbCByZW1v
dmVJbmRleChBcnJheUluZGV4IGksIFZhbHVlKiByZW1vdmVkKTsKLQotICAvLy8gUmV0dXJuIHRy
dWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAvLy8gXG5vdGUgJ2tl
eScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCi0gIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hhciog
a2V5KSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVy
IG5hbWVkIGtleS4KLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMu
Ci0gIGJvb2wgaXNNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7Ci0gIC8vLyBT
YW1lIGFzIGlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpY29uc3QKLSAgYm9vbCBpc01l
bWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSBjb25zdDsKLSNpZmRlZiBK
U09OX1VTRV9DUFBUTAotICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1i
ZXIgbmFtZWQga2V5LgotICBib29sIGlzTWVtYmVyKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYg
a2V5KSBjb25zdDsKLSNlbmRpZgotCi0gIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBvZiB0aGUg
bWVtYmVyIG5hbWVzLgotICAvLy8KLSAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0eSBsaXN0
LgotICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCi0gIC8vLyBc
cG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgTWVt
YmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OwotCi0gIC8vIyBpZmRlZiBKU09OX1VTRV9DUFBU
TAotICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKLSAg
Ly8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKLSAgLy8jIGVuZGlmCi0KLSAg
Ly8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJV
c2Ugc2V0Q29tbWVudChzdGQ6OnN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKLSAgdm9pZCBzZXRD
b21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsK
LSAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCi0gIHZvaWQgc2V0Q29t
bWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCk7Ci0gIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICB2
b2lkIHNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1l
bnQgcGxhY2VtZW50KTsKLSAgYm9vbCBoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KSBjb25zdDsKLSAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQgbmV3bGlu
ZXMuCi0gIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
IGNvbnN0OwotCi0gIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7Ci0KLSAgY29u
c3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKLSAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7
Ci0KLSAgaXRlcmF0b3IgYmVnaW4oKTsKLSAgaXRlcmF0b3IgZW5kKCk7Ci0KLSAgLy8gQWNjZXNz
b3JzIGZvciB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSBKU09O
IHRleHQgZnJvbQotICAvLyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFueS4KLSAg
dm9pZCBzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpOwotICB2b2lkIHNldE9mZnNldExpbWl0
KHNpemVfdCBsaW1pdCk7Ci0gIHNpemVfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0OwotICBzaXpl
X3QgZ2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdm9pZCBpbml0QmFzaWMo
VmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkID0gZmFsc2UpOwotCi0gIFZhbHVlJiByZXNv
bHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7Ci0gIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNl
KGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKLQotICBzdHJ1Y3QgQ29tbWVudElu
Zm8gewotICAgIENvbW1lbnRJbmZvKCk7Ci0gICAgfkNvbW1lbnRJbmZvKCk7Ci0KLSAgICB2b2lk
IHNldENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbik7Ci0KLSAgICBjaGFyKiBj
b21tZW50XzsKLSAgfTsKLQotICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KLSAgLy97
Ci0gIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKLSAgLy8gICBjb25zdCBj
aGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0Ci0gIC8vICAgewot
ICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7Ci0gIC8vICAgfQotICAvL307Ci0KLSAgdW5p
b24gVmFsdWVIb2xkZXIgewotICAgIExhcmdlc3RJbnQgaW50XzsKLSAgICBMYXJnZXN0VUludCB1
aW50XzsKLSAgICBkb3VibGUgcmVhbF87Ci0gICAgYm9vbCBib29sXzsKLSAgICBjaGFyKiBzdHJp
bmdfOyAgLy8gYWN0dWFsbHkgcHRyIHRvIHVuc2lnbmVkLCBmb2xsb3dlZCBieSBzdHIsIHVubGVz
cyAhYWxsb2NhdGVkXwotICAgIE9iamVjdFZhbHVlcyogbWFwXzsKLSAgfSB2YWx1ZV87Ci0gIFZh
bHVlVHlwZSB0eXBlXyA6IDg7Ci0gIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsgLy8gTm90
ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGFsbG9jYXRlZF8sIHN0cmluZ18gbXVzdCBi
ZSBudWxsLXRlcm1pbmF0ZWQuCi0gIENvbW1lbnRJbmZvKiBjb21tZW50c187Ci0gIFZhbHVlICpk
ZWZhdWx0X3ZhbHVlXzsgIC8vIGlmIHZpYSAuZ2V0KCAia2V5IiwgZGVmYXVsdCApLCB0aGlzIHdh
cyB0aGUgZGVmYXVsdAotCi0gIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBpbiB0aGUg
c291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKLSAgLy8gd2FzIGV4dHJhY3Rl
ZC4KLSAgc2l6ZV90IHN0YXJ0XzsKLSAgc2l6ZV90IGxpbWl0XzsKLX07Ci0KLS8qKiBcYnJpZWYg
RXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9mIHRoZSAi
cGF0aCIgdG8KLSAqIGFjY2VzcyBhIG5vZGUuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBhdGhBcmd1
bWVudCB7Ci1wdWJsaWM6Ci0gIGZyaWVuZCBjbGFzcyBQYXRoOwotCi0gIFBhdGhBcmd1bWVudCgp
OwotICBQYXRoQXJndW1lbnQoQXJyYXlJbmRleCBpbmRleCk7Ci0gIFBhdGhBcmd1bWVudChjb25z
dCBjaGFyKiBrZXkpOwotICBQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0K
LXByaXZhdGU6Ci0gIGVudW0gS2luZCB7Ci0gICAga2luZE5vbmUgPSAwLAotICAgIGtpbmRJbmRl
eCwKLSAgICBraW5kS2V5Ci0gIH07Ci0gIHN0ZDo6c3RyaW5nIGtleV87Ci0gIEFycmF5SW5kZXgg
aW5kZXhfOwotICBLaW5kIGtpbmRfOwotfTsKLQotLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5k
IHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gKgotICog
U3ludGF4OgotICogLSAiLiIgPT4gcm9vdCBub2RlCi0gKiAtICIuW25dIiA9PiBlbGVtZW50cyBh
dCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKLSAqIC0gIi5uYW1lIiA9
PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVlKQotICog
LSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICogLSAiLlswXVsxXVsyXS5uYW1lMVszXSIKLSAqIC0g
Ii4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIKLSAqIC0gIi5bJV0i
ID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBh
dGggewotcHVibGljOgotICBQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAotICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRo
QXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCi0gICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhMyA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQgPSBQ
YXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0aEFyZ3Vt
ZW50KCkpOwotCi0gIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290KSBjb25z
dDsKLSAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBz
cGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgotICAvLy8gdGhlIG5vZGUu
Ci0gIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdHlwZWRl
ZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7Ci0gIHR5cGVkZWYgc3Rk
Ojp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOwotCi0gIHZvaWQgbWFrZVBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pOwotICB2b2lkIGFkZFBhdGhJbkFyZyhj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5Bcmdz
JiBpbiwKLSAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFy
ZywKLSAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpOwotICB2b2lk
IGludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBpbnQgbG9jYXRpb24pOwotCi0g
IEFyZ3MgYXJnc187Ci19OwotCi0vKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVlIGl0ZXJh
dG9ycy4KLSAqCi0gKi8KLWNsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3JCYXNlIHsKLXB1Ymxp
YzoKLSAgdHlwZWRlZiBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGl0ZXJhdG9yX2Nh
dGVnb3J5OwotICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gIHR5cGVkZWYgaW50IGRp
ZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlwZTsKLQot
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBp
c0VxdWFsKG90aGVyKTsgfQotCi0gIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFsKG90aGVyKTsgfQotCi0gIGRpZmZlcmVuY2VfdHlw
ZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7Ci0gICAgcmV0dXJuIG90
aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7Ci0gIH0KLQotICAvLy8gUmV0dXJuIGVpdGhlciB0
aGUgaW5kZXggb3IgdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHZhbHVlIGFzIGEK
LSAgLy8vIFZhbHVlLgotICBWYWx1ZSBrZXkoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBp
bmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFuIGFycmF5
VmFsdWUuCi0gIFVJbnQgaW5kZXgoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8v
LyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1bHQsIGFz
IGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCi0gIHN0ZDo6c3RyaW5nIG5hbWUoKSBjb25z
dDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1
ZS4gIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8vLyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxkZXByZWNh
dGVkIFRoaXMgY2Fubm90IGJlIHVzZWQgZm9yIFVURi04IHN0cmluZ3MsIHNpbmNlIHRoZXJlIGNh
biBiZSBlbWJlZGRlZCBudWxscy4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtleSA9IG5h
bWUoKTtgIGluc3RlYWQuIikKLSAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0OwotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgTlVM
TCBpZiBpdCBpcyBub3QgYW4KLSAgLy8vIG9iamVjdFZhbHVlLgotICAvLy8gXG5vdGUgQmV0dGVy
IHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4KLSAgY2hh
ciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKLQotcHJvdGVjdGVk
OgotICBWYWx1ZSYgZGVyZWYoKSBjb25zdDsKLQotICB2b2lkIGluY3JlbWVudCgpOwotCi0gIHZv
aWQgZGVjcmVtZW50KCk7Ci0KLSAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5jZShjb25z
dCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OwotCi0gIGJvb2wgaXNFcXVhbChjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0OwotCi0gIHZvaWQgY29weShjb25zdCBTZWxmVHlwZSYgb3RoZXIpOwot
Ci1wcml2YXRlOgotICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50XzsKLSAg
Ly8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KLSAgYm9vbCBp
c051bGxfOwotCi1wdWJsaWM6Ci0gIC8vIEZvciBzb21lIHJlYXNvbiwgQk9STEFORCBuZWVkcyB0
aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKLSAgLy8gdGhhbiBlYXJsaWVyLiBObyBpZGVhIHdoeS4K
LSAgVmFsdWVJdGVyYXRvckJhc2UoKTsKLSAgZXhwbGljaXQgVmFsdWVJdGVyYXRvckJhc2UoY29u
c3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotfTsKLQotLyoqIFxi
cmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAqCi0gKi8K
LWNsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9y
QmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0eXBlZGVmIGNvbnN0
IFZhbHVlIHZhbHVlX3R5cGU7Ci0gIC8vdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAv
L3R5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBjb25zdCBWYWx1ZSYgcmVm
ZXJlbmNlOwotICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOwotICB0eXBlZGVmIFZhbHVl
Q29uc3RJdGVyYXRvciBTZWxmVHlwZTsKLQotICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKLSAgVmFs
dWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKTsKLQotcHJpdmF0ZToK
LS8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4KLSAqLwot
ICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6
aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGljOgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQp
IHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICArKyp0aGlzOwotICAgIHJldHVybiB0
ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKLSAgICBTZWxmVHlwZSB0
ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2Vs
ZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7Ci0gICAgaW5jcmVtZW50KCk7Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVy
biAmZGVyZWYoKTsgfQotfTsKLQotLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBh
cnJheSB2YWx1ZS4KLSAqLwotY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1YmxpYyBW
YWx1ZUl0ZXJhdG9yQmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0
eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsK
LSAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICB0eXBlZGVmIFZhbHVlJiByZWZlcmVu
Y2U7Ci0gIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7Ci0gIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBT
ZWxmVHlwZTsKLQotICBWYWx1ZUl0ZXJhdG9yKCk7Ci0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3Io
Y29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7Ci0gIFZhbHVlSXRlcmF0b3IoY29uc3Qg
VmFsdWVJdGVyYXRvciYgb3RoZXIpOwotCi1wcml2YXRlOgotLyohIFxpbnRlcm5hbCBVc2UgYnkg
VmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICovCi0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0
b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGlj
OgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7Ci0KLSAgU2Vs
ZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAr
Kyp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShp
bnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVy
biB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50
KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7
Ci0gICAgaW5jcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNl
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJh
dG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
SnNvbgotCi0KLW5hbWVzcGFjZSBzdGQgewotLy8vIFNwZWNpYWxpemUgc3RkOjpzd2FwKCkgZm9y
IEpzb246OlZhbHVlLgotdGVtcGxhdGU8PgotaW5saW5lIHZvaWQgc3dhcChKc29uOjpWYWx1ZSYg
YSwgSnNvbjo6VmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9Ci19Ci0KLQotI2lmIGRlZmluZWQoSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEgd2FybmluZyhwb3Ap
Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92YWx1ZS5oCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
Ci0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0jZGVmaW5lIENQ
UFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQotI2luY2x1ZGUgImZlYXR1cmVzLmgiCi0jaW5jbHVkZSAidmFsdWUuaCIKLSNlbmRp
ZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxkZXF1ZT4K
LSNpbmNsdWRlIDxpb3Nmd2Q+Ci0jaW5jbHVkZSA8c3RhY2s+Ci0jaW5jbHVkZSA8c3RyaW5nPgot
I2luY2x1ZGUgPGlzdHJlYW0+Ci0KLS8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVt
YmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bwotLy8gYmUgdXNlZCBi
eS4uLgotI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykK
LSNwcmFnbWEgd2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQot
I2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklO
RykKLQotbmFtZXNwYWNlIEpzb24gewotCi0vKiogXGJyaWVmIFVuc2VyaWFsaXplIGEgPGEgSFJF
Rj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQgaW50byBhCi0gKlZhbHVl
LgotICoKLSAqIFxkZXByZWNhdGVkIFVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRl
ci4KLSAqLwotY2xhc3MgSlNPTl9BUEkgUmVhZGVyIHsKLXB1YmxpYzoKLSAgdHlwZWRlZiBjaGFy
IENoYXI7Ci0gIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247Ci0KLSAgLyoqIFxicmllZiBB
biBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBpbiB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBlbmNvdW50
ZXJlZC4KLSAgICoKLSAgICogVGhlIG9mZnNldHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFu
Z2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0LiBOb3RlCi0gICAqIHRoYXQgdGhpcyBpcyBieXRl
cywgbm90IGNvZGVwb2ludHMuCi0gICAqCi0gICAqLwotICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9y
IHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRfbGltaXQ7Ci0g
ICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICAvKiogXGJyaWVmIENvbnN0cnVjdHMg
YSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCi0gICAqIGZvciBwYXJzaW5nLgotICAgKi8K
LSAgUmVhZGVyKCk7Ci0KLSAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5n
IHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKLSAgICogZm9yIHBhcnNpbmcuCi0gICAqLwotICBS
ZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKLQotICAvKiogXGJyaWVmIFJlYWQgYSBW
YWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KLSAgICog
ZG9jdW1lbnQuCi0gICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmluZyBjb250
YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAqICAgICAg
ICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCi0gICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMg
XGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQotICAgKiBi
YWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxj
IGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
VGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgotICAgKiBGZWF0dXJlczo6YWxsb3dDb21tZW50
c18KLSAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KLSAgICogXHJldHVy
biBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFs
c2UgaWYgYW4KLSAgICogZXJyb3Igb2NjdXJyZWQuCi0gICAqLwotICBib29sCi0gIHBhcnNlKGNv
bnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1l
bnRzID0gdHJ1ZSk7Ci0KLSAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9
Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+Ci0gICBkb2N1bWVudC4KLSAgICogXHBhcmFt
IGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBz
dHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBv
aW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVnaW5Eb2Mu
Ci0gICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBk
b2N1bWVudCBpZiBpdCB3YXMKLSAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4K
LSAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBh
bmQgYWxsb3cgd3JpdGluZyB0aGVtCi0gICBiYWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAg
ICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0g
ICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgot
ICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
aXMgXGMgZmFsc2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1
Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCi0gICBlcnJvciBvY2N1cnJlZC4KLSAg
ICovCi0gIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgY29u
c3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7Ci0KLSAgLy8vIFxicmllZiBQYXJzZSBmcm9t
IGlucHV0IHN0cmVhbS4KLSAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0m
LCBKc29uOjpWYWx1ZSYpLgotICBib29sIHBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZhbHVlJiBy
b290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwotCi0gIC8qKiBcYnJpZWYgUmV0dXJu
cyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZAot
ICAgKiBkb2N1bWVudC4KLSAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZSB3aXRo
IHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCi0gICAqIGluCi0gICAqICAg
ICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlm
IG5vIGVycm9yCi0gICAqIG9jY3VycmVkCi0gICAqICAgICAgICAgZHVyaW5nIHBhcnNpbmcuCi0g
ICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZCAo
dHlwbyBmaXgpLgotICAgKi8KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgZ2V0Rm9ybWF0dGVk
RXJyb3JNZXNzYWdlcygpIGluc3RlYWQuIikKLSAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0ZWRFcnJv
ck1lc3NhZ2VzKCkgY29uc3Q7Ci0KLSAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRs
eSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRvY3VtZW50Lgot
ICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJy
b3JzIHdpdGggdGhlaXIgbG9jYXRpb24KLSAgICogaW4KLSAgICogICAgICAgICB0aGUgcGFyc2Vk
IGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKLSAgICog
b2NjdXJyZWQKLSAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KLSAgICovCi0gIHN0ZDo6c3Ry
aW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKLQotICAvKiogXGJyaWVmIFJl
dHVybnMgYSB2ZWN0b3Igb2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUgcGFyc2lu
Zy4KLSAgICogXHJldHVybiBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVjdHVyZWRF
cnJvciBvYmplY3RzLiBDdXJyZW50bHkKLSAgICogICAgICAgICBvbmx5IG9uZSBlcnJvciBjYW4g
YmUgcmV0dXJuZWQsIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQotICAgKiBtdWx0aXBs
ZQotICAgKiAgICAgICAgIGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJzZXIgcmVj
b3ZlcnMgZnJvbSBhIG5vbi1mYXRhbAotICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFuZCB0aGVu
IGVuY291bnRlcnMgYWRkaXRpb25hbCBlcnJvcnMuCi0gICAqLwotICBzdGQ6OnZlY3RvcjxTdHJ1
Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLQotICAvKiogXGJyaWVm
IEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxwYXJhbSB2YWx1ZSBKU09OIFZh
bHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKLSAgICogXHBhcmFtIG1lc3Nh
Z2UgVGhlIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Ig
d2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCi0gICAqIFZhbHVlIG9mZnNl
dCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgotICAgKi8KLSAgYm9vbCBwdXNoRXJyb3IoY29u
c3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgLyoqIFxi
cmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlIHdpdGggZXh0cmEgY29udGV4dC4KLSAg
ICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBl
cnJvcgotICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KLSAgICogXHBhcmFt
IGV4dHJhIEFkZGl0aW9uYWwgSlNPTiBWYWx1ZSBsb2NhdGlvbiB0byBjb250ZXh0dWFsaXplIHRo
ZSBlcnJvcgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVs
bHkgYWRkZWQsIFxjIGZhbHNlIGlmIGVpdGhlcgotICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0
aGUgZG9jdW1lbnQgc2l6ZS4KLSAgICovCi0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2
YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0K
LSAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4KLSAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxjIGZhbHNl
IGlmCi0gICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgotICAgKi8KLSAgYm9vbCBnb29kKCkgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gIGVudW0gVG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFt
ID0gMCwKLSAgICB0b2tlbk9iamVjdEJlZ2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRv
a2VuQXJyYXlCZWdpbiwKLSAgICB0b2tlbkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAg
IHRva2VuTnVtYmVyLAotICAgIHRva2VuVHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2Vu
TnVsbCwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9y
LAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tlbkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9r
ZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBlIHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0
XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9OwotCi0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1
YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAg
TG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+
IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBT
cGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAgYm9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwot
ICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIHZv
aWQgcmVhZE51bWJlcigpOwotICBib29sIHJlYWRWYWx1ZSgpOwotICBib29sIHJlYWRPYmplY3Qo
VG9rZW4mIHRva2VuKTsKLSAgYm9vbCByZWFkQXJyYXkoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBk
ZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRv
a2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbik7
Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQp
OwotICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZURvdWJs
ZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVVbmljb2RlQ29k
ZVBvaW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0
aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsK
LSAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOwotICBib29sIGFkZEVy
cm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4
dHJhID0gMCk7Ci0gIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9r
ZW4pOwotICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOwotICB2b2lkIHNraXBVbnRp
bFNwYWNlKCk7Ci0gIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKLSAgQ2hhciBnZXROZXh0Q2hhcigp
OwotICB2b2lkCi0gIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwg
aW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdl
dExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHZvaWQgYWRkQ29t
bWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCk7Ci0gIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKLQotICB0eXBl
ZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKLSAgTm9kZXMgbm9kZXNfOwotICBFcnJvcnMg
ZXJyb3JzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwotICBMb2NhdGlvbiBiZWdpbl87Ci0g
IExvY2F0aW9uIGVuZF87Ci0gIExvY2F0aW9uIGN1cnJlbnRfOwotICBMb2NhdGlvbiBsYXN0VmFs
dWVFbmRfOwotICBWYWx1ZSogbGFzdFZhbHVlXzsKLSAgc3RkOjpzdHJpbmcgY29tbWVudHNCZWZv
cmVfOwotICBGZWF0dXJlcyBmZWF0dXJlc187Ci0gIGJvb2wgY29sbGVjdENvbW1lbnRzXzsKLX07
ICAvLyBSZWFkZXIKLQotLyoqIEludGVyZmFjZSBmb3IgcmVhZGluZyBKU09OIGZyb20gYSBjaGFy
IGFycmF5LgotICovCi1jbGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyIHsKLXB1YmxpYzoKLSAgdmly
dHVhbCB+Q2hhclJlYWRlcigpIHt9Ci0gIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgotICAgZG9jdW1lbnQuCi0gICAq
IFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0
aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAgICoKLSAgICogXHBhcmFtIGJlZ2luRG9jIFBvaW50ZXIg
b24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBvaW50ZXIgb24gdGhlIGVuZCBv
ZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgot
ICAgKiAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KLSAgICogXHBhcmFtIHJvb3QgW291dF0g
Q29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcwotICAgKiAg
ICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgotICAgKiBccGFyYW0gZXJycyBbb3V0XSBG
b3JtYXR0ZWQgZXJyb3IgbWVzc2FnZXMgKGlmIG5vdCBOVUxMKQotICAgKiAgICAgICAgYSB1c2Vy
IGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3RzIGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRv
Y3VtZW50LgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNz
ZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgotICAgZXJyb3Igb2NjdXJyZWQuCi0gICAqLwot
ICB2aXJ0dWFsIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBj
b25zdCogZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSA9IDA7
Ci0KLSAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5G
YWN0b3J5KCkge30KLSAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2aWEgb3Bl
cmF0b3IgbmV3KCkuCi0gICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBn
b2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCi0gICAgICovCi0gICAgdmlydHVhbCBD
aGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3QgPSAwOwotICB9OyAgLy8gRmFjdG9yeQot
fTsgIC8vIENoYXJSZWFkZXIKLQotLyoqIFxicmllZiBCdWlsZCBhIENoYXJSZWFkZXIgaW1wbGVt
ZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcgbmFtZXNwYWNlIEpzb247Ci0gIENo
YXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbGxlY3RDb21tZW50cyJdID0g
ZmFsc2U7Ci0gIFZhbHVlIHZhbHVlOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0g
cGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsKLVxlbmRj
b2RlCi0qLwotY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMgQ2hhclJl
YWRlcjo6RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVl
IHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcwotICAvLyB3aXRo
b3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgotICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1
aWxkZXIuCi0gICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgotICAgIEF2YWlsYWJsZSBzZXR0
aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgotICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBmYWxzZSBv
ciB0cnVlYAotICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGlu
ZyB0aGVtCi0gICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRvIGRpc2Nh
cmQgY29tbWVudHMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgYWxsb3dD
b21tZW50cyBpcyBmYWxzZS4KLSAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9yIHRydWVg
Ci0gICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuCi0gICAgLSBgInN0cmljdFJv
b3QiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCi0gICAgLSBgImFsbG93RHJvcHBlZE51bGxQbGFj
ZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIGRyb3BwZWQgbnVsbCBw
bGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUgU3RyZWFtV3JpdGVyQnVpbGRlci4pCi0gICAg
LSBgImFsbG93TnVtZXJpY0tleXMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIG51
bWVyaWMgb2JqZWN0IGtleXMgYXJlIGFsbG93ZWQuCi0gICAgLSBgImFsbG93U2luZ2xlUXVvdGVz
IjogZmFsc2Ugb3IgdHJ1ZWAKLSAgICAgIC0gdHJ1ZSBpZiAnJyBhcmUgYWxsb3dlZCBmb3Igc3Ry
aW5ncyAoYm90aCBrZXlzIGFuZCB2YWx1ZXMpCi0gICAgLSBgInN0YWNrTGltaXQiOiBpbnRlZ2Vy
YAotICAgICAgLSBFeGNlZWRpbmcgc3RhY2tMaW1pdCAocmVjdXJzaXZlIGRlcHRoIG9mIGByZWFk
VmFsdWUoKWApIHdpbGwKLSAgICAgICAgY2F1c2UgYW4gZXhjZXB0aW9uLgotICAgICAgLSBUaGlz
IGlzIGEgc2VjdXJpdHkgaXNzdWUgKHNlZy1mYXVsdHMgY2F1c2VkIGJ5IGRlZXBseSBuZXN0ZWQg
SlNPTiksCi0gICAgICAgIHNvIHRoZSBkZWZhdWx0IGlzIGxvdy4KLSAgICAtIGAiZmFpbElmRXh0
cmEiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0dXJucyBm
YWxzZSB3aGVuIGV4dHJhIG5vbi13aGl0ZXNwYWNlIHRyYWlscwotICAgICAgICB0aGUgSlNPTiB2
YWx1ZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgotICAgIC0gYCJyZWplY3REdXBLZXlzIjogZmFsc2Ug
b3IgdHJ1ZWAKLSAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBh
IGtleSBpcyBkdXBsaWNhdGVkIHdpdGhpbiBhbiBvYmplY3QuCi0gICAgLSBgImFsbG93U3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWVgCi0gICAgICAtIElmIHRydWUsIHNwZWNpYWwgZmxvYXQg
dmFsdWVzIChOYU5zIGFuZCBpbmZpbml0aWVzKSBhcmUgYWxsb3dlZCAKLSAgICAgICAgYW5kIHRo
ZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KLQotICAgIFlvdSBjYW4gZXhhbWlu
ZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgotICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4g
YWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKLSAgICBKU09OIFZhbHVlLgot
ICAgIFxzYSBzZXREZWZhdWx0cygpCi0gICAgKi8KLSAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOwot
Ci0gIENoYXJSZWFkZXJCdWlsZGVyKCk7Ci0gIH5DaGFyUmVhZGVyQnVpbGRlcigpOwotCi0gIENo
YXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdDsKLQotICAvKiogXHJldHVybiB0cnVlIGlm
ICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50OwotICAgKiAgIG90aGVyd2lzZSwg
aW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCi0gICAqLwotICBib29sIHZhbGlk
YXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKLQotICAvKiogQSBzaW1wbGUgd2F5IHRv
IHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCi0gICAqLwotICBWYWx1ZSYgb3BlcmF0b3JbXShz
dGQ6OnN0cmluZyBrZXkpOwotCi0gIC8qKiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBjYW4gdXNl
IHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgotICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAo
YnV0IEpzb246Om51bGwgaXMgZmluZSkKLSAgICogXHJlbWFyayBEZWZhdWx0czoKLSAgICogXHNu
aXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRlckRlZmF1
bHRzCi0gICAqLwotICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGlu
Z3MpOwotICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6OnN0cmljdE1vZGUoKS4KLSAgICogXHBy
ZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCi0gICAqIFxyZW1h
cmsgRGVmYXVsdHM6Ci0gICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAg
Q2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCi0gICAqLwotICBzdGF0aWMgdm9pZCBzdHJpY3RN
b2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Ci19OwotCi0vKiogQ29uc3VtZSBlbnRpcmUgc3Ry
ZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KLSAgKiBTb21lZGF5IHdlIG1pZ2h0IGhhdmUgYSBy
ZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcwotICAqIGlzIGNvbnZlbmllbnQuCi0g
ICovCi1ib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbSgKLSAgICBDaGFyUmVhZGVyOjpGYWN0
b3J5IGNvbnN0JiwKLSAgICBzdGQ6OmlzdHJlYW0mLAotICAgIFZhbHVlKiByb290LCBzdGQ6OnN0
cmluZyogZXJycyk7Ci0KLS8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jvb3QnLgot
Ci0gQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KLQotIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9iamVjdC4KLSBG
b3IgZXhhbXBsZToKLSBcY29kZQotIEpzb246OlZhbHVlIHJvb3Q7Ci0gY2luID4+IHJvb3RbImRp
ciJdWyJmaWxlIl07Ci0gY291dCA8PCByb290OwotIFxlbmRjb2RlCi0gUmVzdWx0OgotIFx2ZXJi
YXRpbQotIHsKLSAiZGlyIjogewotICAgICAiZmlsZSI6IHsKLSAgICAgLy8gVGhlIGlucHV0IHN0
cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgotICAgICB9Ci0gfQotIH0KLSBcZW5kdmVy
YmF0aW0KLSBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCi0gXHNlZSBKc29u
OjpvcGVyYXRvcjw8KCkKLSovCi1KU09OX0FQSSBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3Rk
Ojppc3RyZWFtJiwgVmFsdWUmKTsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0jaWYgZGVmaW5l
ZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQotI3ByYWdtYSB3YXJuaW5n
KHBvcCkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9y
ZWFkZXIuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRlci5oCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxs
ZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgSlNPTl9XUklURVJfSF9JTkNMVURFRAotI2Rl
ZmluZSBKU09OX1dSSVRFUl9IX0lOQ0xVREVECi0KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKLSNpbmNsdWRlICJ2YWx1ZS5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8b3N0cmVhbT4KLQotLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1i
ZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCi0vLyBiZSB1c2VkIGJ5
Li4uCi0jaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQot
I3ByYWdtYSB3YXJuaW5nKHB1c2gpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCi0j
ZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5H
KQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLWNsYXNzIFZhbHVlOwotCi0vKioKLQotVXNhZ2U6Ci1c
Y29kZQotICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKLSAgdm9pZCB3cml0ZVRvU3Rkb3V0KFN0cmVh
bVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHZhbHVlKSB7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gY29uc3Qgd3JpdGVyKAotICAgICAgZmFj
dG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7Ci0gICAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6
Y291dCk7Ci0gICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gK
LSAgfQotXGVuZGNvZGUKLSovCi1jbGFzcyBKU09OX0FQSSBTdHJlYW1Xcml0ZXIgewotcHJvdGVj
dGVkOgotICBzdGQ6Om9zdHJlYW0qIHNvdXRfOyAgLy8gbm90IG93bmVkOyB3aWxsIG5vdCBkZWxl
dGUKLXB1YmxpYzoKLSAgU3RyZWFtV3JpdGVyKCk7Ci0gIHZpcnR1YWwgflN0cmVhbVdyaXRlcigp
OwotICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBjb25maWd1cmVkIGluIHN1Yi1j
bGFzcy4KLSAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBzb3V0LCBidXQgbWFpbnRhaW4g
YSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgotICAgICAgXHByZSBzb3V0ICE9IE5VTEwKLSAg
ICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3ZSBhbHdheXMgcmV0dXJuIHpl
cm8sIHNvIGNoZWNrIHRoZSBzdHJlYW0gaW5zdGVhZC4pCi0gICAgICBcdGhyb3cgc3RkOjpleGNl
cHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCi0gICAqLwotICB2aXJ0
dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KSA9IDA7
Ci0KLSAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5LgotICAgKi8KLSAgY2xh
c3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5GYWN0b3J5KCk7
Ci0gICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygp
LgotICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAo
ZS5nLiBpbnZhbGlkIHNldHRpbmdzKQotICAgICAqLwotICAgIHZpcnR1YWwgU3RyZWFtV3JpdGVy
KiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7Ci0gIH07ICAvLyBGYWN0b3J5Ci19OyAgLy8g
U3RyZWFtV3JpdGVyCi0KLS8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdzdHJlYW0sIHRoZW4g
cmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgotICogQSBTdHJlYW1Xcml0ZXIgd2lsbCBi
ZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRlbGV0ZWQuCi0gKi8K
LXN0ZDo6c3RyaW5nIEpTT05fQVBJIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBj
b25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpOwotCi0KLS8qKiBcYnJpZWYgQnVpbGQg
YSBTdHJlYW1Xcml0ZXIgaW1wbGVtZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcg
bmFtZXNwYWNlIEpzb247Ci0gIFZhbHVlIHZhbHVlID0gLi4uOwotICBTdHJlYW1Xcml0ZXJCdWls
ZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbW1lbnRTdHlsZSJdID0gIk5vbmUiOwotICBidWls
ZGVyWyJpbmRlbnRhdGlvbiJdID0gIiAgICI7ICAvLyBvciB3aGF0ZXZlciB5b3UgbGlrZQotICBz
dGQ6OnVuaXF1ZV9wdHI8SnNvbjo6U3RyZWFtV3JpdGVyPiB3cml0ZXIoCi0gICAgICBidWlsZGVy
Lm5ld1N0cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6Y291dCk7
Ci0gIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCi1cZW5kY29k
ZQotKi8KLWNsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlckJ1aWxkZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyOjpGYWN0b3J5IHsKLXB1YmxpYzoKLSAgLy8gTm90ZTogV2UgdXNlIGEgSnNvbjo6VmFs
dWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCi0gIC8vIHdp
dGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCi0gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoaXMg
YnVpbGRlci4KLSAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToKLSAgICAt
ICJjb21tZW50U3R5bGUiOiAiTm9uZSIgb3IgIkFsbCIKLSAgICAtICJpbmRlbnRhdGlvbiI6ICAi
PGFueXRoaW5nPiIKLSAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNlIG9yIHRy
dWUKLSAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBjb2xvbnMK
LSAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gRHJv
cCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1
ZXMuCi0gICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBC
dXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAgICAgIGZlZCB0byBhIGJyb3dzZXIncyBK
YXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQotICAgICAgICBi
cm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCi0gICAgLSAidXNlU3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBub24tZmlu
aXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKLSAgICAgICAg
TmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5IiwgYW5k
IG5lZ2F0aXZlIGluZmluaXR5Ci0gICAgICAgIGFzICItSW5maW5pdHkiLgotCi0gICAgWW91IGNh
biBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCi0gICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4g
WW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQotICAgIEpTT04g
VmFsdWUuCi0gICAgXHNhIHNldERlZmF1bHRzKCkKLSAgICAqLwotICBKc29uOjpWYWx1ZSBzZXR0
aW5nc187Ci0KLSAgU3RyZWFtV3JpdGVyQnVpbGRlcigpOwotICB+U3RyZWFtV3JpdGVyQnVpbGRl
cigpOwotCi0gIC8qKgotICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdv
ZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKLSAgICovCi0gIFN0cmVhbVdyaXRlciog
bmV3U3RyZWFtV3JpdGVyKCkgY29uc3Q7Ci0KLSAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGlu
Z3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKLSAgICogICBvdGhlcndpc2UsIGluZGljYXRl
IGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgotICAgKi8KLSAgYm9vbCB2YWxpZGF0ZShKc29u
OjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7Ci0gIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEg
c3BlY2lmaWMgc2V0dGluZy4KLSAgICovCi0gIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5n
IGtleSk7Ci0KLSAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byBy
ZXNldCBzZXR0aW5nc18uCi0gICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6
bnVsbCBpcyBmaW5lKQotICAgKiBccmVtYXJrIERlZmF1bHRzOgotICAgKiBcc25pcHBldCBzcmMv
bGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0cwotICAg
Ki8KLSAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKLX07
Ci0KLS8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCi0gKiBcZGVwcmVjYXRl
ZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlv
biBkZXRhaWwuKQotICovCi1jbGFzcyBKU09OX0FQSSBXcml0ZXIgewotcHVibGljOgotICB2aXJ0
dWFsIH5Xcml0ZXIoKTsKLQotICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVl
JiByb290KSA9IDA7Ci19OwotCi0vKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVG
PSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKLSAqd2l0aG91dCBmb3JtYXR0
aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgotICoKLSAqIFRoZSBKU09OIGRvY3VtZW50IGlzIHdy
aXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVtYW4nCi0g
KmNvbnN1bXB0aW9uLAotICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVhdHVyZSBz
dWNoIGFzIFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgotICogXHNhIFJlYWRlciwgVmFs
dWUKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgotICovCi1jbGFzcyBK
U09OX0FQSSBGYXN0V3JpdGVyIDogcHVibGljIFdyaXRlciB7Ci0KLXB1YmxpYzoKLSAgRmFzdFdy
aXRlcigpOwotICB+RmFzdFdyaXRlcigpIHt9Ci0KLSAgdm9pZCBlbmFibGVZQU1MQ29tcGF0aWJp
bGl0eSgpOwotCi0gIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3
cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCi0gICAqIFN0cmljdGx5IHNwZWFraW5nLCB0
aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAq
IGZlZCB0byBhIGJyb3dzZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRw
dXQgYW5kIHRoZQotICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUu
Ci0gICAqLwotICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7Ci0KLSAgdm9pZCBvbWl0RW5k
aW5nTGluZUZlZWQoKTsKLQotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCi0gIHN0
ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKLQotcHJpdmF0ZToKLSAgdm9pZCB3
cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRf
OwotICBib29sIHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXzsKLSAgYm9vbCBkcm9wTnVsbFBsYWNl
aG9sZGVyc187Ci0gIGJvb2wgb21pdEVuZGluZ0xpbmVGZWVkXzsKLX07Ci0KLS8qKiBcYnJpZWYg
V3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4g
Zm9ybWF0IGluIGEKLSAqaHVtYW4gZnJpZW5kbHkgd2F5LgotICoKLSAqIFRoZSBydWxlcyBmb3Ig
bGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6Ci0gKiAtIE9iamVjdCB2YWx1ZToK
LSAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUg
YnJlYWsKLSAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYg
aW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCi0gKmxpbmUKLSAqICAgICAgIGFuZCB0aGVuIHVu
aW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCi0gKiAtIEFycmF5IHZhbHVlOgot
ICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBi
cmVhawotICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1ZSwgZW1w
dHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQotICp0eXBlcywKLSAqICAgICAgIGFuZCBhbGwg
dGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNp
bmdsZQotICpsaW5lLgotICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRvIG5vdCBm
aXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucwotICogICAgICAgb2JqZWN0IG9y
IG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCi0gKgotICog
SWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBhY2NvcmRp
bmcgdG8gdGhlaXIKLSAqI0NvbW1lbnRQbGFjZW1lbnQuCi0gKgotICogXHNhIFJlYWRlciwgVmFs
dWUsIFZhbHVlOjpzZXRDb21tZW50KCkKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJC
dWlsZGVyLgotICovCi1jbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXIgOiBwdWJsaWMgV3JpdGVy
IHsKLXB1YmxpYzoKLSAgU3R5bGVkV3JpdGVyKCk7Ci0gIH5TdHlsZWRXcml0ZXIoKSB7fQotCi1w
dWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKLSAgLyoqIFxicmllZiBTZXJpYWxpemUg
YSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQu
Ci0gICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KLSAgICogXHJldHVybiBTdHJp
bmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhlIHJvb3Qg
dmFsdWUuCi0gICAqLwotICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0K
LXByaXZhdGU6Ci0gIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICB2b2lk
IHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBib29sIGlzTXVsdGluZUFy
cmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0gIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7Ci0gIHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgdm9pZCB3cml0ZVdpdGhJbmRl
bnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKLSAgdm9pZCBpbmRlbnQoKTsKLSAgdm9pZCB1
bmluZGVudCgpOwotICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiBy
b290KTsKLSAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1
ZSYgcm9vdCk7Ci0gIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7
Ci0gIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJpbmcmIHRl
eHQpOwotCi0gIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwot
Ci0gIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwot
ICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBpbnQg
aW5kZW50U2l6ZV87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOwotfTsKLQotLyoqIFxicmllZiBX
cml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQgaW4gYQotIGh1bWFuIGZyaWVuZGx5IHdheSwKLSAgICAgdG8gYSBzdHJlYW0gcmF0aGVy
IHRoYW4gdG8gYSBzdHJpbmcuCi0gKgotICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBp
bmRlbnQgYXJlIGFzIGZvbGxvdzoKLSAqIC0gT2JqZWN0IHZhbHVlOgotICogICAgIC0gaWYgZW1w
dHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhawotICogICAgIC0g
aWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9u
ZSB2YWx1ZSBwZXIKLSBsaW5lCi0gKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBi
cmVhayBhbmQgcHJpbnQgJ30nLgotICogLSBBcnJheSB2YWx1ZToKLSAqICAgICAtIGlmIGVtcHR5
IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKLSAqICAgICAtIGlm
IHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUg
b3RoZXIgdmFsdWUKLSB0eXBlcywKLSAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24g
b25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQotIGxpbmUuCi0gKiAg
ICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3Ig
dGhlIGFycmF5IGNvbnRhaW5zCi0gKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0
aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KLSAqCi0gKiBJZiB0aGUgVmFsdWUgaGF2ZSBj
b21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgotICNDb21t
ZW50UGxhY2VtZW50LgotICoKLSAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwg
YmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCi0gKiBcc2EgUmVhZGVyLCBWYWx1ZSwg
VmFsdWU6OnNldENvbW1lbnQoKQotICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxk
ZXIuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlciB7Ci1wdWJsaWM6Ci0g
IFN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIpOwotICB+
U3R5bGVkU3RyZWFtV3JpdGVyKCkge30KLQotcHVibGljOgotICAvKiogXGJyaWVmIFNlcmlhbGl6
ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1h
dC4KLSAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8gd3JpdGUgdG8uIChDYW4gYmUgb3N0cmluZ3N0
cmVhbSwgZS5nLikKLSAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgotICAgKiBc
bm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2luY2Ugd3Jp
dGUoKSBzaG91bGQgbm90Ci0gICAqIHJldHVybiBhIHZhbHVlLgotICAgKi8KLSAgdm9pZCB3cml0
ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOwotCi1wcml2YXRlOgotICB2
b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUFycmF5VmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgYm9vbCBpc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpOwotICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwot
ICB2b2lkIHdyaXRlSW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6
c3RyaW5nJiB2YWx1ZSk7Ci0gIHZvaWQgaW5kZW50KCk7Ci0gIHZvaWQgdW5pbmRlbnQoKTsKLSAg
dm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0gIHZvaWQg
d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpOwotICBi
b29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBzdGF0aWMgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKLQotICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKLQotICBDaGlsZFZhbHVl
cyBjaGlsZFZhbHVlc187Ci0gIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOwotICBzdGQ6OnN0cmlu
ZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRhdGlvbl87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKLSAgYm9vbCBpbmRlbnRlZF8g
OiAxOwotfTsKLQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1zdGQ6OnN0cmluZyBKU09O
X0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1
ZVRvU3RyaW5nKFVJbnQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCi1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUp
Owotc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSk7
Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSk7Ci1zdGQ6
OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOwotc3RkOjpzdHJpbmcg
SlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSk7Ci0KLS8vLyBc
YnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCi0vLy8gXHNlZSBKc29u
OjpvcGVyYXRvcj4+KCkKLUpTT05fQVBJIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mLCBjb25zdCBWYWx1ZSYgcm9vdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI2lm
IGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEg
d2FybmluZyhwb3ApCi0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lO
VEVSRkFDRV9XQVJOSU5HKQotCi0jZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURFRAotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24v
d3JpdGVyLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3NlcnRpb25z
LmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgot
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VSVElPTlNf
SF9JTkNMVURFRAotI2RlZmluZSBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAotCi0j
aW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLQotI2lmICFkZWZpbmVkKEpT
T05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi0vKiogSXQgc2hvdWxkIG5vdCBiZSBwb3Nz
aWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCi0gKiAgY2F1c2UgYW4gYWJv
cnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5Ci0gKiAgZm9y
IHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3JzLgotICov
Ci0jaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0KLS8vIEB0b2RvIDw9IGFkZCBkZXRhaWwgYWJvdXQg
Y29uZGl0aW9uIGluIGV4Y2VwdGlvbgotIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0aW9uKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAge2lmICgh
KGNvbmRpdGlvbikpIHtKc29uOjp0aHJvd0xvZ2ljRXJyb3IoICJhc3NlcnQganNvbiBmYWlsZWQi
ICk7fX0KLQotIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpzb246OnRocm93TG9naWNFcnJvcihvc3Mu
c3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBh
Ym9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gIH0KLQotI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBUSU9OCi0K
LSMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikKLQotLy8g
VGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4gZGVi
dWcgYnVpbGRzLiBJbgotLy8gcmVsZWFzZSBidWlsZHMgd2UgYWJvcnQsIGZvciBhIGNvcmUtZHVt
cCBvciBkZWJ1Z2dlci4KLSMgZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhc3NlcnQoZmFsc2UgJiYgb3Nz
LnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICB9Ci0KLQotI2VuZGlmCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpTT05fRkFJTF9NRVNT
QUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgfQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQK
LQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9q
c29uL2Fzc2VydGlvbnMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLSNlbmRpZiAvL2lm
bmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy9qc29uY3BwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYzMjg3MzI3YzBk
NjYzMjE1MDVlYWQyZDJlZTQ2N2U3MzlmMTVlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTI2NiArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuCi0vLy8gSXQgaXMg
aW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29uL2pzb24uaCIKLQotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotCi0vKgotVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBp
bmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24sIAotdGVzdHMgYW5kIGRlbW9uc3Ry
YXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZwotY29u
ZGl0aW9ucy4uLgotCi1UaGUgYXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkg
ZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCi1qdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6
ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKLXRoaXMgc29mdHdh
cmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERvbWFpbi4KLQotSW4ganVyaXNkaWN0aW9u
cyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2Vy
bWFueSBhcyBvZgotMjAxMCksIHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIw
MTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMKLXJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdykuCi0KLUluIGp1cmlzZGljdGlvbnMgd2hp
Y2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCi1z
b2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFp
biwgMikgdW5kZXIgdGhlIAotY29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxv
dyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBkdWFsIAotUHVibGljIERvbWFpbi9NSVQgTGlj
ZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KLQotVGhlIE1J
VCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNl
IGNhbiBnZXQsIGFuZCBpcwotZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0Ogot
Ci0gICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCi0gICAKLVRoZSBm
dWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxvd3M6Ci0KLT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Q29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0KLVBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCi1vYnRhaW5p
bmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgot
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAot
cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksCi1tb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMKLW9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi1mdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotaW5jbHVkZWQgaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCi1NRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORAotTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUwotQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCi1BQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotQ09OTkVDVElPTiBXSVRI
IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotU09GVFdB
UkUuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLShFTkQgTElDRU5TRSBURVhUKQotCi1UaGUgTUlUIGxpY2Vu
c2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAotc29mdHdh
cmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRo
IHRoZQotbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZQotYW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5v
dGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUKLVB1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlv
dSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKLWxpY2Vuc2UgeW91IGxp
a2UuCi0KLSovCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6
IExJQ0VOU0UKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLSNpbmNsdWRlICJqc29uL2pz
b24uaCIKLQotI2lmbmRlZiBKU09OX0lTX0FNQUxHQU1BVElPTgotI2Vycm9yICJDb21waWxlIHdp
dGggLUkgUEFUSF9UT19KU09OX0RJUkVDVE9SWSIKLSNlbmRpZgotCi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3Rv
b2wuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9P
TF9IX0lOQ0xVREVECi0jZGVmaW5lIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECi0K
LS8qIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGNvbW1vbiBzdHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBv
cnQsIHN1Y2ggYXMgVVRGLTgsCi0gKiBwb3J0YWJsZSBjb252ZXJzaW9uIGZyb20vdG8gc3RyaW5n
Li4uCi0gKgotICogSXQgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIHRoYXQgbXVzdCBub3QgYmUgZXhw
b3NlZC4KLSAqLwotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vLyBDb252ZXJ0cyBhIHVuaWNvZGUg
Y29kZS1wb2ludCB0byBVVEYtOC4KLXN0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgY29kZVBvaW50
VG9VVEY4KHVuc2lnbmVkIGludCBjcCkgewotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0KLSAgLy8g
YmFzZWQgb24gZGVzY3JpcHRpb24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VU
Ri04Ci0KLSAgaWYgKGNwIDw9IDB4N2YpIHsKLSAgICByZXN1bHQucmVzaXplKDEpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweDdG
RikgewotICAgIHJlc3VsdC5yZXNpemUoMik7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKLSAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxj
aGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweEZG
RkYpIHsKLSAgICByZXN1bHQucmVzaXplKDMpOwotICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzBdID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhFMCB8ICgweGYgJiAoY3AgPj4gMTIpKSk7Ci0gIH0gZWxzZSBpZiAoY3Ag
PD0gMHgxMEZGRkYpIHsKLSAgICByZXN1bHQucmVzaXplKDQpOwotICAgIHJlc3VsdFszXSA9IHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzJdID0gc3Rh
dGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzFd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOwot
ICB9Ci0KLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8vIFJldHVybnMgdHJ1ZSBpZiBjaCBpcyBh
IGNvbnRyb2wgY2hhcmFjdGVyIChpbiByYW5nZSBbMSwzMV0pLgotc3RhdGljIGlubGluZSBib29s
IGlzQ29udHJvbENoYXJhY3RlcihjaGFyIGNoKSB7IHJldHVybiBjaCA+IDAgJiYgY2ggPD0gMHgx
RjsgfQotCi1lbnVtIHsKLSAgLy8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQgdG8KLSAgLy8vIHVpbnRUb1N0cmluZy4KLSAg
dWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMgKiBzaXplb2YoTGFyZ2VzdFVJbnQpICsgMQotfTsK
LQotLy8gRGVmaW5lcyBhIGNoYXIgYnVmZmVyIGZvciB1c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4K
LXR5cGVkZWYgY2hhciBVSW50VG9TdHJpbmdCdWZmZXJbdWludFRvU3RyaW5nQnVmZmVyU2l6ZV07
Ci0KLS8qKiBDb252ZXJ0cyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRvIHN0cmluZy4KLSAqIEBwYXJh
bSB2YWx1ZSBVbnNpZ25lZCBpbnRlcmdlciB0byBjb252ZXJ0IHRvIHN0cmluZwotICogQHBhcmFt
IGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZmZXIuCi0gKiAgICAgICAgTXVzdCBoYXZl
IGF0IGxlYXN0IHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgY2hhcnMgZnJlZS4KLSAqLwotc3RhdGlj
IGlubGluZSB2b2lkIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSwgY2hhciomIGN1cnJl
bnQpIHsKLSAgKi0tY3VycmVudCA9IDA7Ci0gIGRvIHsKLSAgICAqLS1jdXJyZW50ID0gc3RhdGlj
X2Nhc3Q8c2lnbmVkIGNoYXI+KHZhbHVlICUgMTBVICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCcw
JykpOwotICAgIHZhbHVlIC89IDEwOwotICB9IHdoaWxlICh2YWx1ZSAhPSAwKTsKLX0KLQotLyoq
IENoYW5nZSAnLCcgdG8gJy4nIGV2ZXJ5d2hlcmUgaW4gYnVmZmVyLgotICoKLSAqIFdlIGhhZCBh
IHNvcGhpc3RpY2F0ZWQgd2F5LCBidXQgaXQgZGlkIG5vdCB3b3JrIGluIFdpbkNFLgotICogQHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3B1bGwvOQot
ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgZml4TnVtZXJpY0xvY2FsZShjaGFyKiBiZWdpbiwgY2hh
ciogZW5kKSB7Ci0gIHdoaWxlIChiZWdpbiA8IGVuZCkgewotICAgIGlmICgqYmVnaW4gPT0gJywn
KSB7Ci0gICAgICAqYmVnaW4gPSAnLic7Ci0gICAgfQotICAgICsrYmVnaW47Ci0gIH0KLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbiB7Ci0KLSNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xf
SF9JTkNMVURFRAotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxl
OiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9s
aWJfanNvbi9qc29uX3JlYWRlci5jcHAKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0
IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgot
I2luY2x1ZGUgPGpzb24vcmVhZGVyLmg+Ci0jaW5jbHVkZSA8anNvbi92YWx1ZS5oPgotI2luY2x1
ZGUgImpzb25fdG9vbC5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFU
SU9OKQotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotI2luY2x1ZGUgPGNh
c3NlcnQ+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxpc3RyZWFtPgotI2luY2x1ZGUg
PHNzdHJlYW0+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDxs
aW1pdHM+Ci0KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2lmICFkZWZpbmVkKFdJTkNFKSAmJiBk
ZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9NU0NfVkVSID49IDE1MDAgLy8gVkMrKyA5
LjAgYW5kIGFib3ZlIAotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNlbGlmIF9NU0NfVkVS
ID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNu
cHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotI2VsaWYg
ZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQotI2RlZmluZSBzbnBy
aW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19RTlhOVE9fXykKLSNk
ZWZpbmUgc3NjYW5mIHN0ZDo6c3NjYW5mCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX01TQ19WRVIp
ICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4LjAKLS8vIERpc2FibGUgd2FybmluZyBhYm91
dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5
NikKLSNlbmRpZgotCi1zdGF0aWMgaW50IGNvbnN0IHN0YWNrTGltaXRfZyA9IDEwMDA7Ci1zdGF0
aWMgaW50ICAgICAgIHN0YWNrRGVwdGhfZyA9IDA7ICAvLyBzZWUgcmVhZFZhbHVlKCkKLQotbmFt
ZXNwYWNlIEpzb24gewotCi0jaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAoZGVmaW5lZChf
Q1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIwKQotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9w
dHI8Q2hhclJlYWRlcj4gQ2hhclJlYWRlclB0cjsKLSNlbHNlCi10eXBlZGVmIHN0ZDo6YXV0b19w
dHI8Q2hhclJlYWRlcj4gICBDaGFyUmVhZGVyUHRyOwotI2VuZGlmCi0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIEZlYXR1cmVzCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1GZWF0dXJlczo6RmVhdHVyZXMoKQotICAgIDogYWxsb3dDb21tZW50c18odHJ1ZSksIHN0
cmljdFJvb3RfKGZhbHNlKSwKLSAgICAgIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKGZh
bHNlKSwgYWxsb3dOdW1lcmljS2V5c18oZmFsc2UpIHt9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjph
bGwoKSB7IHJldHVybiBGZWF0dXJlcygpOyB9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjpzdHJpY3RN
b2RlKCkgewotICBGZWF0dXJlcyBmZWF0dXJlczsKLSAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18g
PSBmYWxzZTsKLSAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICBmZWF0dXJlcy5hbGxv
d0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IGZhbHNlOwotICBmZWF0dXJlcy5hbGxvd051bWVy
aWNLZXlzXyA9IGZhbHNlOwotICByZXR1cm4gZmVhdHVyZXM7Ci19Ci0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJl
YWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKLSAg
ICBpZiAoKmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCi0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci1SZWFkZXI6OlJlYWRlcigpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8o
KSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVf
KCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oRmVhdHVyZXM6OmFsbCgpKSwKLSAgICAg
IGNvbGxlY3RDb21tZW50c18oKSB7fQotCi1SZWFkZXI6OlJlYWRlcihjb25zdCBGZWF0dXJlcyYg
ZmVhdHVyZXMpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygp
LCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1l
bnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgewot
fQotCi1ib29sCi1SZWFkZXI6OnBhcnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFs
dWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGRvY3VtZW50XyA9IGRvY3VtZW50
OwotICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOwotICBjb25zdCBjaGFy
KiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsKLSAgcmV0dXJuIHBhcnNlKGJlZ2lu
LCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpwYXJzZShz
dGQ6OmlzdHJlYW0mIHNpbiwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0g
IC8vIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBiZWdpbihzaW4pOwotICAvLyBzdGQ6Omlz
dHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOwotICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1l
ZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKLSAgLy8gdGVtcGxhdGUgZnVu
Y3Rpb24uCi0KLSAgLy8gU2luY2Ugc3RkOjpzdHJpbmcgaXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRo
aXMgYXQgbGVhc3QgZG9lcyBub3QKLSAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHkuCi0gIHN0ZDo6
c3RyaW5nIGRvYzsKLSAgc3RkOjpnZXRsaW5lKHNpbiwgZG9jLCAoY2hhcilFT0YpOwotICByZXR1
cm4gcGFyc2UoZG9jLCByb290LCBjb2xsZWN0Q29tbWVudHMpOwotfQotCi1ib29sIFJlYWRlcjo6
cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogZW5kRG9jLAotICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29t
bWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8g
PSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERvYzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxl
Y3RDb21tZW50czsKLSAgY3VycmVudF8gPSBiZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwot
ICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xl
YXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5v
ZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFja0RlcHRoX2cgPSAwOyAgLy8gWWVzLCB0aGlzIGlz
IGJhZCBjb2RpbmcsIGJ1dCBvcHRpb25zIGFyZSBsaW1pdGVkLgotICBib29sIHN1Y2Nlc3NmdWwg
PSByZWFkVmFsdWUoKTsKLSAgVG9rZW4gdG9rZW47Ci0gIHNraXBDb21tZW50VG9rZW5zKHRva2Vu
KTsKLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQot
ICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7Ci0gIGlm
IChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFy
b290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBv
ZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAgICAvLyBpbiBk
b2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2VuLnN0YXJ0XyA9
IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFkZEVycm9yKAot
ICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkg
b3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9vbCBSZWFkZXI6
OnJlYWRWYWx1ZSgpIHsKLSAgLy8gVGhpcyBpcyBhIG5vbi1yZWVudHJhbnQgd2F5IHRvIHN1cHBv
cnQgYSBzdGFja0xpbWl0LiBUZXJyaWJsZSEKLSAgLy8gQnV0IHRoaXMgZGVwcmVjYXRlZCBjbGFz
cyBoYXMgYSBzZWN1cml0eSBwcm9ibGVtOiBCYWQgaW5wdXQgY2FuCi0gIC8vIGNhdXNlIGEgc2Vn
LWZhdWx0LiBUaGlzIHNlZW1zIGxpa2UgYSBmYWlyLCBiaW5hcnktY29tcGF0aWJsZSB3YXkKLSAg
Ly8gdG8gcHJldmVudCB0aGUgcHJvYmxlbS4KLSAgaWYgKHN0YWNrRGVwdGhfZyA+PSBzdGFja0xp
bWl0X2cpIHRocm93UnVudGltZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1
ZSgpLiIpOwotICArK3N0YWNrRGVwdGhfZzsKLQotICBUb2tlbiB0b2tlbjsKLSAgc2tpcENvbW1l
bnRUb2tlbnModG9rZW4pOwotICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOwotCi0gIGlmIChjb2xs
ZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkgewotICAgIGN1cnJlbnRW
YWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKLSAgICBj
b21tZW50c0JlZm9yZV8gPSAiIjsKLSAgfQotCi0gIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKLSAg
Y2FzZSB0b2tlbk9iamVjdEJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2Vu
KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7
Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5BcnJheUJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSBy
ZWFkQXJyYXkodG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJl
bnRfIC0gYmVnaW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51bWJlcjoKLSAgICBzdWNj
ZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2VuKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlblN0
cmluZzoKLSAgICBzdWNjZXNzZnVsID0gZGVjb2RlU3RyaW5nKHRva2VuKTsKLSAgICBicmVhazsK
LSAgY2FzZSB0b2tlblRydWU6Ci0gICAgewotICAgIFZhbHVlIHYodHJ1ZSk7Ci0gICAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9r
ZW5GYWxzZToKLSAgICB7Ci0gICAgVmFsdWUgdihmYWxzZSk7Ci0gICAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4u
c3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tl
bi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OdWxsOgot
ICAgIHsKLSAgICBWYWx1ZSB2OwotICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7
Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
Ci0gICAgfQotICAgIGJyZWFrOwotICBjYXNlIHRva2VuQXJyYXlTZXBhcmF0b3I6Ci0gIGNhc2Ug
dG9rZW5PYmplY3RFbmQ6Ci0gIGNhc2UgdG9rZW5BcnJheUVuZDoKLSAgICBpZiAoZmVhdHVyZXNf
LmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKSB7Ci0gICAgICAvLyAiVW4tcmVhZCIgdGhl
IGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1cnJlbnQgdmFsdWUgYXMgYSBudWxsCi0gICAg
ICAvLyB0b2tlbi4KLSAgICAgIGN1cnJlbnRfLS07Ci0gICAgICBWYWx1ZSB2OwotICAgICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEpOwotICAgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwotICAgICAgYnJlYWs7Ci0gICAgfSAvLyBF
bHNlLCBmYWxsIHRocm91Z2guLi4KLSAgZGVmYXVsdDoKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIHJldHVybiBhZGRFcnJvcigi
U3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsK
LSAgfQotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgbGFzdFZhbHVlRW5kXyA9IGN1
cnJlbnRfOwotICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7Ci0gIH0KLQotICAtLXN0
YWNrRGVwdGhfZzsKLSAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19Ci0KLXZvaWQgUmVhZGVyOjpza2lw
Q29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKLSAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1l
bnRzXykgewotICAgIGRvIHsKLSAgICAgIHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfSB3aGlsZSAo
dG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKLSAgfSBlbHNlIHsKLSAgICByZWFkVG9rZW4o
dG9rZW4pOwotICB9Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7
Ci0gIHNraXBTcGFjZXMoKTsKLSAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gIENoYXIgYyA9
IGdldE5leHRDaGFyKCk7Ci0gIGJvb2wgb2sgPSB0cnVlOwotICBzd2l0Y2ggKGMpIHsKLSAgY2Fz
ZSAneyc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgIGJyZWFrOwot
ICBjYXNlICd9JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOwotICAgIGJyZWFr
OwotICBjYXNlICdbJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXSc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOwotICAg
IGJyZWFrOwotICBjYXNlICciJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOwotICAg
IG9rID0gcmVhZFN0cmluZygpOwotICAgIGJyZWFrOwotICBjYXNlICcvJzoKLSAgICB0b2tlbi50
eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21tZW50KCk7Ci0gICAgYnJlYWs7
Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6Ci0gIGNhc2UgJzMnOgotICBj
YXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBjYXNlICc3JzoKLSAgY2FzZSAn
OCc6Ci0gIGNhc2UgJzknOgotICBjYXNlICctJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVt
YmVyOwotICAgIHJlYWROdW1iZXIoKTsKLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9r
ZW4udHlwZV8gPSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9
IG1hdGNoKCJhbHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5
cGVfID0gdG9rZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwot
ICBjYXNlICcsJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgJzonOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0
b3I7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgMDoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZT
dHJlYW07Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgb2sgPSBmYWxzZTsKLSAgICBicmVh
azsKLSAgfQotICBpZiAoIW9rKQotICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9r
ZW4uZW5kXyA9IGN1cnJlbnRfOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZWFkZXI6OnNr
aXBTcGFjZXMoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0g
KmN1cnJlbnRfOwotICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8
IGMgPT0gJ1xuJykKLSAgICAgICsrY3VycmVudF87Ci0gICAgZWxzZQotICAgICAgYnJlYWs7Ci0g
IH0KLX0KLQotYm9vbCBSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJu
TGVuZ3RoKSB7Ci0gIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKLSAgd2hpbGUgKGluZGV4
LS0pCi0gICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKLSAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKLSAgTG9jYXRpb24gY29tbWVudEJl
Z2luID0gY3VycmVudF8gLSAxOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIHN1
Y2Nlc3NmdWwgPSBmYWxzZTsKLSAgaWYgKGMgPT0gJyonKQotICAgIHN1Y2Nlc3NmdWwgPSByZWFk
Q1N0eWxlQ29tbWVudCgpOwotICBlbHNlIGlmIChjID09ICcvJykKLSAgICBzdWNjZXNzZnVsID0g
cmVhZENwcFN0eWxlQ29tbWVudCgpOwotICBpZiAoIXN1Y2Nlc3NmdWwpCi0gICAgcmV0dXJuIGZh
bHNlOwotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOwotICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250
YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgewotICAgICAgaWYgKGMg
IT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCi0gICAg
ICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7Ci0gICAgfQotCi0gICAgYWRk
Q29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOwotICB9Ci0gIHJldHVy
biB0cnVlOwotfQotCi1zdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKFJlYWRlcjo6TG9j
YXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIHN0ZDo6c3RyaW5nIG5vcm1h
bGl6ZWQ7Ci0gIG5vcm1hbGl6ZWQucmVzZXJ2ZShlbmQgLSBiZWdpbik7Ci0gIFJlYWRlcjo6TG9j
YXRpb24gY3VycmVudCA9IGJlZ2luOwotICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKLSAgICBj
aGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICdccicpIHsKLSAgICAgIGlmIChjdXJy
ZW50ICE9IGVuZCAmJiAqY3VycmVudCA9PSAnXG4nKQotICAgICAgICAgLy8gY29udmVydCBkb3Mg
RU9MCi0gICAgICAgICArK2N1cnJlbnQ7Ci0gICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKLSAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKLSAgICB9IGVsc2UgewotICAgICAgbm9ybWFsaXplZCArPSBj
OwotICAgIH0KLSAgfQotICByZXR1cm4gbm9ybWFsaXplZDsKLX0KLQotdm9pZAotUmVhZGVyOjph
ZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpz
dHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFj
ZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVf
ICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50
KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQot
fQotCi1ib29sIFJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
KicgJiYgKmN1cnJlbnRfID09ICcvJykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXRO
ZXh0Q2hhcigpID09ICcvJzsKLX0KLQotYm9vbCBSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQo
KSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENo
YXIoKTsKLSAgICBpZiAoYyA9PSAnXG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xy
JykgewotICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4g
YWRkQ29tbWVudC4KLSAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAn
XG4nKQotICAgICAgICBnZXROZXh0Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkg
RU9MLgotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi12b2lk
IFJlYWRlcjo6cmVhZE51bWJlcigpIHsKLSAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOwotICBj
aGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCi0g
IC8vIGludGVncmFsIHBhcnQKLSAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKLSAgLy8gZnJhY3Rpb25hbCBwYXJ0
Ci0gIGlmIChjID09ICcuJykgewotICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgLy8gZXhwb25lbnRpYWwgcGFydAot
ICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBl
bmRfID8gKnArKyA6IDA7Ci0gICAgaWYgKGMgPT0gJysnIHx8IGMgPT0gJy0nKQotICAgICAgYyA9
IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIHdoaWxlIChjID49ICcwJyAm
JiBjIDw9ICc5JykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsK
LSAgfQotfQotCi1ib29sIFJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAg
d2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBp
ZiAoYyA9PSAnXFwnKQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICci
JykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotYm9vbCBSZWFk
ZXI6OnJlYWRPYmplY3QoVG9rZW4mIHRva2VuU3RhcnQpIHsKLSAgVG9rZW4gdG9rZW5OYW1lOwot
ICBzdGQ6OnN0cmluZyBuYW1lOwotICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKLSAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKLSAgd2hpbGUgKHJlYWRUb2tlbih0b2tl
bk5hbWUpKSB7Ci0gICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKHRv
a2VuTmFtZS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCi0gICAgICBp
bml0aWFsVG9rZW5PayA9IHJlYWRUb2tlbih0b2tlbk5hbWUpOwotICAgIGlmICghaW5pdGlhbFRv
a2VuT2spCi0gICAgICBicmVhazsKLSAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2Jq
ZWN0RW5kICYmIG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBuYW1lID0gIiI7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmlu
ZykgewotICAgICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKLSAgICAgICAg
cmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOwotICAgIH0gZWxzZSBpZiAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNL
ZXlzXykgewotICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKLSAgICAgIGlmICghZGVjb2RlTnVtYmVy
KHRva2VuTmFtZSwgbnVtYmVyTmFtZSkpCi0gICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHRva2VuT2JqZWN0RW5kKTsKLSAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIFRva2VuIGNvbG9uOwotICAg
IGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFy
YXRvcikgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAiTWlz
c2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5k
KTsKLSAgICB9Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07Ci0gICAg
bm9kZXNfLnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9k
ZXNfLnBvcCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1
cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7Ci0KLSAgICBUb2tlbiBjb21tYTsK
LSAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKLSAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRv
a2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKLSAg
ICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkpIHsKLSAgICAgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3Qg
ZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RFbmQpOwotICAgIH0KLSAgICBib29sIGZp
bmFsaXplVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29t
bWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCi0gICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9r
ZW4oY29tbWEpOwotICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKLSAgICAg
IHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAi
TWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLCB0b2tlbk9iamVj
dEVuZCk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQXJyYXkoVG9rZW4mIHRva2VuU3RhcnQpIHsK
LSAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
aW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRf
IC0gYmVnaW5fKTsKLSAgc2tpcFNwYWNlcygpOwotICBpZiAoKmN1cnJlbnRfID09ICddJykgLy8g
ZW1wdHkgYXJyYXkKLSAgewotICAgIFRva2VuIGVuZEFycmF5OwotICAgIHJlYWRUb2tlbihlbmRB
cnJheSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgaW50IGluZGV4ID0gMDsKLSAgZm9yICg7
OykgewotICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOwotICAgIG5v
ZGVzXy5wdXNoKCZ2YWx1ZSk7Ci0gICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgIG5vZGVz
Xy5wb3AoKTsKLSAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgcmV0dXJu
IHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7Ci0KLSAgICBUb2tlbiB0b2tlbjsKLSAg
ICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgotICAgIG9r
ID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21t
ZW50ICYmIG9rKSB7Ci0gICAgICBvayA9IHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfQotICAgIGJv
b2wgYmFkVG9rZW5UeXBlID0KLSAgICAgICAgKHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBh
cmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCk7Ci0gICAgaWYgKCFvayB8fCBi
YWRUb2tlblR5cGUpIHsKLSAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAg
ICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tl
bkFycmF5RW5kKTsKLSAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQp
Ci0gICAgICBicmVhazsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRl
Y29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKLSAgVmFsdWUgZGVjb2RlZDsKLSAgaWYgKCFkZWNv
ZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQotICAgIHJldHVybiBmYWxzZTsKLSAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFk
ZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7Ci0gIC8vIEF0
dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBp
cwotICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50
ZWdlciB0aGVuCi0gIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgotICBMb2Nh
dGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwotICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVu
dCA9PSAnLSc7Ci0gIGlmIChpc05lZ2F0aXZlKQotICAgICsrY3VycmVudDsKLSAgLy8gVE9ETzog
SGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBn
ZXQgcmlkIG9mIHRoZW0uCi0gIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQot
ICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdElu
dCkgKyAxCi0gICAgICAgICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OwotICBWYWx1
ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5kXykg
ewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykK
LSAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgIFZhbHVlOjpV
SW50IGRpZ2l0KGMgLSAnMCcpOwotICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKLSAgICAg
IC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJv
dW5kZWQgZG93bikuIElmCi0gICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUg
bGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFuZAotICAgICAgLy8gYykgaXQncyBz
bWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCi0g
ICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQg
b3ZlcmZsb3cuCi0gICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVudCAhPSB0b2tl
bi5lbmRfIHx8Ci0gICAgICAgICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkgewotICAg
ICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKLSAgICAgIH0KLSAgICB9
Ci0gICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0gIH0KLSAgaWYgKGlzTmVnYXRpdmUg
JiYgdmFsdWUgPT0gbWF4SW50ZWdlclZhbHVlKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6bWluTGFy
Z2VzdEludDsKLSAgZWxzZSBpZiAoaXNOZWdhdGl2ZSkKLSAgICBkZWNvZGVkID0gLVZhbHVlOjpM
YXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50
KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7
Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwot
ICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwot
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQp
IHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0
XywgdG9rZW4uZW5kXyk7Ci0gIHN0ZDo6aXN0cmluZ3N0cmVhbSBpcyhidWZmZXIpOwotICBpZiAo
IShpcyA+PiB2YWx1ZSkpCi0gICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5nKHRv
a2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKwotICAgICAgICAgICAgICAgICAgICAgICAgIicgaXMg
bm90IGEgbnVtYmVyLiIsCi0gICAgICAgICAgICAgICAgICAgIHRva2VuKTsKLSAgZGVjb2RlZCA9
IHZhbHVlOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhU
b2tlbiYgdG9rZW4pIHsKLSAgc3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7Ci0gIGlmICghZGVj
b2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCi0gICAgcmV0dXJuIGZhbHNlOwotICBW
YWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8g
LSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKSB7Ci0gIGRlY29kZWQucmVzZXJ2
ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7Ci0gIExvY2F0aW9uIGN1cnJlbnQgPSB0
b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJwotICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRf
IC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCi0gIHdoaWxlIChjdXJyZW50ICE9IGVu
ZCkgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJyInKQotICAgICAg
YnJlYWs7Ci0gICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7Ci0gICAgICBpZiAoY3VycmVudCA9PSBl
bmQpCi0gICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0
cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAgIENoYXIgZXNjYXBlID0gKmN1cnJlbnQrKzsK
LSAgICAgIHN3aXRjaCAoZXNjYXBlKSB7Ci0gICAgICBjYXNlICciJzoKLSAgICAgICAgZGVjb2Rl
ZCArPSAnIic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnLyc6Ci0gICAgICAgIGRlY29k
ZWQgKz0gJy8nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgZGVj
b2RlZCArPSAnXFwnOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2InOgotICAgICAgICBk
ZWNvZGVkICs9ICdcYic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnZic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJ1xmJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICduJzoKLSAgICAg
ICAgZGVjb2RlZCArPSAnXG4nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ3InOgotICAg
ICAgICBkZWNvZGVkICs9ICdccic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAndCc6Ci0g
ICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICd1Jzog
ewotICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAgICAgaWYgKCFkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQotICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7
Ci0gICAgICB9IGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGFkZEVycm9y
KCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgZGVjb2RlZCArPSBjOwotICAgIH0KLSAgfQotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4m
IHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNv
ZGUpIHsKLQotICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVu
dCwgZW5kLCB1bmljb2RlKSkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIGlmICh1bmljb2RlID49IDB4
RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgewotICAgIC8vIHN1cnJvZ2F0ZSBwYWlycwotICAg
IGlmIChlbmQgLSBjdXJyZW50IDwgNikKLSAgICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAg
ICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1
cnJvZ2F0ZSBwYWlyLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7Ci0g
ICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7Ci0gICAgaWYgKCooY3VycmVudCsrKSA9PSAn
XFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKLSAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNj
YXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpcikpIHsKLSAgICAg
ICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsgKHN1cnJv
Z2F0ZVBhaXIgJiAweDNGRik7Ci0gICAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gZWxzZQotICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3RpbmcgYW5vdGhlciBcXHUg
dG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKLSAgICAgICAgICAgICAgICAgICAg
ICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKLSAgICAgICAgICAgICAgICAgICAgICB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50KTsKLSAgfQotICByZXR1cm4gdHJ1ZTsK
LX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9r
ZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBj
dXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlv
biBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSkgewotICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCi0gICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzog
Zm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKLSAgICAgICAgdG9rZW4sCi0gICAgICAgIGN1cnJlbnQp
OwotICB1bmljb2RlID0gMDsKLSAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5k
ZXgpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIHVuaWNvZGUgKj0gMTY7Ci0gICAg
aWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgICAgdW5pY29kZSArPSBjIC0gJzAnOwotICAg
IGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQotICAgICAgdW5pY29kZSArPSBjIC0gJ2En
ICsgMTA7Ci0gICAgZWxzZSBpZiAoYyA+PSAnQScgJiYgYyA8PSAnRicpCi0gICAgICB1bmljb2Rl
ICs9IGMgLSAnQScgKyAxMDsKLSAgICBlbHNlCi0gICAgICByZXR1cm4gYWRkRXJyb3IoCi0gICAg
ICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFs
IGRpZ2l0IGV4cGVjdGVkLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7
Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wKLVJlYWRlcjo6YWRkRXJyb3IoY29uc3Qg
c3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEpIHsKLSAg
RXJyb3JJbmZvIGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8g
PSBtZXNzYWdlOwotICBpbmZvLmV4dHJhXyA9IGV4dHJhOwotICBlcnJvcnNfLnB1c2hfYmFjayhp
bmZvKTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFJlYWRlcjo6cmVjb3ZlckZyb21FcnJv
cihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKLSAgaW50IGVycm9yQ291bnQgPSBpbnQoZXJy
b3JzXy5zaXplKCkpOwotICBUb2tlbiBza2lwOwotICBmb3IgKDs7KSB7Ci0gICAgaWYgKCFyZWFk
VG9rZW4oc2tpcCkpCi0gICAgICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsgLy8gZGlzY2Fy
ZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5Ci0gICAgaWYgKHNraXAudHlwZV8gPT0gc2tpcFVu
dGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtKQotICAgICAgYnJlYWs7
Ci0gIH0KLSAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsK
LSAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOwotICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcihz
a2lwVW50aWxUb2tlbik7Ci19Ci0KLVZhbHVlJiBSZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0
dXJuICoobm9kZXNfLnRvcCgpKTsgfQotCi1SZWFkZXI6OkNoYXIgUmVhZGVyOjpnZXROZXh0Q2hh
cigpIHsKLSAgaWYgKGN1cnJlbnRfID09IGVuZF8pCi0gICAgcmV0dXJuIDA7Ci0gIHJldHVybiAq
Y3VycmVudF8rKzsKLX0KLQotdm9pZCBSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50JiBsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNv
bHVtbikgY29uc3QgewotICBMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW5fOwotICBMb2NhdGlvbiBs
YXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgbGluZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwg
bG9jYXRpb24gJiYgY3VycmVudCAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsK
LSAgICBpZiAoYyA9PSAnXHInKSB7Ci0gICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKLSAgICAg
ICAgKytjdXJyZW50OwotICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICArK2xp
bmU7Ci0gICAgfSBlbHNlIGlmIChjID09ICdcbicpIHsKLSAgICAgIGxhc3RMaW5lU3RhcnQgPSBj
dXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0KLSAgfQotICAvLyBjb2x1bW4gJiBsaW5lIHN0
YXJ0IGF0IDEKLSAgY29sdW1uID0gaW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOwot
ICArK2xpbmU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7Ci0gIGludCBsaW5lLCBjb2x1bW47Ci0gIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKLSAgY2hhciBi
dWZmZXJbMTggKyAxNiArIDE2ICsgMV07Ci0gIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZl
ciksICJMaW5lICVkLCBDb2x1bW4gJWQiLCBsaW5lLCBjb2x1bW4pOwotICByZXR1cm4gYnVmZmVy
OwotfQotCi1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBs
b2NhdGlvbikgY29uc3QgewotICAgICAgIHN0ZDo6c3RyaW5nIHNuaXBwZXQgPSAiIjsKLSAgICAg
ICBzdGQ6OmlzdHJpbmdzdHJlYW0gZG9jU3RyZWFtKGRvY3VtZW50Xyk7Ci0gICAgICAgaW50IGxp
biwgY29sOwotICAgICAgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluLCBj
b2wpOwotICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7Ci0gICAgICAgZm9yIChpbnQgaT0xOyBpPGxp
bisyICYmIHN0ZDo6Z2V0bGluZShkb2NTdHJlYW0sIGxpbmUpOyBpKyspCi0gICAgICAgewotICAg
ICAgICAgICAgICBpZiAobGluLWkgPCAyKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICBzbmlwcGV0ICs9ICIgICIgKyBzdGQ6OnRvX3N0cmluZyhpKSArICI6ICIgKyBsaW5l
ICsgIlxuIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gc25pcHBl
dDsKLX0KLQotLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmls
aXR5Ci1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0
IHsKLSAgcmV0dXJuIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKLX0KLQotc3RkOjpzdHJp
bmcgUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgICAgZm9ybWF0
dGVkTWVzc2FnZSArPSBnZXRMb2NhdGlvblNuaXBwZXQoZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAi
XG4iOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxu
IjsKLSAgICBpZiAoZXJyb3IuZXh0cmFfKQotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQotICAg
ICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8pICsg
IiBmb3IgZGV0YWlsLlxuIjsKLSAgfQotICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKLX0KLQot
c3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJl
ZEVycm9ycygpIGNvbnN0IHsKLSAgc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+
IGFsbEVycm9yczsKLSAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJv
cnNfLmJlZ2luKCk7Ci0gICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOwotICAgICAgICsr
aXRFcnJvcikgewotICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKLSAgICBS
ZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0
X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsKLSAgICBzdHJ1Y3R1cmVkLm9m
ZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQu
bWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOwotICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0
dXJlZCk7Ci0gIH0KLSAgcmV0dXJuIGFsbEVycm9yczsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hF
cnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7Ci0g
IHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOwotICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFy
dCgpID4gbGVuZ3RoCi0gICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIFRva2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJy
b3I7Ci0gIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0g
IHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKLSAgRXJyb3JJbmZv
IGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdl
OwotICBpbmZvLmV4dHJhXyA9IDA7Ci0gIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOwotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoCi0gICAgfHwg
ZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIFRv
a2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLnN0YXJ0XyA9
IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0gIHRva2VuLmVuZF8gPSBiZWdpbl8g
KyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5mbzsKLSAgaW5mby50b2tl
bl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0gIGluZm8uZXh0cmFfID0g
YmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5m
byk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIFJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKLSAg
cmV0dXJuICFlcnJvcnNfLnNpemUoKTsKLX0KLQotLy8gZXhhY3QgY29weSBvZiBGZWF0dXJlcwot
Y2xhc3MgT3VyRmVhdHVyZXMgewotcHVibGljOgotICBzdGF0aWMgT3VyRmVhdHVyZXMgYWxsKCk7
Ci0gIGJvb2wgYWxsb3dDb21tZW50c187Ci0gIGJvb2wgc3RyaWN0Um9vdF87Ci0gIGJvb2wgYWxs
b3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187Ci0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci0g
IGJvb2wgYWxsb3dTaW5nbGVRdW90ZXNfOwotICBib29sIGZhaWxJZkV4dHJhXzsKLSAgYm9vbCBy
ZWplY3REdXBLZXlzXzsKLSAgYm9vbCBhbGxvd1NwZWNpYWxGbG9hdHNfOwotICBpbnQgc3RhY2tM
aW1pdF87Ci19OyAgLy8gT3VyRmVhdHVyZXMKLQotLy8gZXhhY3QgY29weSBvZiBJbXBsZW1lbnRh
dGlvbiBvZiBjbGFzcyBGZWF0dXJlcwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotT3VyRmVhdHVyZXMgT3VyRmVhdHVyZXM6OmFsbCgpIHsgcmV0dXJuIE91ckZlYXR1cmVz
KCk7IH0KLQotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgUmVhZGVyCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBleGFjdCBjb3B5IG9mIFJlYWRlciwgcmVuYW1l
ZCB0byBPdXJSZWFkZXIKLWNsYXNzIE91clJlYWRlciB7Ci1wdWJsaWM6Ci0gIHR5cGVkZWYgY2hh
ciBDaGFyOwotICB0eXBlZGVmIGNvbnN0IENoYXIqIExvY2F0aW9uOwotICBzdHJ1Y3QgU3RydWN0
dXJlZEVycm9yIHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRf
bGltaXQ7Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICBPdXJSZWFkZXIoT3Vy
RmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsKLSAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBiZWdp
bkRvYywKLSAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCi0gICAgICAgICAgICAgVmFs
dWUmIHJvb3QsCi0gICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKLSAg
c3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OwotICBzdGQ6OnZl
Y3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLSAgYm9v
bCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSk7Ci0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0gIGJvb2wgZ29vZCgpIGNvbnN0Owot
Ci1wcml2YXRlOgotICBPdXJSZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCi0g
IHZvaWQgb3BlcmF0b3I9KE91clJlYWRlciBjb25zdCYpOyAgLy8gbm8gaW1wbAotCi0gIGVudW0g
VG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKLSAgICB0b2tlbk9iamVjdEJl
Z2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRva2VuQXJyYXlCZWdpbiwKLSAgICB0b2tl
bkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAgIHRva2VuTnVtYmVyLAotICAgIHRva2Vu
VHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2VuTnVsbCwKLSAgICB0b2tlbk5hTiwKLSAg
ICB0b2tlblBvc0luZiwKLSAgICB0b2tlbk5lZ0luZiwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9y
LAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tl
bkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9rZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBl
IHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9Owot
Ci0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAg
c3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAgTG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5
cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihU
b2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBTcGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAg
Ym9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwotICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
LSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIGJvb2wgcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7Ci0g
IGJvb2wgcmVhZE51bWJlcihib29sIGNoZWNrSW5mKTsKLSAgYm9vbCByZWFkVmFsdWUoKTsKLSAg
Ym9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0
b2tlbik7Ci0gIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgZGVjb2Rl
TnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOwotICBib29sIGRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6
c3RyaW5nJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKTsKLSAg
Ym9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wg
ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uIGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSk7Ci0gIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2Vu
JiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2Rl
KTsKLSAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRv
a2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOwotICBib29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKTsKLSAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsK
LSAgdm9pZCBza2lwVW50aWxTcGFjZSgpOwotICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7Ci0gIENo
YXIgZ2V0TmV4dENoYXIoKTsKLSAgdm9pZAotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OwotICBzdGQ6OnN0
cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0Owot
ICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBs
YWNlbWVudCBwbGFjZW1lbnQpOwotICB2b2lkIHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tl
bik7Ci0KLSAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7Ci0gIE5vZGVzIG5vZGVz
XzsKLSAgRXJyb3JzIGVycm9yc187Ci0gIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKLSAgTG9jYXRp
b24gYmVnaW5fOwotICBMb2NhdGlvbiBlbmRfOwotICBMb2NhdGlvbiBjdXJyZW50XzsKLSAgTG9j
YXRpb24gbGFzdFZhbHVlRW5kXzsKLSAgVmFsdWUqIGxhc3RWYWx1ZV87Ci0gIHN0ZDo6c3RyaW5n
IGNvbW1lbnRzQmVmb3JlXzsKLSAgaW50IHN0YWNrRGVwdGhfOwotCi0gIE91ckZlYXR1cmVzIGNv
bnN0IGZlYXR1cmVzXzsKLSAgYm9vbCBjb2xsZWN0Q29tbWVudHNfOwotfTsgIC8vIE91clJlYWRl
cgotCi0vLyBjb21wbGV0ZSBjb3B5IG9mIFJlYWQgaW1wbCwgZm9yIE91clJlYWRlcgotCi1PdXJS
ZWFkZXI6Ok91clJlYWRlcihPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCi0gICAgOiBlcnJv
cnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFs
dWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLAotICAgICAg
c3RhY2tEZXB0aF8oMCksCi0gICAgICBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVu
dHNfKCkgewotfQotCi1ib29sIE91clJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2Ms
Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgICAg
ICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
KSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1l
bnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8gPSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERv
YzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKLSAgY3VycmVudF8gPSBi
ZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwotICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVu
dHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xlYXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1w
dHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5vZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFj
a0RlcHRoXyA9IDA7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOwotICBUb2tlbiB0
b2tlbjsKLSAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOwotICBpZiAoZmVhdHVyZXNfLmZhaWxJ
ZkV4dHJhXykgewotICAgIGlmICh0b2tlbi50eXBlXyAhPSB0b2tlbkVycm9yICYmIHRva2VuLnR5
cGVfICE9IHRva2VuRW5kT2ZTdHJlYW0pIHsKLSAgICAgIGFkZEVycm9yKCJFeHRyYSBub24td2hp
dGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2VuKTsKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gIH0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5l
bXB0eSgpKQotICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRl
cik7Ci0gIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJh
eSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0
byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAg
ICAvLyBpbiBkb2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2Vu
LnN0YXJ0XyA9IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFk
ZEVycm9yKAotICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9v
bCBPdXJSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKLSAgaWYgKHN0YWNrRGVwdGhfID49IGZlYXR1cmVz
Xy5zdGFja0xpbWl0XykgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4g
cmVhZFZhbHVlKCkuIik7Ci0gICsrc3RhY2tEZXB0aF87Ci0gIFRva2VuIHRva2VuOwotICBza2lw
Q29tbWVudFRva2Vucyh0b2tlbik7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7Ci0KLSAgaWYg
KGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOwot
ICAgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOwotICB9Ci0KLSAgc3dpdGNoICh0b2tlbi50eXBlXykg
ewotICBjYXNlIHRva2VuT2JqZWN0QmVnaW46Ci0gICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3Qo
dG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVn
aW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbkFycmF5QmVnaW46Ci0gICAgc3VjY2Vzc2Z1
bCA9IHJlYWRBcnJheSh0b2tlbik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQo
Y3VycmVudF8gLSBiZWdpbl8pOwotICAgIGJyZWFrOwotICBjYXNlIHRva2VuTnVtYmVyOgotICAg
IHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOwotICAgIGJyZWFrOwotICBjYXNlIHRv
a2VuU3RyaW5nOgotICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOwotICAgIGJy
ZWFrOwotICBjYXNlIHRva2VuVHJ1ZToKLSAgICB7Ci0gICAgVmFsdWUgdih0cnVlKTsKLSAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2Fz
ZSB0b2tlbkZhbHNlOgotICAgIHsKLSAgICBWYWx1ZSB2KGZhbHNlKTsKLSAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51
bGw6Ci0gICAgewotICAgIFZhbHVlIHY7Ci0gICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
dik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OYU46Ci0gICAgewotICAgIFZh
bHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2Ug
dG9rZW5Qb3NJbmY6Ci0gICAgewotICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwot
ICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk5lZ0luZjoKLSAgICB7Ci0gICAgVmFsdWUg
digtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFy
dCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tl
bkFycmF5U2VwYXJhdG9yOgotICBjYXNlIHRva2VuT2JqZWN0RW5kOgotICBjYXNlIHRva2VuQXJy
YXlFbmQ6Ci0gICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykg
ewotICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJy
ZW50IHZhbHVlIGFzIGEgbnVsbAotICAgICAgLy8gdG9rZW4uCi0gICAgICBjdXJyZW50Xy0tOwot
ICAgICAgVmFsdWUgdjsKLSAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwotICAg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsK
LSAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsK
LSAgICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSwgZmFsbCB0aHJvdWdoIC4uLgotICBkZWZhdWx0
OgotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2lu
Xyk7Ci0gICAgcmV0dXJuIGFkZEVycm9yKCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3Ig
YXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4pOwotICB9Ci0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18p
IHsKLSAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87Ci0gICAgbGFzdFZhbHVlXyA9ICZjdXJy
ZW50VmFsdWUoKTsKLSAgfQotCi0gIC0tc3RhY2tEZXB0aF87Ci0gIHJldHVybiBzdWNjZXNzZnVs
OwotfQotCi12b2lkIE91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7
Ci0gIGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKLSAgICBkbyB7Ci0gICAgICByZWFk
VG9rZW4odG9rZW4pOwotICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7
Ci0gIH0gZWxzZSB7Ci0gICAgcmVhZFRva2VuKHRva2VuKTsKLSAgfQotfQotCi1ib29sIE91clJl
YWRlcjo6cmVhZFRva2VuKFRva2VuJiB0b2tlbikgewotICBza2lwU3BhY2VzKCk7Ci0gIHRva2Vu
LnN0YXJ0XyA9IGN1cnJlbnRfOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIG9r
ID0gdHJ1ZTsKLSAgc3dpdGNoIChjKSB7Ci0gIGNhc2UgJ3snOgotICAgIHRva2VuLnR5cGVfID0g
dG9rZW5PYmplY3RCZWdpbjsKLSAgICBicmVhazsKLSAgY2FzZSAnfSc6Ci0gICAgdG9rZW4udHlw
ZV8gPSB0b2tlbk9iamVjdEVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnWyc6Ci0gICAgdG9rZW4u
dHlwZV8gPSB0b2tlbkFycmF5QmVnaW47Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ10nOgotICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5BcnJheUVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnIic6Ci0gICAg
dG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXCcnOgotICAgIGlmIChmZWF0dXJlc18uYWxsb3dTaW5nbGVRdW90ZXNf
KSB7Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmdT
aW5nbGVRdW90ZSgpOwotICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSBjb250aW51ZQotICBjYXNl
ICcvJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21t
ZW50KCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6
Ci0gIGNhc2UgJzMnOgotICBjYXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBj
YXNlICc3JzoKLSAgY2FzZSAnOCc6Ci0gIGNhc2UgJzknOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdW1iZXI7Ci0gICAgcmVhZE51bWJlcihmYWxzZSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJy0n
OgotICAgIGlmIChyZWFkTnVtYmVyKHRydWUpKSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2Vu
TnVtYmVyOwotICAgIH0gZWxzZSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVnSW5mOwot
ICAgICAgb2sgPSBmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgibmZpbml0
eSIsIDcpOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9rZW4udHlwZV8g
PSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9IG1hdGNoKCJh
bHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwotICBjYXNlICdO
JzoKLSAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKLSAgICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5OYU47Ci0gICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnSSc6Ci0g
ICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7Ci0gICAgICB0b2tlbi50eXBl
XyA9IHRva2VuUG9zSW5mOwotICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnLCc6
Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOwotICAgIGJyZWFrOwotICBj
YXNlICc6JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOwotICAgIGJy
ZWFrOwotICBjYXNlIDA6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOwotICAg
IGJyZWFrOwotICBkZWZhdWx0OgotICAgIG9rID0gZmFsc2U7Ci0gICAgYnJlYWs7Ci0gIH0KLSAg
aWYgKCFvaykKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLmVuZF8gPSBj
dXJyZW50XzsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgT3VyUmVhZGVyOjpza2lwU3BhY2Vz
KCkgewotICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50
XzsKLSAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdc
bicpCi0gICAgICArK2N1cnJlbnRfOwotICAgIGVsc2UKLSAgICAgIGJyZWFrOwotICB9Ci19Ci0K
LWJvb2wgT3VyUmVhZGVyOjptYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCkgewotICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gIHdoaWxlIChpbmRleC0tKQot
ICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0pCi0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIE91clJlYWRlcjo6cmVhZENvbW1lbnQoKSB7Ci0gIExvY2F0aW9uIGNvbW1lbnRCZWdp
biA9IGN1cnJlbnRfIC0gMTsKLSAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgYm9vbCBzdWNj
ZXNzZnVsID0gZmFsc2U7Ci0gIGlmIChjID09ICcqJykKLSAgICBzdWNjZXNzZnVsID0gcmVhZENT
dHlsZUNvbW1lbnQoKTsKLSAgZWxzZSBpZiAoYyA9PSAnLycpCi0gICAgc3VjY2Vzc2Z1bCA9IHJl
YWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgaWYgKCFzdWNjZXNzZnVsKQotICAgIHJldHVybiBmYWxz
ZTsKLQotICBpZiAoY29sbGVjdENvbW1lbnRzXykgewotICAgIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50ID0gY29tbWVudEJlZm9yZTsKLSAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFp
bnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKLSAgICAgIGlmIChjICE9
ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQotICAgICAg
ICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOwotICAgIH0KLQotICAgIGFkZENv
bW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50KTsKLSAgfQotICByZXR1cm4g
dHJ1ZTsKLX0KLQotdm9pZAotT3VyUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBM
b2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xs
ZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxp
emVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1l
TGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVfICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNl
dENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50
c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZENT
dHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykK
LSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKLX0KLQot
Ym9vbCBPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
XG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewotICAgICAgLy8gQ29uc3Vt
ZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KLSAgICAgIGlm
IChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAnXG4nKQotICAgICAgICBnZXROZXh0
Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkgRU9MLgotICAgICAgYnJlYWs7Ci0g
ICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZE51bWJl
cihib29sIGNoZWNrSW5mKSB7Ci0gIGNvbnN0IGNoYXIgKnAgPSBjdXJyZW50XzsKLSAgaWYgKGNo
ZWNrSW5mICYmIHAgIT0gZW5kXyAmJiAqcCA9PSAnSScpIHsKLSAgICBjdXJyZW50XyA9ICsrcDsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBh
bHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgotICAvLyBpbnRlZ3JhbCBwYXJ0Ci0gIHdoaWxlIChj
ID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnAr
KyA6IDA7Ci0gIC8vIGZyYWN0aW9uYWwgcGFydAotICBpZiAoYyA9PSAnLicpIHsKLSAgICBjID0g
KGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gICAgd2hpbGUgKGMgPj0gJzAnICYm
IGMgPD0gJzknKQotICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwot
ICB9Ci0gIC8vIGV4cG9uZW50aWFsIHBhcnQKLSAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7
Ci0gICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIGlmIChjID09
ICcrJyB8fCBjID09ICctJykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci1ib29s
IE91clJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnXFwn
KQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICciJykKLSAgICAgIGJy
ZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotCi1ib29sIE91clJlYWRlcjo6cmVh
ZFN0cmluZ1NpbmdsZVF1b3RlKCkgewotICBDaGFyIGMgPSAwOwotICB3aGlsZSAoY3VycmVudF8g
IT0gZW5kXykgewotICAgIGMgPSBnZXROZXh0Q2hhcigpOwotICAgIGlmIChjID09ICdcXCcpCi0g
ICAgICBnZXROZXh0Q2hhcigpOwotICAgIGVsc2UgaWYgKGMgPT0gJ1wnJykKLSAgICAgIGJyZWFr
OwotICB9Ci0gIHJldHVybiBjID09ICdcJyc7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpyZWFkT2Jq
ZWN0KFRva2VuJiB0b2tlblN0YXJ0KSB7Ci0gIFRva2VuIHRva2VuTmFtZTsKLSAgc3RkOjpzdHJp
bmcgbmFtZTsKLSAgVmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKGluaXQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0
YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgewot
ICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOwotICAgIHdoaWxlICh0b2tlbk5hbWUudHlw
ZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tlbk9rKQotICAgICAgaW5pdGlhbFRva2Vu
T2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKLSAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQotICAg
ICAgYnJlYWs7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBu
YW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgbmFt
ZSA9ICIiOwotICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKLSAgICAg
IGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCi0gICAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLSAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50
eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKLSAg
ICAgIFZhbHVlIG51bWJlck5hbWU7Ci0gICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUs
IG51bWJlck5hbWUpKQotICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVj
dEVuZCk7Ci0gICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOwotICAgIH0gZWxzZSB7
Ci0gICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBUb2tlbiBjb2xvbjsKLSAgICBpZiAoIXJlYWRU
b2tlbihjb2xvbikgfHwgY29sb24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKLSAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJzonIGFm
dGVyIG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQot
ICAgIGlmIChuYW1lLmxlbmd0aCgpID49ICgxVTw8MzApKSB0aHJvd1J1bnRpbWVFcnJvcigia2V5
bGVuZ3RoID49IDJeMzAiKTsKLSAgICBpZiAoZmVhdHVyZXNfLnJlamVjdER1cEtleXNfICYmIGN1
cnJlbnRWYWx1ZSgpLmlzTWVtYmVyKG5hbWUpKSB7Ci0gICAgICBzdGQ6OnN0cmluZyBtc2cgPSAi
RHVwbGljYXRlIGtleTogJyIgKyBuYW1lICsgIiciOwotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICBtc2csIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOwotICAg
IH0KLSAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKLSAgICBub2Rlc18u
cHVzaCgmdmFsdWUpOwotICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICBub2Rlc18ucG9w
KCk7Ci0gICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLQotICAgIFRva2VuIGNvbW1hOwotICAgIGlm
ICghcmVhZFRva2VuKGNvbW1hKSB8fAotICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmpl
Y3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgotICAgICAgICAg
Y29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJh
dGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQotICAgIGJvb2wgZmluYWxpemVU
b2tlbk9rID0gdHJ1ZTsKLSAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYm
IGZpbmFsaXplVG9rZW5PaykKLSAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21t
YSk7Ci0gICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQotICAgICAgcmV0dXJu
IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICJNaXNzaW5n
ICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsK
LX0KLQotYm9vbCBPdXJSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkgewotICBW
YWx1ZSBpbml0KGFycmF5VmFsdWUpOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0
KTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBi
ZWdpbl8pOwotICBza2lwU3BhY2VzKCk7Ci0gIGlmICgqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0
eSBhcnJheQotICB7Ci0gICAgVG9rZW4gZW5kQXJyYXk7Ci0gICAgcmVhZFRva2VuKGVuZEFycmF5
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotICBpbnQgaW5kZXggPSAwOwotICBmb3IgKDs7KSB7
Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107Ci0gICAgbm9kZXNf
LnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9kZXNfLnBv
cCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1cm4gcmVj
b3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKLQotICAgIFRva2VuIHRva2VuOwotICAgIC8v
IEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCi0gICAgb2sgPSBy
ZWFkVG9rZW4odG9rZW4pOwotICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYgb2spIHsKLSAgICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB9Ci0gICAgYm9vbCBi
YWRUb2tlblR5cGUgPQotICAgICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRv
ciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKLSAgICBpZiAoIW9rIHx8IGJhZFRv
a2VuVHlwZSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAi
TWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRva2VuQXJy
YXlFbmQpOwotICAgIH0KLSAgICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVuZCkKLSAg
ICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVj
b2RlTnVtYmVyKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29k
ZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJl
YWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgLy8g
QXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVy
IGlzCi0gIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBp
bnRlZ2VyIHRoZW4KLSAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCi0gIExv
Y2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87Ci0gIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJy
ZW50ID09ICctJzsKLSAgaWYgKGlzTmVnYXRpdmUpCi0gICAgKytjdXJyZW50OwotICAvLyBUT0RP
OiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9y
IGdldCByaWQgb2YgdGhlbS4KLSAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9
Ci0gICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2Vz
dEludCkKLSAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKLSAgVmFsdWU6
Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKLSAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRfKSB7
Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQot
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7Ci0gICAgVmFsdWU6OlVJ
bnQgZGlnaXQoYyAtICcwJyk7Ci0gICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgewotICAgICAg
Ly8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91
bmRlZCBkb3duKS4gSWYKLSAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBs
aW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCi0gICAgICAvLyBjKSBpdCdzIHNt
YWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KLSAg
ICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBv
dmVyZmxvdy4KLSAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRva2Vu
LmVuZF8gfHwKLSAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgICAgfQotICAgIH0K
LSAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKLSAgfQotICBpZiAoaXNOZWdhdGl2ZSkK
LSAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFs
dWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBW
YWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0g
IHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0
b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVj
b2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChk
ZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJl
Z2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91Ymxl
KFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAg
Y29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKLSAgaW50IGNvdW50OwotICBpbnQgbGVuZ3RoID0g
aW50KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8pOwotCi0gIC8vIFNhbml0eSBjaGVjayB0byBh
dm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCi0gIGlmIChsZW5ndGggPCAwKSB7Ci0gICAg
cmV0dXJuIGFkZEVycm9yKCJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwgdG9rZW4pOwot
ICB9Ci0KLSAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQg
Y29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KLSAgLy8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBo
YXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUKLSAgLy8gaW5m
bzoKLSAgLy8KLSAgLy8gICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFj
LyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRpYmls
aXRpZXMuaHRtbAotICBjaGFyIGZvcm1hdFtdID0gIiVsZiI7Ci0KLSAgaWYgKGxlbmd0aCA8PSBi
dWZmZXJTaXplKSB7Ci0gICAgQ2hhciBidWZmZXJbYnVmZmVyU2l6ZSArIDFdOwotICAgIG1lbWNw
eShidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3RoKTsKLSAgICBidWZmZXJbbGVuZ3RoXSA9IDA7
Ci0gICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSk7Ci0gIH0gZWxzZSB7
Ci0gICAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7Ci0gICAg
Y291bnQgPSBzc2NhbmYoYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlKTsKLSAgfQotCi0g
IGlmIChjb3VudCAhPSAxKQotICAgIHJldHVybiBhZGRFcnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0
b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKLSAgICAgICAgICAgICAgICAgICAgICAgICInIGlz
IG5vdCBhIG51bWJlci4iLAotICAgICAgICAgICAgICAgICAgICB0b2tlbik7Ci0gIGRlY29kZWQg
PSB2YWx1ZTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJp
bmcoVG9rZW4mIHRva2VuKSB7Ci0gIHN0ZDo6c3RyaW5nIGRlY29kZWRfc3RyaW5nOwotICBpZiAo
IWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQotICAgIHJldHVybiBmYWxzZTsK
LSAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKGRlY29kZWQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5z
dGFydF8gLSBiZWdpbl8pOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5l
bmRfIC0gYmVnaW5fKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNv
ZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCkgewotICBkZWNvZGVk
LnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIpOwotICBMb2NhdGlvbiBjdXJy
ZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAnIicKLSAgTG9jYXRpb24gZW5kID0gdG9r
ZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlICciJwotICB3aGlsZSAoY3VycmVu
dCAhPSBlbmQpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICciJykK
LSAgICAgIGJyZWFrOwotICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgewotICAgICAgaWYgKGN1cnJl
bnQgPT0gZW5kKQotICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7Ci0gICAgICBDaGFyIGVzY2FwZSA9ICpjdXJy
ZW50Kys7Ci0gICAgICBzd2l0Y2ggKGVzY2FwZSkgewotICAgICAgY2FzZSAnIic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJyInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJy8nOgotICAgICAg
ICBkZWNvZGVkICs9ICcvJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdcXCc6Ci0gICAg
ICAgIGRlY29kZWQgKz0gJ1xcJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdiJzoKLSAg
ICAgICAgZGVjb2RlZCArPSAnXGInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2YnOgot
ICAgICAgICBkZWNvZGVkICs9ICdcZic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnbic6
Ci0gICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdy
JzoKLSAgICAgICAgZGVjb2RlZCArPSAnXHInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2Ug
J3QnOgotICAgICAgICBkZWNvZGVkICs9ICdcdCc7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2Fz
ZSAndSc6IHsKLSAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7Ci0gICAgICAgIGlmICghZGVj
b2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKLSAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVu
aWNvZGUpOwotICAgICAgfSBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBh
ZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7
Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRlY29kZWQgKz0gYzsKLSAgICB9Ci0gIH0K
LSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBv
aW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50JiB1bmljb2RlKSB7Ci0KLSAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9r
ZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBpZiAodW5p
Y29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKLSAgICAvLyBzdXJyb2dhdGUg
cGFpcnMKLSAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICByZXR1cm4gYWRkRXJyb3Io
Ci0gICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2Ug
dW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAotICAgICAgICAgIHRva2VuLAotICAgICAgICAgIGN1
cnJlbnQpOwotICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWlyOwotICAgIGlmICgqKGN1cnJl
bnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7Ci0gICAgICBpZiAoZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIp
KSB7Ci0gICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEw
KSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOwotICAgICAgfSBlbHNlCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9IGVsc2UKLSAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFu
b3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCi0gICAgICAgICAgICAgICAg
ICAgICAgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgY3VycmVudCk7Ci0gIH0KLSAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVu
Y2UoVG9rZW4mIHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKLSAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQot
ICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsCi0gICAgICAgIHRva2VuLAotICAg
ICAgICBjdXJyZW50KTsKLSAgdW5pY29kZSA9IDA7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsgaW5k
ZXggPCA0OyArK2luZGV4KSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICB1bmljb2Rl
ICo9IDE2OwotICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICAgIHVuaWNvZGUgKz0g
YyAtICcwJzsKLSAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKLSAgICAgIHVuaWNv
ZGUgKz0gYyAtICdhJyArIDEwOwotICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQot
ICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7Ci0gICAgZWxzZQotICAgICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
OiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAotICAgICAgICAgIHRva2VuLAotICAgICAg
ICAgIGN1cnJlbnQpOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sCi1PdXJSZWFkZXI6
OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhKSB7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2VuXyA9IHRva2VuOwot
ICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAgZXJy
b3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBPdXJSZWFk
ZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGludCBl
cnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgVG9rZW4gc2tpcDsKLSAgZm9yICg7
OykgewotICAgIGlmICghcmVhZFRva2VuKHNraXApKQotICAgICAgZXJyb3JzXy5yZXNpemUoZXJy
b3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQotICAgIGlmIChz
a2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0
cmVhbSkKLSAgICAgIGJyZWFrOwotICB9Ci0gIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOwot
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIo
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKLSAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4pOwotfQotCi1WYWx1ZSYgT3VyUmVh
ZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KLQotT3VyUmVh
ZGVyOjpDaGFyIE91clJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7Ci0gIGlmIChjdXJyZW50XyA9PSBl
bmRfKQotICAgIHJldHVybiAwOwotICByZXR1cm4gKmN1cnJlbnRfKys7Ci19Ci0KLXZvaWQgT3Vy
UmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKLSAgTG9jYXRp
b24gY3VycmVudCA9IGJlZ2luXzsKLSAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7
Ci0gIGxpbmUgPSAwOwotICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0g
ZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewot
ICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCi0gICAgICAgICsrY3VycmVudDsKLSAgICAgIGxh
c3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0gZWxzZSBpZiAoYyA9
PSAnXG4nKSB7Ci0gICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICsrbGluZTsK
LSAgICB9Ci0gIH0KLSAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCi0gIGNvbHVtbiA9IGlu
dChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKLSAgKytsaW5lOwotfQotCi1zdGQ6OnN0
cmluZyBPdXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlv
bikgY29uc3QgewotICBpbnQgbGluZSwgY29sdW1uOwotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1
bW4obG9jYXRpb24sIGxpbmUsIGNvbHVtbik7Ci0gIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiAr
IDFdOwotICBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1u
ICVkIiwgbGluZSwgY29sdW1uKTsKLSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcg
T3VyUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgZm9ybWF0dGVk
TWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgIGlmIChlcnJvci5l
eHRyYV8pCi0gICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Ci0gICAgICAgICAgIlNlZSAiICsgZ2V0
TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOwot
ICB9Ci0gIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwotfQotCi1zdGQ6OnZlY3RvcjxPdXJSZWFk
ZXI6OlN0cnVjdHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29u
c3QgewotICBzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3Jz
OwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4o
KTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7Ci0gICAgICAgKytpdEVycm9yKSB7
Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOwotICAgIE91clJlYWRlcjo6
U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7Ci0gICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQg
PSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xp
bWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87Ci0gICAgc3RydWN0dXJlZC5tZXNzYWdl
ID0gZXJyb3IubWVzc2FnZV87Ci0gICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsK
LSAgfQotICByZXR1cm4gYWxsRXJyb3JzOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9y
KGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgVG9rZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsK
LSAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9r
ZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5m
bzsKLSAgaW5mby50b2tlbl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0g
IGluZm8uZXh0cmFfID0gMDsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiB0
cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgewotICBzaXpl
X3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKLSAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+
IGxlbmd0aAotICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKLSAgICB8fCBl
eHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJldHVybiBmYWxzZTsKLSAgVG9r
ZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9rZW4uc3RhcnRfID0g
YmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9rZW4uZW5kXyA9IGJlZ2luXyAr
IHZhbHVlLmdldE9mZnNldExpbWl0KCk7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2Vu
XyA9IHRva2VuOwotICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBi
ZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOwotICBlcnJvcnNfLnB1c2hfYmFjayhpbmZv
KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpnb29kKCkgY29uc3Qgewot
ICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOwotfQotCi0KLWNsYXNzIE91ckNoYXJSZWFkZXIgOiBw
dWJsaWMgQ2hhclJlYWRlciB7Ci0gIGJvb2wgY29uc3QgY29sbGVjdENvbW1lbnRzXzsKLSAgT3Vy
UmVhZGVyIHJlYWRlcl87Ci1wdWJsaWM6Ci0gIE91ckNoYXJSZWFkZXIoCi0gICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMsCi0gICAgT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQotICA6IGNvbGxl
Y3RDb21tZW50c18oY29sbGVjdENvbW1lbnRzKQotICAsIHJlYWRlcl8oZmVhdHVyZXMpCi0gIHt9
Ci0gIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBjb25zdCog
ZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSB7Ci0gICAgYm9v
bCBvayA9IHJlYWRlcl8ucGFyc2UoYmVnaW5Eb2MsIGVuZERvYywgKnJvb3QsIGNvbGxlY3RDb21t
ZW50c18pOwotICAgIGlmIChlcnJzKSB7Ci0gICAgICAqZXJycyA9IHJlYWRlcl8uZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcygpOwotICAgIH0KLSAgICByZXR1cm4gb2s7Ci0gIH0KLX07Ci0KLUNo
YXJSZWFkZXJCdWlsZGVyOjpDaGFyUmVhZGVyQnVpbGRlcigpCi17Ci0gIHNldERlZmF1bHRzKCZz
ZXR0aW5nc18pOwotfQotQ2hhclJlYWRlckJ1aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcigpCi17
fQotQ2hhclJlYWRlciogQ2hhclJlYWRlckJ1aWxkZXI6Om5ld0NoYXJSZWFkZXIoKSBjb25zdAot
ewotICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRpbmdzX1siY29sbGVjdENvbW1lbnRzIl0u
YXNCb29sKCk7Ci0gIE91ckZlYXR1cmVzIGZlYXR1cmVzID0gT3VyRmVhdHVyZXM6OmFsbCgpOwot
ICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRpbmdzX1siYWxsb3dDb21tZW50cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHNldHRpbmdzX1sic3RyaWN0Um9vdCJd
LmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IHNl
dHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOwotICBmZWF0
dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IHNldHRpbmdzX1siYWxsb3dOdW1lcmljS2V5cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd1NpbmdsZVF1b3Rlc18gPSBzZXR0aW5nc19bImFsbG93
U2luZ2xlUXVvdGVzIl0uYXNCb29sKCk7Ci0gIGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc2V0dGlu
Z3NfWyJzdGFja0xpbWl0Il0uYXNJbnQoKTsKLSAgZmVhdHVyZXMuZmFpbElmRXh0cmFfID0gc2V0
dGluZ3NfWyJmYWlsSWZFeHRyYSJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5yZWplY3REdXBLZXlz
XyA9IHNldHRpbmdzX1sicmVqZWN0RHVwS2V5cyJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxv
d1NwZWNpYWxGbG9hdHNfID0gc2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXS5hc0Jvb2wo
KTsKLSAgcmV0dXJuIG5ldyBPdXJDaGFyUmVhZGVyKGNvbGxlY3RDb21tZW50cywgZmVhdHVyZXMp
OwotfQotc3RhdGljIHZvaWQgZ2V0VmFsaWRSZWFkZXJLZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogdmFsaWRfa2V5cykKLXsKLSAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKLSAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJjb2xsZWN0Q29tbWVudHMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Nv
bW1lbnRzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgic3RyaWN0Um9vdCIpOwotICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJhbGxvd051bWVyaWNLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxs
b3dTaW5nbGVRdW90ZXMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdGFja0xpbWl0Iik7Ci0g
IHZhbGlkX2tleXMtPmluc2VydCgiZmFpbElmRXh0cmEiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0
KCJyZWplY3REdXBLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTcGVjaWFsRmxv
YXRzIik7Ci19Ci1ib29sIENoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSog
aW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZh
bGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0
IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3Rk
OjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZhbGlkUmVhZGVyS2V5cygmdmFsaWRfa2V5cyk7
Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAg
c2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kp
IHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRf
a2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgewotICAgICAgaW52W2tleV0gPSBz
ZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19
Ci1WYWx1ZSYgQ2hhclJlYWRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQot
ewotICByZXR1cm4gc2V0dGluZ3NfW2tleV07Ci19Ci0vLyBzdGF0aWMKLXZvaWQgQ2hhclJlYWRl
ckJ1aWxkZXI6OnN0cmljdE1vZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQotewotLy8hIFtDaGFy
UmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCi0gICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0g
PSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IHRydWU7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5n
cylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiYWxsb3dTaW5n
bGVRdW90ZXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsK
LSAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsicmVq
ZWN0RHVwS2V5cyJdID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJd
ID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KLX0KLS8vIHN0YXRp
Ywotdm9pZCBDaGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRp
bmdzKQotewotLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQotICAoKnNldHRpbmdzKVsi
Y29sbGVjdENvbW1lbnRzIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJd
ID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOwotICAoKnNldHRp
bmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U2lu
Z2xlUXVvdGVzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7
Ci0gICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7Ci0gICgqc2V0dGluZ3MpWyJy
ZWplY3REdXBLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0
cyJdID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCi19Ci0KLS8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGdsb2JhbCBmdW5jdGlvbnMKLQotYm9v
bCBwYXJzZUZyb21TdHJlYW0oCi0gICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdCwg
c3RkOjppc3RyZWFtJiBzaW4sCi0gICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKQot
ewotICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3NpbjsKLSAgc3NpbiA8PCBzaW4ucmRidWYoKTsKLSAg
c3RkOjpzdHJpbmcgZG9jID0gc3Npbi5zdHIoKTsKLSAgY2hhciBjb25zdCogYmVnaW4gPSBkb2Mu
ZGF0YSgpOwotICBjaGFyIGNvbnN0KiBlbmQgPSBiZWdpbiArIGRvYy5zaXplKCk7Ci0gIC8vIE5v
dGUgdGhhdCB3ZSBkbyBub3QgYWN0dWFsbHkgbmVlZCBhIG51bGwtdGVybWluYXRvci4KLSAgQ2hh
clJlYWRlclB0ciBjb25zdCByZWFkZXIoZmFjdC5uZXdDaGFyUmVhZGVyKCkpOwotICByZXR1cm4g
cmVhZGVyLT5wYXJzZShiZWdpbiwgZW5kLCByb290LCBlcnJzKTsKLX0KLQotc3RkOjppc3RyZWFt
JiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCkgewotICBDaGFyUmVh
ZGVyQnVpbGRlciBiOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0gcGFyc2VGcm9t
U3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKLSAgaWYgKCFvaykgewotICAgIGZwcmludGYo
c3RkZXJyLAotICAgICAgICAgICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCi0gICAgICAgICAg
ICBlcnJzLmNfc3RyKCkpOwotCi0gICAgdGhyb3dSdW50aW1lRXJyb3IoZXJycyk7Ci0gIH0KLSAg
cmV0dXJuIHNpbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3Bw
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9y
LmlubAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0vLyBpbmNsdWRlZCBieSBqc29uX3ZhbHVlLmNw
cAotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9y
QmFzZSgpCi0gICAgOiBjdXJyZW50XygpLCBpc051bGxfKHRydWUpIHsKLX0KLQotVmFsdWVJdGVy
YXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogY3VycmVudF8oY3VycmVudCksIGlzTnVsbF8o
ZmFsc2UpIHt9Ci0KLVZhbHVlJiBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdCB7Ci0g
IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOwotfQotCi12b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpp
bmNyZW1lbnQoKSB7Ci0gICsrY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6
OmRlY3JlbWVudCgpIHsKLSAgLS1jdXJyZW50XzsKLX0KLQotVmFsdWVJdGVyYXRvckJhc2U6OmRp
ZmZlcmVuY2VfdHlwZQotVmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBT
ZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAot
ICByZXR1cm4gb3RoZXIuY3VycmVudF8gLSBjdXJyZW50XzsKLSNlbHNlCi0gIC8vIEl0ZXJhdG9y
IGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVsdAotICAvLyBj
b25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0byB0aGUgZGVmYXVsdAotICAv
LyBzdGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkgYW5kIGVuZCgpIGFyZSB0d28gaW5zdGFu
Y2UKLSAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3Qg
YmUgY29tcGFyZWQuCi0gIC8vIFRvIGFsbG93IHRoaXMsIHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlz
b24gc3BlY2lmaWNhbGx5LgotICBpZiAoaXNOdWxsXyAmJiBvdGhlci5pc051bGxfKSB7Ci0gICAg
cmV0dXJuIDA7Ci0gIH0KLQotICAvLyBVc2FnZSBvZiBzdGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0
YWJsZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBTdHVkaW8gMTIKLSAgLy8gUm9ndWVXYXZl
IFNUTCwKLSAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgotICAvLyBVc2lu
ZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGlu
c3RlYWQ6Ci0gIC8vICAgcmV0dXJuIGRpZmZlcmVuY2VfdHlwZSggc3RkOjpkaXN0YW5jZSggY3Vy
cmVudF8sIG90aGVyLmN1cnJlbnRfICkgKTsKLSAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2Ug
PSAwOwotICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87
IGl0ICE9IG90aGVyLmN1cnJlbnRfOwotICAgICAgICsraXQpIHsKLSAgICArK215RGlzdGFuY2U7
Ci0gIH0KLSAgcmV0dXJuIG15RGlzdGFuY2U7Ci0jZW5kaWYKLX0KLQotYm9vbCBWYWx1ZUl0ZXJh
dG9yQmFzZTo6aXNFcXVhbChjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKGlz
TnVsbF8pIHsKLSAgICByZXR1cm4gb3RoZXIuaXNOdWxsXzsKLSAgfQotICByZXR1cm4gY3VycmVu
dF8gPT0gb3RoZXIuY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmNvcHko
Y29uc3QgU2VsZlR5cGUmIG90aGVyKSB7Ci0gIGN1cnJlbnRfID0gb3RoZXIuY3VycmVudF87Ci0g
IGlzTnVsbF8gPSBvdGhlci5pc051bGxfOwotfQotCi1WYWx1ZSBWYWx1ZUl0ZXJhdG9yQmFzZTo6
a2V5KCkgY29uc3QgewotICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJl
bnRfKS5maXJzdDsKLSAgaWYgKGN6c3RyaW5nLmRhdGEoKSkgewotICAgIGlmIChjenN0cmluZy5p
c1N0YXRpY1N0cmluZygpKQotICAgICAgcmV0dXJuIFZhbHVlKFN0YXRpY1N0cmluZyhjenN0cmlu
Zy5kYXRhKCkpKTsKLSAgICByZXR1cm4gVmFsdWUoY3pzdHJpbmcuZGF0YSgpLCBjenN0cmluZy5k
YXRhKCkgKyBjenN0cmluZy5sZW5ndGgoKSk7Ci0gIH0KLSAgcmV0dXJuIFZhbHVlKGN6c3RyaW5n
LmluZGV4KCkpOwotfQotCi1VSW50IFZhbHVlSXRlcmF0b3JCYXNlOjppbmRleCgpIGNvbnN0IHsK
LSAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7Ci0g
IGlmICghY3pzdHJpbmcuZGF0YSgpKQotICAgIHJldHVybiBjenN0cmluZy5pbmRleCgpOwotICBy
ZXR1cm4gVmFsdWU6OlVJbnQoLTEpOwotfQotCi1zdGQ6OnN0cmluZyBWYWx1ZUl0ZXJhdG9yQmFz
ZTo6bmFtZSgpIGNvbnN0IHsKLSAgY2hhciBjb25zdCoga2VleTsKLSAgY2hhciBjb25zdCogZW5k
OwotICBrZWV5ID0gbWVtYmVyTmFtZSgmZW5kKTsKLSAgaWYgKCFrZWV5KSByZXR1cm4gc3RkOjpz
dHJpbmcoKTsKLSAgcmV0dXJuIHN0ZDo6c3RyaW5nKGtlZXksIGVuZCk7Ci19Ci0KLWNoYXIgY29u
c3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29uc3QgewotICBjb25zdCBjaGFy
KiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsKLSAgcmV0dXJuIGNuYW1lID8gY25h
bWUgOiAiIjsKLX0KLQotY2hhciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUo
Y2hhciBjb25zdCoqIGVuZCkgY29uc3QgewotICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKLSAgaWYgKCFjbmFtZSkgewotICAgICplbmQgPSBOVUxMOwotICAg
IHJldHVybiBOVUxMOwotICB9Ci0gICplbmQgPSBjbmFtZSArICgqY3VycmVudF8pLmZpcnN0Lmxl
bmd0aCgpOwotICByZXR1cm4gY25hbWU7Ci19Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcgotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVl
Q29uc3RJdGVyYXRvcigpIHt9Ci0KLVZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJh
dG9yKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQot
ICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KLQotVmFsdWVDb25zdEl0ZXJhdG9y
OjpWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCi0gICAgOiBW
YWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KLQotVmFsdWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNv
bnN0SXRlcmF0b3I6Ogotb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcikg
ewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZUl0ZXJhdG9yCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3I6OlZhbHVl
SXRlcmF0b3IoKSB7fQotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVl
OjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogVmFsdWVJdGVyYXRvckJh
c2UoY3VycmVudCkge30KLQotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1
ZUNvbnN0SXRlcmF0b3ImIG90aGVyKQotICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsK
LSAgdGhyb3dSdW50aW1lRXJyb3IoIkNvbnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5l
dmVyIGJlIGFsbG93ZWQuIik7Ci19Ci0KLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29u
c3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpCi0gICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
e30KLQotVmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZU
eXBlJiBvdGhlcikgewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi19IC8v
IG5hbWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9m
IGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0b3IuaW5sCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAKLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0K
LSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxqc29uL2Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+Ci0jaW5jbHVkZSA8anNvbi93cml0ZXIu
aD4KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRl
IDxtYXRoLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1
ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KLSNpZmRlZiBKU09OX1VTRV9DUFBUTAot
I2luY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjc3RkZGVm
PiAvLyBzaXplX3QKLSNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIG1pbigpCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfVU5SRUFDSEFCTEUgYXNzZXJ0KGZhbHNlKQotCi0vKgotLS0gVmFsdmUgMS83LzE2
Ci00NzAyIHVucmVhY2hhYmxlIGNvZGUKLSovCi0jcHJhZ21hIHdhcm5pbmcgKHB1c2gpCi0jcHJh
Z21hIHdhcm5pbmcgKGRpc2FibGU6IDQ3MDIpCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8gVGhp
cyBpcyBhIHdhbGthcm91bmQgdG8gYXZvaWQgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiBvZiBW
YWx1ZTo6bnVsbC4KLS8vIGtOdWxsIG11c3QgYmUgd29yZC1hbGlnbmVkIHRvIGF2b2lkIGNyYXNo
aW5nIG9uIEFSTS4gIFdlIHVzZSBhbiBhbGlnbm1lbnQgb2YKLS8vIDggKGluc3RlYWQgb2YgNCkg
YXMgYSBiaXQgb2YgZnV0dXJlLXByb29maW5nLgotI2lmIGRlZmluZWQoX19BUk1FTF9fKQotI2Rl
ZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGJ5dGVf
YWxpZ25tZW50KSkpCi0jZWxzZQotI2RlZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KQotI2Vu
ZGlmCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBBTElHTkFTKDgpIGtOdWxsW3NpemVvZihW
YWx1ZSldID0geyAwIH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyJiBrTnVsbFJlZiA9IGtOdWxsWzBd
OwotY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBWYWx1
ZSY+KGtOdWxsUmVmKTsKLWNvbnN0IFZhbHVlJiBWYWx1ZTo6bnVsbFJlZiA9IG51bGw7Ci0KLWNv
bnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KH4oVUludCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQg
VmFsdWU6Om1heEludCA9IEludChVSW50KC0xKSAvIDIpOwotY29uc3QgVUludCBWYWx1ZTo6bWF4
VUludCA9IFVJbnQoLTEpOwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWluSW50NjQgPSBJbnQ2NCh+KFVJbnQ2NCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWF4SW50NjQgPSBJbnQ2NChVSW50NjQoLTEpIC8gMik7Ci1jb25zdCBVSW50NjQg
VmFsdWU6Om1heFVJbnQ2NCA9IFVJbnQ2NCgtMSk7Ci0vLyBUaGUgY29uc3RhbnQgaXMgaGFyZC1j
b2RlZCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgaGF2ZSB0cm91YmxlCi0vLyBjb252ZXJ0aW5nIFZh
bHVlOjptYXhVSW50NjQgdG8gYSBkb3VibGUgY29ycmVjdGx5IChBSVgveGxDKS4KLS8vIEFzc3Vt
ZXMgdGhhdCBVSW50NjQgaXMgYSA2NCBiaXRzIGludGVnZXIuCi1zdGF0aWMgY29uc3QgZG91Ymxl
IG1heFVJbnQ2NEFzRG91YmxlID0gMTg0NDY3NDQwNzM3MDk1NTE2MTUuMDsKLSNlbmRpZiAvLyBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWluTGFyZ2Vz
dEludCA9IExhcmdlc3RJbnQofihMYXJnZXN0VUludCgtMSkgLyAyKSk7Ci1jb25zdCBMYXJnZXN0
SW50IFZhbHVlOjptYXhMYXJnZXN0SW50ID0gTGFyZ2VzdEludChMYXJnZXN0VUludCgtMSkgLyAy
KTsKLWNvbnN0IExhcmdlc3RVSW50IFZhbHVlOjptYXhMYXJnZXN0VUludCA9IExhcmdlc3RVSW50
KC0xKTsKLQotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgSW5S
YW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gIHJldHVybiBkID49IG1pbiAmJiBkIDw9
IG1heDsKLX0KLSNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShKc29uOjpVSW50
NjQgdmFsdWUpIHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgLyAy
KSkgKiAyLjAgKyBJbnQ2NCh2YWx1ZSAmIDEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
c3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKFQgdmFsdWUpIHsKLSAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwg
VSBtYXgpIHsKLSAgcmV0dXJuIGQgPj0gaW50ZWdlclRvRG91YmxlKG1pbikgJiYgZCA8PSBpbnRl
Z2VyVG9Eb3VibGUobWF4KTsKLX0KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKLQotLyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJp
bmcgdmFsdWUuCi0gKiBAcGFyYW0gdmFsdWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxp
Y2F0ZS4gTXVzdCBiZSB6ZXJvLXRlcm1pbmF0ZWQgaWYKLSAqICAgICAgICAgICAgICBsZW5ndGgg
aXMgInVua25vd24iLgotICogQHBhcmFtIGxlbmd0aCBMZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBl
cXVhbHMgdG8gdW5rbm93biwgdGhlbiBpdCB3aWxsIGJlCi0gKiAgICAgICAgICAgICAgIGNvbXB1
dGVkIHVzaW5nIHN0cmxlbih2YWx1ZSkuCi0gKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxp
Y2F0ZSBpbnN0YW5jZSBvZiBzdHJpbmcuCi0gKi8KLXN0YXRpYyBpbmxpbmUgY2hhciogZHVwbGlj
YXRlU3RyaW5nVmFsdWUoY29uc3QgY2hhciogdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpIHsKLSAgLy8gQXZvaWQgYW4gaW50ZWdl
ciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3Ro
Ci0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgaWYgKGxlbmd0aCA+PSAoc2l6ZV90KVZhbHVlOjpt
YXhJbnQpCi0gICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7Ci0KLSAgY2hhciogbmV3U3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhsZW5ndGggKyAxKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gTlVMTCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNv
bjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxlZCB0byBh
bGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgbWVtY3B5KG5ld1N0cmluZywg
dmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgcmV0dXJuIG5ld1N0
cmluZzsKLX0KLQotLyogUmVjb3JkIHRoZSBsZW5ndGggYXMgYSBwcmVmaXguCi0gKi8KLXN0YXRp
YyBpbmxpbmUgY2hhciogZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCi0gICAgY29uc3Qg
Y2hhciogdmFsdWUsCi0gICAgdW5zaWduZWQgaW50IGxlbmd0aCkKLXsKLSAgLy8gQXZvaWQgYW4g
aW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcg
bGVuZ3RoCi0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgSlNPTl9BU1NFUlRfTUVTU0FHRShsZW5n
dGggPD0gKHVuc2lnbmVkKVZhbHVlOjptYXhJbnQgLSBzaXplb2YodW5zaWduZWQpIC0gMVUsCi0g
ICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhT
dHJpbmdWYWx1ZSgpOiAiCi0gICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCB0b28gYmlnIGZv
ciBwcmVmaXhpbmciKTsKLSAgdW5zaWduZWQgYWN0dWFsTGVuZ3RoID0gbGVuZ3RoICsgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHNpemVvZih1bnNpZ25lZCkpICsgMVU7Ci0gIGNoYXIqIG5ld1N0cmlu
ZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoYWN0dWFsTGVuZ3RoKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gMCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNvbjo6
VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxl
ZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgKnJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihuZXdTdHJpbmcpID0gbGVuZ3RoOwotICBtZW1jcHkobmV3U3RyaW5n
ICsgc2l6ZW9mKHVuc2lnbmVkKSwgdmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1thY3R1YWxM
ZW5ndGggLSAxVV0gPSAwOyAvLyB0byBhdm9pZCBidWZmZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5
IHVzZXJzIGxhdGVyCi0gIHJldHVybiBuZXdTdHJpbmc7Ci19Ci1pbmxpbmUgc3RhdGljIHZvaWQg
ZGVjb2RlUHJlZml4ZWRTdHJpbmcoCi0gICAgYm9vbCBpc1ByZWZpeGVkLCBjaGFyIGNvbnN0KiBw
cmVmaXhlZCwKLSAgICB1bnNpZ25lZCogbGVuZ3RoLCBjaGFyIGNvbnN0KiogdmFsdWUpCi17Ci0g
IGlmICghaXNQcmVmaXhlZCkgewotICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c3RybGVuKHByZWZpeGVkKSk7Ci0gICAgKnZhbHVlID0gcHJlZml4ZWQ7Ci0gIH0gZWxzZSB7Ci0g
ICAgKmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQp
OwotICAgICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVkKTsKLSAgfQotfQotLyoq
IEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkvZHVw
bGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIHJl
bGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeyBmcmVlKHZhbHVlKTsgfQotCi19IC8vIG5h
bWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIFZhbHVlSW50ZXJuYWxzLi4uCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0jaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLSNpbmNsdWRlICJq
c29uX3ZhbHVlaXRlcmF0b3IuaW5sIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLUV4Y2VwdGlvbjo6RXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogbXNnXyhtc2cpCi17fQotRXhjZXB0aW9uOjp+RXhj
ZXB0aW9uKCkgdGhyb3coKQote30KLWNoYXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0
IHRocm93KCkKLXsKLSAgcmV0dXJuIG1zZ18uY19zdHIoKTsKLX0KLVJ1bnRpbWVFcnJvcjo6UnVu
dGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhjZXB0aW9uKG1zZykKLXt9
Ci1Mb2dpY0Vycm9yOjpMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhj
ZXB0aW9uKG1zZykKLXt9Ci12b2lkIHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0
JiBtc2cpCi17Ci0gIHRocm93IFJ1bnRpbWVFcnJvcihtc2cpOwotfQotdm9pZCB0aHJvd0xvZ2lj
RXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKLXsKLSAgdGhyb3cgTG9naWNFcnJvcihtc2cp
OwotfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFz
cyBWYWx1ZTo6Q29tbWVudEluZm8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbygpIDogY29tbWVudF8oMCkg
e30KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8oKSB7Ci0gIGlmIChjb21tZW50
XykKLSAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29tbWVudF8pOwotfQotCi12b2lkIFZhbHVlOjpD
b21tZW50SW5mbzo6c2V0Q29tbWVudChjb25zdCBjaGFyKiB0ZXh0LCBzaXplX3QgbGVuKSB7Ci0g
IGlmIChjb21tZW50XykgewotICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7Ci0gICAg
Y29tbWVudF8gPSAwOwotICB9Ci0gIEpTT05fQVNTRVJUKHRleHQgIT0gMCk7Ci0gIEpTT05fQVNT
RVJUX01FU1NBR0UoCi0gICAgICB0ZXh0WzBdID09ICdcMCcgfHwgdGV4dFswXSA9PSAnLycsCi0g
ICAgICAiaW4gSnNvbjo6VmFsdWU6OnNldENvbW1lbnQoKTogQ29tbWVudHMgbXVzdCBzdGFydCB3
aXRoIC8iKTsKLSAgLy8gSXQgc2VlbXMgdGhhdCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2Nl
cHRhYmxlIGFzIHdlbGwuCi0gIGNvbW1lbnRfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUodGV4dCwg
bGVuKTsKLX0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8g
Y2xhc3MgVmFsdWU6OkNaU3RyaW5nCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLS8vIE5vdGVzOiBwb2xpY3lfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBh
bGxvY2F0ZWQgd2hlbgotLy8gYSBzdHJpbmcgaXMgc3RvcmVkLgotCi1WYWx1ZTo6Q1pTdHJpbmc6
OkNaU3RyaW5nKEFycmF5SW5kZXggYWluZGV4KSA6IGNzdHJfKDApLCBpbmRleF8oYWluZGV4KSB7
fQotCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwgdW5zaWduZWQg
dWxlbmd0aCwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUpCi0gICAgOiBjc3RyXyhzdHIpIHsK
LSAgLy8gYWxsb2NhdGUgIT0gZHVwbGljYXRlCi0gIHN0b3JhZ2VfLnBvbGljeV8gPSBhbGxvY2F0
ZSAmIDB4MzsKLSAgc3RvcmFnZV8ubGVuZ3RoXyA9IHVsZW5ndGggJiAweDNGRkZGRkZGOwotfQot
Ci1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNvbnN0IENaU3RyaW5nJiBvdGhlcikKLSAgICA6
IGNzdHJfKG90aGVyLnN0b3JhZ2VfLnBvbGljeV8gIT0gbm9EdXBsaWNhdGlvbiAmJiBvdGhlci5j
c3RyXyAhPSAwCi0gICAgICAgICAgICAgICAgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShvdGhlci5j
c3RyXywgb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXykKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNz
dHJfKSB7Ci0gIHN0b3JhZ2VfLnBvbGljeV8gPSAob3RoZXIuY3N0cl8KLSAgICAgICAgICAgICAg
ICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGlj
eV8pID09IG5vRHVwbGljYXRpb24KLSAgICAgICAgICAgICAgICAgICAgID8gbm9EdXBsaWNhdGlv
biA6IGR1cGxpY2F0ZSkKLSAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlv
blBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5XykpOwotICBzdG9yYWdlXy5sZW5ndGhfID0g
b3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKLX0KLQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVO
Q0VTCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpCi0gIDogY3N0
cl8ob3RoZXIuY3N0cl8pLCBpbmRleF8ob3RoZXIuaW5kZXhfKSB7Ci0gIG90aGVyLmNzdHJfID0g
bnVsbHB0cjsKLX0KLSNlbmRpZgotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpIHsKLSAg
aWYgKGNzdHJfICYmIHN0b3JhZ2VfLnBvbGljeV8gPT0gZHVwbGljYXRlKQotICAgIHJlbGVhc2VT
dHJpbmdWYWx1ZShjb25zdF9jYXN0PGNoYXIqPihjc3RyXykpOwotfQotCi12b2lkIFZhbHVlOjpD
WlN0cmluZzo6c3dhcChDWlN0cmluZyYgb3RoZXIpIHsKLSAgc3RkOjpzd2FwKGNzdHJfLCBvdGhl
ci5jc3RyXyk7Ci0gIHN0ZDo6c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Ci19Ci0KLVZhbHVl
OjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0oQ1pTdHJpbmcgb3RoZXIpIHsK
LSAgc3dhcChvdGhlcik7Ci0gIHJldHVybiAqdGhpczsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJp
bmc6Om9wZXJhdG9yPChjb25zdCBDWlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKCFjc3Ry
XykgcmV0dXJuIGluZGV4XyA8IG90aGVyLmluZGV4XzsKLSAgLy9yZXR1cm4gc3RyY21wKGNzdHJf
LCBvdGhlci5jc3RyXykgPCAwOwotICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5z
aWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhl
cl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBtaW5fbGVuID0gc3Rk
OjptaW4odGhpc19sZW4sIG90aGVyX2xlbik7Ci0gIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNz
dHJfLCBvdGhlci5jc3RyXywgbWluX2xlbik7Ci0gIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7
Ci0gIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOwotICByZXR1cm4gKHRoaXNfbGVuIDwgb3Ro
ZXJfbGVuKTsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pT
dHJpbmcmIG90aGVyKSBjb25zdCB7Ci0gIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPT0gb3Ro
ZXIuaW5kZXhfOwotICAvL3JldHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA9PSAwOwot
ICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlz
LT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdl
Xy5sZW5ndGhfOwotICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
IGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgdGhpc19sZW4pOwot
ICByZXR1cm4gY29tcCA9PSAwOwotfQotCi1BcnJheUluZGV4IFZhbHVlOjpDWlN0cmluZzo6aW5k
ZXgoKSBjb25zdCB7IHJldHVybiBpbmRleF87IH0KLQotLy9jb25zdCBjaGFyKiBWYWx1ZTo6Q1pT
dHJpbmc6OmNfc3RyKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KLWNvbnN0IGNoYXIqIFZhbHVl
OjpDWlN0cmluZzo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Ci11bnNpZ25lZCBWYWx1
ZTo6Q1pTdHJpbmc6Omxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0K
LWJvb2wgVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0
b3JhZ2VfLnBvbGljeV8gPT0gbm9EdXBsaWNhdGlvbjsgfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6VmFsdWUKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLyohIFxpbnRlcm5hbCBEZWZhdWx0IGNv
bnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIG11c3QgYmUgZXF1aXZhbGVudCB0bzoKLSAqIG1lbXNl
dCggdGhpcywgMCwgc2l6ZW9mKFZhbHVlKSApCi0gKiBUaGlzIG9wdGltaXphdGlvbiBpcyB1c2Vk
IGluIFZhbHVlSW50ZXJuYWxNYXAgZmFzdCBhbGxvY2F0b3IuCi0gKi8KLVZhbHVlOjpWYWx1ZShW
YWx1ZVR5cGUgdnR5cGUpIHsKLSAgaW5pdEJhc2ljKHZ0eXBlKTsKLSAgc3dpdGNoICh2dHlwZSkg
ewotICBjYXNlIG51bGxWYWx1ZToKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgdmFsdWVfLmludF8gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIHJl
YWxWYWx1ZToKLSAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3Ry
aW5nVmFsdWU6Ci0gICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIGFy
cmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8gPSBuZXcgT2Jq
ZWN0VmFsdWVzKCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVl
Xy5ib29sXyA9IGZhbHNlOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci19Ci0KLVZhbHVlOjpWYWx1ZShJbnQgdmFsdWUpIHsKLSAgaW5p
dEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZh
bHVlKFVJbnQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7Ci0gIHZhbHVlXy51aW50
XyA9IHZhbHVlOwotfQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1WYWx1ZTo6VmFsdWUo
SW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2
YWx1ZTsKLX0KLVZhbHVlOjpWYWx1ZShVSW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRW
YWx1ZSk7Ci0gIHZhbHVlXy51aW50XyA9IHZhbHVlOwotfQotI2VuZGlmIC8vIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCi0KLVZhbHVlOjpWYWx1ZShkb3VibGUgdmFsdWUpIHsKLSAgaW5pdEJhc2lj
KHJlYWxWYWx1ZSk7Ci0gIHZhbHVlXy5yZWFsXyA9IHZhbHVlOwotfQotCi1WYWx1ZTo6VmFsdWUo
Y29uc3QgY2hhciogdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKLSAg
dmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbih2YWx1ZSkpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNv
bnN0IGNoYXIqIGJlZ2luVmFsdWUsIGNvbnN0IGNoYXIqIGVuZFZhbHVlKSB7Ci0gIGluaXRCYXNp
YyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0gIHZhbHVlXy5zdHJpbmdfID0KLSAgICAgIGR1cGxpY2F0
ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKGJlZ2luVmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihl
bmRWYWx1ZSAtIGJlZ2luVmFsdWUpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOwotICB2YWx1ZV8u
c3RyaW5nXyA9Ci0gICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZS5kYXRh
KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotCi1WYWx1ZTo6
VmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFs
dWUpOwotICB2YWx1ZV8uc3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkp
OwotfQotCi0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6
Q29uc3RTdHJpbmcmIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0g
IHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotI2VuZGlmCi0KLVZhbHVl
OjpWYWx1ZShib29sIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhib29sZWFuVmFsdWUpOwotICB2YWx1
ZV8uYm9vbF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZhbHVlKFZhbHVlIGNvbnN0JiBvdGhlcikK
LSAgICA6IHR5cGVfKG90aGVyLnR5cGVfKSwgYWxsb2NhdGVkXyhmYWxzZSkKLSAgICAgICwKLSAg
ICAgIGNvbW1lbnRzXyhudWxscHRyKSwgZGVmYXVsdF92YWx1ZV8obnVsbHB0ciksIHN0YXJ0Xyhv
dGhlci5zdGFydF8pLCBsaW1pdF8ob3RoZXIubGltaXRfKQotewotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICBjYXNlIGludFZhbHVlOgotICBjYXNlIHVpbnRWYWx1ZToK
LSAgY2FzZSByZWFsVmFsdWU6Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVlXyA9IG90
aGVyLnZhbHVlXzsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAob3Ro
ZXIudmFsdWVfLnN0cmluZ18gJiYgb3RoZXIuYWxsb2NhdGVkXykgewotICAgICAgdW5zaWduZWQg
bGVuOwotICAgICAgY2hhciBjb25zdCogc3RyOwotICAgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmco
b3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sCi0gICAgICAgICAgJmxlbiwg
JnN0cik7Ci0gICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKHN0ciwgbGVuKTsKLSAgICAgIGFsbG9jYXRlZF8gPSB0cnVlOwotICAgIH0gZWxzZSB7Ci0g
ICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90aGVyLnZhbHVlXy5zdHJpbmdfOwotICAgICAgYWxsb2Nh
dGVkXyA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBj
YXNlIG9iamVjdFZhbHVlOgotICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygqb3Ro
ZXIudmFsdWVfLm1hcF8pOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci0gIGlmIChvdGhlci5jb21tZW50c18pIHsKLSAgICBjb21tZW50
c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgICBmb3Ig
KGludCBjb21tZW50ID0gMDsgY29tbWVudCA8IG51bWJlck9mQ29tbWVudFBsYWNlbWVudDsgKytj
b21tZW50KSB7Ci0gICAgICBjb25zdCBDb21tZW50SW5mbyYgb3RoZXJDb21tZW50ID0gb3RoZXIu
Y29tbWVudHNfW2NvbW1lbnRdOwotICAgICAgaWYgKG90aGVyQ29tbWVudC5jb21tZW50XykKLSAg
ICAgICAgY29tbWVudHNfW2NvbW1lbnRdLnNldENvbW1lbnQoCi0gICAgICAgICAgICBvdGhlckNv
bW1lbnQuY29tbWVudF8sIHN0cmxlbihvdGhlckNvbW1lbnQuY29tbWVudF8pKTsKLSAgICB9Ci0g
IH0KLQotICBpZiAoIG90aGVyLmRlZmF1bHRfdmFsdWVfICkKLSAgewotICAgICAgICAgZGVmYXVs
dF92YWx1ZV8gPSBuZXcgVmFsdWUoICpvdGhlci5kZWZhdWx0X3ZhbHVlXyApOwotICB9Ci0KLX0K
LQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0vLyBNb3ZlIGNvbnN0cnVjdG9yCi1W
YWx1ZTo6VmFsdWUoVmFsdWUmJiBvdGhlcikgewotICBpbml0QmFzaWMobnVsbFZhbHVlKTsKLSAg
c3dhcChvdGhlcik7Ci19Ci0jZW5kaWYKLQotVmFsdWU6On5WYWx1ZSgpIHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAoYWxsb2NhdGVkXykKLSAgICAgIHJlbGVh
c2VTdHJpbmdWYWx1ZSh2YWx1ZV8uc3RyaW5nXyk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlW
YWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBkZWxldGUgdmFsdWVfLm1hcF87Ci0gICAg
YnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLQot
ICBpZiAoY29tbWVudHNfKQotICAgIGRlbGV0ZVtdIGNvbW1lbnRzXzsKLQotICBpZiAoIGRlZmF1
bHRfdmFsdWVfKQotICAgICAgICAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOwotfQotCi1WYWx1ZSYg
VmFsdWU6Om9wZXJhdG9yPShWYWx1ZSBvdGhlcikgewotICBzd2FwKG90aGVyKTsKLSAgcmV0dXJu
ICp0aGlzOwotfQotCi12b2lkIFZhbHVlOjpzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpIHsKLSAg
VmFsdWVUeXBlIHRlbXAgPSB0eXBlXzsKLSAgdHlwZV8gPSBvdGhlci50eXBlXzsKLSAgb3RoZXIu
dHlwZV8gPSB0ZW1wOwotICBzdGQ6OnN3YXAodmFsdWVfLCBvdGhlci52YWx1ZV8pOwotICBpbnQg
dGVtcDIgPSBhbGxvY2F0ZWRfOwotICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAg
b3RoZXIuYWxsb2NhdGVkXyA9IHRlbXAyICYgMHgxOwotfQotCi12b2lkIFZhbHVlOjpzd2FwKFZh
bHVlJiBvdGhlcikgewotICBzd2FwUGF5bG9hZChvdGhlcik7Ci0gIHN0ZDo6c3dhcChjb21tZW50
c18sIG90aGVyLmNvbW1lbnRzXyk7Ci0gIHN0ZDo6c3dhcChkZWZhdWx0X3ZhbHVlXywgb3RoZXIu
ZGVmYXVsdF92YWx1ZV8pOwotICBzdGQ6OnN3YXAoc3RhcnRfLCBvdGhlci5zdGFydF8pOwotICBz
dGQ6OnN3YXAobGltaXRfLCBvdGhlci5saW1pdF8pOwotfQotCi1WYWx1ZVR5cGUgVmFsdWU6OnR5
cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQotCi1pbnQgVmFsdWU6OmNvbXBhcmUoY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlmICgqdGhpcyA8IG90aGVyKQotICAgIHJldHVybiAt
MTsKLSAgaWYgKCp0aGlzID4gb3RoZXIpCi0gICAgcmV0dXJuIDE7Ci0gIHJldHVybiAwOwotfQot
Ci1ib29sIFZhbHVlOjpvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlu
dCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICBpZiAodHlwZURlbHRhKQotICAg
IHJldHVybiB0eXBlRGVsdGEgPCAwID8gdHJ1ZSA6IGZhbHNlOwotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiBmYWxzZTsKLSAgY2FzZSBpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKLSAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5y
ZWFsXzsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90
aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIGlmICgodmFs
dWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7Ci0gICAg
ICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18pIHJldHVybiB0cnVlOwotICAgICAgZWxzZSByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIHVuc2lnbmVkIG90
aGVyX2xlbjsKLSAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgICBjaGFyIGNvbnN0KiBvdGhl
cl9zdHI7Ci0gICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+
dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAgICBkZWNvZGVQcmVmaXhl
ZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xl
biwgJm90aGVyX3N0cik7Ci0gICAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVu
LCBvdGhlcl9sZW4pOwotICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIs
IG1pbl9sZW4pOwotICAgIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGNvbXAg
PiAwKSByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Ci0g
IH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgaW50IGRl
bHRhID0gaW50KHZhbHVlXy5tYXBfLT5zaXplKCkgLSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgp
KTsKLSAgICBpZiAoZGVsdGEpCi0gICAgICByZXR1cm4gZGVsdGEgPCAwOwotICAgIHJldHVybiAo
KnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1hcF8pOwotICB9Ci0gIGRlZmF1bHQ6Ci0g
ICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJl
YWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsgfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
cj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsg
fQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBvdGhlciA8ICp0aGlzOyB9Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdCB7Ci0gIC8vIGlmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAv
LyBHQ0MgMi45NS4zIHNheXM6Ci0gIC8vIGF0dGVtcHQgdG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1m
aWVsZCBzdHJ1Y3R1cmUgbWVtYmVyIGBKc29uOjpWYWx1ZTo6dHlwZV8nCi0gIC8vIEJlYXRzIG1l
LCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4KLSAgaW50IHRlbXAgPSBvdGhlci50eXBl
XzsKLSAgaWYgKHR5cGVfICE9IHRlbXApCi0gICAgcmV0dXJuIGZhbHNlOwotICBzd2l0Y2ggKHR5
cGVfKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiB0cnVlOwotICBjYXNlIGludFZh
bHVlOgotICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhlci52YWx1ZV8udWlu
dF87Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIu
dmFsdWVfLnJlYWxfOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAg
IGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDAp
KSB7Ci0gICAgICByZXR1cm4gKHZhbHVlXy5zdHJpbmdfID09IG90aGVyLnZhbHVlXy5zdHJpbmdf
KTsKLSAgICB9Ci0gICAgdW5zaWduZWQgdGhpc19sZW47Ci0gICAgdW5zaWduZWQgb3RoZXJfbGVu
OwotICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGNoYXIgY29uc3QqIG90aGVyX3N0cjsK
LSAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8u
c3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5n
KG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLCAmb3Ro
ZXJfc3RyKTsKLSAgICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
ICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90aGVyX3N0ciwgdGhpc19sZW4pOwotICAg
IHJldHVybiBjb21wID09IDA7Ci0gIH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVj
dFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IG90aGVyLnZhbHVlXy5t
YXBfLT5zaXplKCkgJiYKLSAgICAgICAgICAgKCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1
ZV8ubWFwXyk7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0K
LSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
ciE9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
IH0KLQotY29uc3QgY2hhciogVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0IHsKLSAgSlNPTl9BU1NF
UlRfTUVTU0FHRSh0eXBlXyA9PSBzdHJpbmdWYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAi
aW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOwotICBp
ZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuIDA7Ci0gIHVuc2lnbmVkIHRoaXNfbGVuOwot
ICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAg
cmV0dXJuIHRoaXNfc3RyOwotfQotCi1ib29sIFZhbHVlOjpnZXRTdHJpbmcoY2hhciBjb25zdCoq
IHN0ciwgY2hhciBjb25zdCoqIGNlbmQpIGNvbnN0IHsKLSAgaWYgKHR5cGVfICE9IHN0cmluZ1Zh
bHVlKSByZXR1cm4gZmFsc2U7Ci0gIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gZmFs
c2U7Ci0gIHVuc2lnbmVkIGxlbmd0aDsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZsZW5ndGgsIHN0cik7Ci0gICpjZW5kID0g
KnN0ciArIGxlbmd0aDsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjph
c1N0cmluZygpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToK
LSAgICByZXR1cm4gIiI7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAgICBpZiAodmFsdWVf
LnN0cmluZ18gPT0gMCkgcmV0dXJuICIiOwotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIGNo
YXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9j
YXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7Ci0gICAg
cmV0dXJuIHN0ZDo6c3RyaW5nKHRoaXNfc3RyLCB0aGlzX2xlbik7Ci0gIH0KLSAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/ICJ0cnVlIiA6ICJmYWxzZSI7Ci0g
IGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLmludF8pOwot
ICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8udWludF8p
OwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8ucmVh
bF8pOwotICBkZWZhdWx0OgotICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1N0cmluZygpOwotICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgfQotfQotCi0jaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKLUNwcFRMOjpDb25zdFN0cmluZyBWYWx1ZTo6YXNDb25zdFN0cmluZygpIGNvbnN0IHsK
LSAgdW5zaWduZWQgbGVuOwotICBjaGFyIGNvbnN0KiBzdHI7Ci0gIGRlY29kZVByZWZpeGVkU3Ry
aW5nKGFsbG9jYXRlZF8sIHZhbHVlXy5zdHJpbmdfLAotICAgICAgJmxlbiwgJnN0cik7Ci0gIHJl
dHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoc3RyLCBsZW4pOwotfQotI2VuZGlmCi0KLVZhbHVlOjpJ
bnQgVmFsdWU6OmFzSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50
VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdEludCBvdXQg
b2YgSW50IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludCh2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWlu
dFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RVSW50IG91
dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gSW50KHZhbHVlXy51aW50Xyk7Ci0gIGNhc2Ug
cmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8s
IG1pbkludCwgbWF4SW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9m
IEludCByYW5nZSIpOwotICAgIHJldHVybiBJbnQodmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgcmV0dXJuIDA7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHJldHVybiB2
YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92
YWx1ZV8gKQotICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQoKTsK
LSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgfQotfQotCi1WYWx1
ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJ
bnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludCh2YWx1ZV8uaW50Xyk7Ci0g
IGNhc2UgdWludFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJn
ZXN0VUludCBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50
Xyk7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2
YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJs
ZSBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy5yZWFsXyk7Ci0g
IGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAo
IGRlZmF1bHRfdmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8t
PmFzVUludCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiAwdTsKLSAg
fQotfQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OkludDY0IFZhbHVl
Ojphc0ludDY0KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6
Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQg
cmFuZ2UiKTsKLSAgICByZXR1cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKLSAgY2FzZSByZWFsVmFs
dWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50
NjQsIG1heEludDY0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIElu
dDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7Ci0gIGNhc2UgbnVs
bFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4g
dmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAoIGRlZmF1bHRf
dmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzSW50NjQo
KTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMGw7Ci0gIH0KLX0KLQot
VmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50NjQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8p
IHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludDY0KCks
ICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludDY0KHZh
bHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
dWludF8pOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFu
Z2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ImRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
cmVhbF8pOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBib29sZWFu
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICBkZWZhdWx0OgotICAg
ICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHRfdmFsdWVfLT5hc1VJbnQ2NCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiAwdWw7Ci0gIH0KLX0KLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQot
Ci1MYXJnZXN0SW50IFZhbHVlOjphc0xhcmdlc3RJbnQoKSBjb25zdCB7Ci0jaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQotICByZXR1cm4gYXNJbnQoKTsKLSNlbHNlCi0gIHJldHVybiBhc0ludDY0
KCk7Ci0jZW5kaWYKLX0KLQotTGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25z
dCB7Ci0jaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICByZXR1cm4gYXNVSW50KCk7Ci0jZWxz
ZQotICByZXR1cm4gYXNVSW50NjQoKTsKLSNlbmRpZgotfQotCi1kb3VibGUgVmFsdWU6OmFzRG91
YmxlKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVfLmludF8pOwotICBjYXNlIHVpbnRWYWx1
ZToKLSNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8udWludF8pOwotI2Vsc2UgIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBpbnRl
Z2VyVG9Eb3VibGUodmFsdWVfLnVpbnRfKTsKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VT
RV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJu
IHZhbHVlXy5yZWFsXzsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJuIDAuMDsKLSAgY2Fz
ZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMCA6IDAuMDsKLSAg
ZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAgICAgICAgICAgICAg
IHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNEb3VibGUoKTsKLSAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMC4wOwotICB9Ci19Ci0KLWZsb2F0IFZhbHVlOjphc0Zsb2F0KCkg
Y29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWludFZhbHVlOgotI2lm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnVpbnRfKTsKLSNlbHNlICAvLyBpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICByZXR1cm4gaW50ZWdlclRvRG91
YmxlKHZhbHVlXy51aW50Xyk7Ci0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCi0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4odmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJu
IDAuMDsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEu
MGYgOiAwLjBmOwotICBkZWZhdWx0OgotICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzRmxvYXQoKTsKLSAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgIHJldHVybiAwLjBmOwotICB9Ci19Ci0KLWJvb2wgVmFsdWU6OmFzQm9v
bCgpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZh
bHNlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6
IGZhbHNlOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICAvLyBUaGlzIGlzIGtpbmQgb2Ygc3RyYW5n
ZS4gTm90IHJlY29tbWVuZGVkLgotICAgIHJldHVybiAodmFsdWVfLnJlYWxfICE9IDAuMCkgPyB0
cnVlIDogZmFsc2U7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0g
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNCb29sKCk7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLX0KLQotYm9vbCBWYWx1ZTo6aXND
b252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3QgewotICBzd2l0Y2ggKG90aGVyKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAoaXNOdW1lcmljKCkgJiYgYXNEb3VibGUo
KSA9PSAwLjApIHx8Ci0gICAgICAgICAgICh0eXBlXyA9PSBib29sZWFuVmFsdWUgJiYgdmFsdWVf
LmJvb2xfID09IGZhbHNlKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gc3RyaW5nVmFsdWUgJiYg
YXNTdHJpbmcoKSA9PSAiIikgfHwKLSAgICAgICAgICAgKHR5cGVfID09IGFycmF5VmFsdWUgJiYg
dmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gb2JqZWN0
VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICB0eXBlXyA9
PSBudWxsVmFsdWU7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIGlzSW50KCkgfHwKLSAg
ICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWlu
SW50LCBtYXhJbnQpKSB8fAotICAgICAgICAgICB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlw
ZV8gPT0gbnVsbFZhbHVlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gaXNVSW50KCkg
fHwKLSAgICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFs
XywgMCwgbWF4VUludCkpIHx8Ci0gICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBpc051bWVy
aWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9v
bGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAg
ICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09
IHN0cmluZ1ZhbHVlIHx8Ci0gICAgICAgICAgIHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBh
cnJheVZhbHVlOgotICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlIHx8IHR5cGVfID09IG51
bGxWYWx1ZTsKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICByZXR1cm4gdHlwZV8gPT0gb2JqZWN0
VmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICB9Ci0gIEpTT05fQVNTRVJUX1VOUkVBQ0hB
QkxFOwotICByZXR1cm4gZmFsc2U7Ci19Ci0KLS8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotQXJyYXlJbmRleCBWYWx1ZTo6c2l6ZSgpIGNvbnN0IHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgY2FzZSBz
dHJpbmdWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9m
IHRoZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQotICAgIGlmICghdmFsdWVfLm1hcF8tPmVt
cHR5KCkpIHsKLSAgICAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFs
dWVfLm1hcF8tPmVuZCgpOwotICAgICAgLS1pdExhc3Q7Ci0gICAgICByZXR1cm4gKCppdExhc3Qp
LmZpcnN0LmluZGV4KCkgKyAxOwotICAgIH0KLSAgICByZXR1cm4gMDsKLSAgY2FzZSBvYmplY3RW
YWx1ZToKLSAgICByZXR1cm4gQXJyYXlJbmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKLSAgfQot
ICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOwot
fQotCi1ib29sIFZhbHVlOjplbXB0eSgpIGNvbnN0IHsKLSAgaWYgKGlzTnVsbCgpIHx8IGlzQXJy
YXkoKSB8fCBpc09iamVjdCgpKQotICAgIHJldHVybiBzaXplKCkgPT0gMHU7Ci0gIGVsc2UKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0IHsgcmV0
dXJuIGlzTnVsbCgpOyB9Ci0KLXZvaWQgVmFsdWU6OmNsZWFyKCkgewotICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgICAgICAg
ICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1
ZSIpOwotICBzdGFydF8gPSAwOwotICBsaW1pdF8gPSAwOwotICBkZWxldGUgZGVmYXVsdF92YWx1
ZV87Ci0gIGRlZmF1bHRfdmFsdWVfID0gbnVsbHB0cjsKLSAgc3dpdGNoICh0eXBlXykgewotICBj
YXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8tPmNs
ZWFyKCk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLX0KLQotdm9p
ZCBWYWx1ZTo6cmVzaXplKEFycmF5SW5kZXggbmV3U2l6ZSkgewotICBKU09OX0FTU0VSVF9NRVNT
QUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgICAg
ICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzaXplKCk6IHJlcXVpcmVzIGFycmF5VmFs
dWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICAqdGhpcyA9IFZhbHVlKGFycmF5
VmFsdWUpOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIGlmIChuZXdTaXplID09
IDApCi0gICAgY2xlYXIoKTsKLSAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCi0gICAgKCp0
aGlzKVtuZXdTaXplIC0gMV07Ci0gIGVsc2UgewotICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9
IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCkgewotICAgICAgdmFsdWVfLm1hcF8t
PmVyYXNlKGluZGV4KTsKLSAgICB9Ci0gICAgYXNzZXJ0KHNpemUoKSA9PSBuZXdTaXplKTsKLSAg
fQotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgewotICBK
U09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09
IGFycmF5VmFsdWUsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRl
eCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAg
ICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOwotICBDWlN0cmluZyBrZXkoaW5kZXgpOwotICBP
YmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGtleSk7
Ci0gIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0ga2V5KQot
ICAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0KLSAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRl
ZmF1bHRWYWx1ZShrZXksIG51bGxSZWYpOwotICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQs
IGRlZmF1bHRWYWx1ZSk7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLVZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4
KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAoKnRoaXMpW0FycmF5SW5k
ZXgoaW5kZXgpXTsKLX0KLQotY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5cGVfID09
IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAg
aWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVsbFJlZjsKLSAgQ1pTdHJpbmcg
a2V5KGluZGV4KTsKLSAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0
dXJuIG51bGxSZWY7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLWNvbnN0IFZhbHVlJiBW
YWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FH
RSgKLSAgICAgIGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10o
aW50IGluZGV4KSBjb25zdDogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAo
KnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKLX0KLQotdm9pZCBWYWx1ZTo6aW5pdEJhc2ljKFZh
bHVlVHlwZSB2dHlwZSwgYm9vbCBhbGxvY2F0ZWQpIHsKLSAgdHlwZV8gPSB2dHlwZTsKLSAgYWxs
b2NhdGVkXyA9IGFsbG9jYXRlZDsKLSAgY29tbWVudHNfID0gMDsKLSAgc3RhcnRfID0gMDsKLSAg
bGltaXRfID0gMDsKLSAgZGVmYXVsdF92YWx1ZV8gPSBudWxscHRyOwotfQotCi0vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotLy8gQHByZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwuCi0v
LyBAcGFyYW0ga2V5IGlzIG51bGwtdGVybWluYXRlZC4KLVZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJl
ZmVyZW5jZShjb25zdCBjaGFyKiBrZXkpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBK
c29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSgpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOwot
ICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQotICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUp
OwotICBDWlN0cmluZyBhY3R1YWxLZXkoCi0gICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4oa2V5KSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsgLy8gTk9URSEKLSAgT2Jq
ZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxL
ZXkpOwotICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFj
dHVhbEtleSkKLSAgICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gIE9iamVjdFZhbHVlczo6dmFs
dWVfdHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKLSAgaXQgPSB2YWx1ZV8u
bWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOwotICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5z
ZWNvbmQ7Ci0gIHJldHVybiB2YWx1ZTsKLX0KLQotLy8gQHBhcmFtIGtleSBpcyBub3QgbnVsbC10
ZXJtaW5hdGVkLgotVmFsdWUmIFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNoYXIgY29uc3QqIGtl
eSwgY2hhciBjb25zdCogY2VuZCkKLXsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5
cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBKc29u
OjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShrZXksIGVuZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVl
Iik7Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgKnRoaXMgPSBWYWx1ZShvYmplY3RW
YWx1ZSk7Ci0gIENaU3RyaW5nIGFjdHVhbEtleSgKLSAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6OmR1cGxpY2F0ZU9uQ29weSk7Ci0gIE9iamVjdFZh
bHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsK
LSAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxL
ZXkpCi0gICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLQotICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5
cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwgbnVsbFJlZik7Ci0gIGl0ID0gdmFsdWVfLm1hcF8t
Pmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKLSAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25k
OwotICByZXR1cm4gdmFsdWU7Ci19Ci0KLVZhbHVlIFZhbHVlOjpnZXQoQXJyYXlJbmRleCBpbmRl
eCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogdmFs
dWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKLSAgaWYgKCB2YWx1ZSA9PSAmbnVsbFJlZiApCi0gIHsK
LSAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gIH0KLSAgZWxzZQotICB7Ci0gICAgICAg
ICBWYWx1ZSByZXN1bHQgPSAqdmFsdWU7Ci0gICAgICAgICByZXN1bHQuZGVmYXVsdF92YWx1ZV8g
PSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOwotICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
fQotfQotCi1ib29sIFZhbHVlOjppc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gaW5kZXggPCBzaXplKCk7IH0KLQotVmFsdWUgY29uc3QqIFZhbHVlOjpmaW5kKGNo
YXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkgY29uc3QKLXsKLSAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKLSAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1
ZSwKLSAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJl
cyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkg
cmV0dXJuIE5VTEw7Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAgT2JqZWN0VmFsdWVz
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7Ci0gIGlm
IChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHJldHVybiBOVUxMOwotICByZXR1cm4gJigqaXQp
LnNlY29uZDsKLX0KLWNvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBjaGFyKiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJs
ZW4oa2V5KSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5k
OwotfQotVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGNvbnN0JiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmRhdGEoKSwga2V5
LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwot
ICByZXR1cm4gKmZvdW5kOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hh
cioga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleSwga2V5ICsgc3RybGVuKGtl
eSkpOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSkgewotICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsg
a2V5Lmxlbmd0aCgpKTsKLX0KLQotVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IFN0YXRp
Y1N0cmluZyYga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpKTsK
LX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29u
c3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsKLSAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uo
a2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci1WYWx1ZSBjb25zdCYgVmFsdWU6Om9w
ZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIFZhbHVl
IGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci0gIGlm
ICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5kOwotfQotI2VuZGlmCi0K
LVZhbHVlJiBWYWx1ZTo6YXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gKCp0aGlz
KVtzaXplKCldID0gdmFsdWU7IH0KLQotVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXks
IGNoYXIgY29uc3QqIGNlbmQsIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0g
IFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgaWYgKCAhZm91bmQgKQot
ICB7Ci0gICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICB9Ci0gIGVsc2UKLSAgewotICAg
ICAgICAgVmFsdWUgcmVzdWx0ID0gKmZvdW5kOwotICAgICAgICAgcmVzdWx0LmRlZmF1bHRfdmFs
dWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsKLSAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gIH0KLX0KLVZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBWYWx1ZSBjb25zdCYg
ZGVmYXVsdFZhbHVlKSBjb25zdAotewotICByZXR1cm4gZ2V0KGtleSwga2V5ICsgc3RybGVuKGtl
eSksIGRlZmF1bHRWYWx1ZSk7Ci19Ci1WYWx1ZSBWYWx1ZTo6Z2V0KHN0ZDo6c3RyaW5nIGNvbnN0
JiBrZXksIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0gIHJldHVybiBnZXQo
a2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgZGVmYXVsdFZhbHVlKTsKLX0K
LQotCi1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFy
KiBjZW5kLCBWYWx1ZSogcmVtb3ZlZCkKLXsKLSAgaWYgKHR5cGVfICE9IG9iamVjdFZhbHVlKSB7
Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAg
T2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7
Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICAq
cmVtb3ZlZCA9IGl0LT5zZWNvbmQ7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdCk7Ci0gIHJldHVy
biB0cnVlOwotfQotYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgVmFs
dWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSwgcmVtb3ZlZCk7Ci19Ci1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcg
Y29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5
LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgcmVtb3ZlZCk7Ci19Ci1WYWx1ZSBW
YWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgSlNPTl9BU1NFUlRfTUVT
U0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIoKTogcmVxdWlyZXMg
b2JqZWN0VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVs
bFJlZjsKLQotICBWYWx1ZSByZW1vdmVkOyAgLy8gbnVsbAotICByZW1vdmVNZW1iZXIoa2V5LCBr
ZXkgKyBzdHJsZW4oa2V5KSwgJnJlbW92ZWQpOwotICByZXR1cm4gcmVtb3ZlZDsgLy8gc3RpbGwg
bnVsbCBpZiByZW1vdmVNZW1iZXIoKSBkaWQgbm90aGluZwotfQotVmFsdWUgVmFsdWU6OnJlbW92
ZU1lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KQotewotICByZXR1cm4gcmVtb3ZlTWVtYmVy
KGtleS5jX3N0cigpKTsKLX0KLQotYm9vbCBWYWx1ZTo6cmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBp
bmRleCwgVmFsdWUqIHJlbW92ZWQpIHsKLSAgaWYgKHR5cGVfICE9IGFycmF5VmFsdWUpIHsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgQ1pTdHJpbmcga2V5KGluZGV4KTsKLSAgT2JqZWN0VmFs
dWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2
YWx1ZV8ubWFwXy0+ZW5kKCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgKnJlbW92ZWQg
PSBpdC0+c2Vjb25kOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIC8vIHNoaWZ0
IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8gdGhlIHBsYWNlIG9mIHRoZSAicmVtb3ZlZCIKLSAg
Zm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsgaSA8IChvbGRTaXplIC0gMSk7ICsraSl7Ci0gICAg
Q1pTdHJpbmcga2VleShpKTsKLSAgICAoKnZhbHVlXy5tYXBfKVtrZWV5XSA9ICgqdGhpcylbaSAr
IDFdOwotICB9Ci0gIC8vIGVyYXNlIHRoZSBsYXN0IG9uZSAoImxlZnRvdmVyIikKLSAgQ1pTdHJp
bmcga2V5TGFzdChvbGRTaXplIC0gMSk7Ci0gIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXRMYXN0
ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5TGFzdCk7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdExh
c3QpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSBW
YWx1ZTo6Z2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LAotICAgICAgICAgICAgICAg
ICBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7Ci0gIHJldHVybiBnZXQoa2V5LmNf
c3RyKCksIGtleS5lbmRfY19zdHIoKSwgZGVmYXVsdFZhbHVlKTsKLX0KLSNlbmRpZgotCi1ib29s
IFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0
Ci17Ci0gIFZhbHVlIGNvbnN0KiB2YWx1ZSA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgcmV0dXJuIE5V
TEwgIT0gdmFsdWU7Ci19Ci1ib29sIFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXkpIGNv
bnN0Ci17Ci0gIHJldHVybiBpc01lbWJlcihrZXksIGtleSArIHN0cmxlbihrZXkpKTsKLX0KLWJv
b2wgVmFsdWU6OmlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIHJl
dHVybiBpc01lbWJlcihrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKLX0K
LQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1ib29sIFZhbHVlOjppc01lbWJlcihjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3QgewotICByZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3Ry
KCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQotVmFsdWU6Ok1lbWJlcnMgVmFsdWU6
OmdldE1lbWJlck5hbWVzKCkgY29uc3QgewotICBKU09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAg
dHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgImluIEpz
b246OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7
Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7
Ci0gIE1lbWJlcnMgbWVtYmVyczsKLSAgbWVtYmVycy5yZXNlcnZlKHZhbHVlXy5tYXBfLT5zaXpl
KCkpOwotICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJl
Z2luKCk7Ci0gIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFw
Xy0+ZW5kKCk7Ci0gIGZvciAoOyBpdCAhPSBpdEVuZDsgKytpdCkgewotICAgIG1lbWJlcnMucHVz
aF9iYWNrKHN0ZDo6c3RyaW5nKCgqaXQpLmZpcnN0LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKml0KS5maXJzdC5sZW5ndGgoKSkpOwotICB9Ci0gIHJldHVybiBt
ZW1iZXJzOwotfQotLy8KLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gRW51bU1lbWJlck5h
bWVzCi0vLyBWYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkgY29uc3QKLS8vewotLy8gICBpZiAoIHR5
cGVfID09IG9iamVjdFZhbHVlICkKLS8vICAgewotLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06
OmFueSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCi0vLyAgICAgICAgIENwcFRMOjpFbnVtOjpr
ZXlzKCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAot
Ly8gICAgICAgICBNZW1iZXJOYW1lc1RyYW5zZm9ybSgpICkgKTsKLS8vICAgfQotLy8gICByZXR1
cm4gRW51bU1lbWJlck5hbWVzKCk7Ci0vL30KLS8vCi0vLwotLy8gRW51bVZhbHVlcwotLy8gVmFs
dWU6OmVudW1WYWx1ZXMoKSBjb25zdAotLy97Ci0vLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFs
dWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVt
OjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ3BwVEw6OlR5cGU8Y29uc3QgVmFsdWUgJj4oKSApOwotLy8gICByZXR1cm4g
RW51bVZhbHVlcygpOwotLy99Ci0vLwotLy8jIGVuZGlmCi0KLXN0YXRpYyBib29sIElzSW50ZWdy
YWwoZG91YmxlIGQpIHsKLSAgZG91YmxlIGludGVncmFsX3BhcnQ7Ci0gIHJldHVybiBtb2RmKGQs
ICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsgfQotCi1ib29sIFZhbHVlOjppc0Jvb2woKSBj
b25zdCB7IHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFsdWU7IH0KLQotYm9vbCBWYWx1ZTo6aXNJ
bnQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBy
ZXR1cm4gdmFsdWVfLmludF8gPj0gbWluSW50ICYmIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAg
Y2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7
Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYm
IHZhbHVlXy5yZWFsXyA8PSBtYXhJbnQgJiYKLSAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8u
cmVhbF8pOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBWYWx1ZTo6aXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQo
dmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJbnQpOwotICBjYXNlIHVpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJbnQ7Ci0gIGNhc2UgcmVhbFZhbHVlOgot
ICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAm
JgotICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gIGRlZmF1bHQ6Ci0gICAg
YnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFZhbHVlOjppc0ludDY0KCkg
Y29uc3QgewotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsK
LSAgY2FzZSBpbnRWYWx1ZToKLSAgICByZXR1cm4gdHJ1ZTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50NjQobWF4SW50NjQpOwotICBjYXNlIHJlYWxW
YWx1ZToKLSAgICAvLyBOb3RlIHRoYXQgbWF4SW50NjQgKD0gMl42MyAtIDEpIGlzIG5vdCBleGFj
dGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heEludDY0
KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCi0gICAgLy8gcmVxdWly
ZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICByZXR1
cm4gdmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2NCkgJiYKLSAgICAgICAgICAgdmFsdWVf
LnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJiBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0g
IGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAotICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzVUludDY0KCkgY29uc3QgewotI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1
ZToKLSAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
cmV0dXJuIHRydWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50
NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8v
IGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQu
IFRoZXJlZm9yZSB3ZQotICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxl
c3MgdGhhbiB0aGUgbGltaXQuCi0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVl
Xy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCi0gICAgICAgICAgIElzSW50ZWdyYWwodmFs
dWVfLnJlYWxfKTsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotI2VuZGlmIC8vIEpTT05f
SEFTX0lOVDY0Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgp
IGNvbnN0IHsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgp
IHx8IGlzVUludDY0KCk7Ci0jZWxzZQotICByZXR1cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKLSNl
bmRpZgotfQotCi1ib29sIFZhbHVlOjppc0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09
IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7IH0KLQotYm9vbCBWYWx1ZTo6aXNOdW1lcmljKCkg
Y29uc3QgeyByZXR1cm4gaXNJbnRlZ3JhbCgpIHx8IGlzRG91YmxlKCk7IH0KLQotYm9vbCBWYWx1
ZTo6aXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBzdHJpbmdWYWx1ZTsgfQotCi1i
b29sIFZhbHVlOjppc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsg
fQotCi1ib29sIFZhbHVlOjppc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IG9iamVj
dFZhbHVlOyB9Ci0KLXZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwg
c2l6ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKLSAgaWYgKCFjb21tZW50
c18pCi0gICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNl
bWVudF07Ci0gIGlmICgobGVuID4gMCkgJiYgKGNvbW1lbnRbbGVuLTFdID09ICdcbicpKSB7Ci0g
ICAgLy8gQWx3YXlzIGRpc2NhcmQgdHJhaWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9u
LgotICAgIGxlbiAtPSAxOwotICB9Ci0gIGNvbW1lbnRzX1twbGFjZW1lbnRdLnNldENvbW1lbnQo
Y29tbWVudCwgbGVuKTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBj
b21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgewotICBzZXRDb21tZW50KGNvbW1l
bnQsIHN0cmxlbihjb21tZW50KSwgcGxhY2VtZW50KTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29t
bWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIHsKLSAgc2V0Q29tbWVudChjb21tZW50LmNfc3RyKCksIGNvbW1lbnQubGVuZ3RoKCksIHBs
YWNlbWVudCk7Ci19Ci0KLWJvb2wgVmFsdWU6Omhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQpIGNvbnN0IHsKLSAgcmV0dXJuIGNvbW1lbnRzXyAhPSAwICYmIGNvbW1lbnRzX1tw
bGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjpnZXRDb21t
ZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7Ci0gIGlmIChoYXNDb21tZW50
KHBsYWNlbWVudCkpCi0gICAgcmV0dXJuIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfOwot
ICByZXR1cm4gIiI7Ci19Ci0KLXZvaWQgVmFsdWU6OnNldE9mZnNldFN0YXJ0KHNpemVfdCBzdGFy
dCkgeyBzdGFydF8gPSBzdGFydDsgfQotCi12b2lkIFZhbHVlOjpzZXRPZmZzZXRMaW1pdChzaXpl
X3QgbGltaXQpIHsgbGltaXRfID0gbGltaXQ7IH0KLQotc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRT
dGFydCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0XzsgfQotCi1zaXplX3QgVmFsdWU6OmdldE9mZnNl
dExpbWl0KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjp0
b1N0eWxlZFN0cmluZygpIGNvbnN0IHsKLSAgU3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgcmV0dXJu
IHdyaXRlci53cml0ZSgqdGhpcyk7Ci19Ci0KLVZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6
YmVnaW4oKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgot
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBj
b25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1
bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Ci19Ci0KLVZh
bHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6ZW5kKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVf
KSB7Ci0gIGNhc2UgYXJyYXlWYWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBpZiAodmFs
dWVfLm1hcF8pCi0gICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgp
KTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICByZXR1cm4gY29u
c3RfaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjpiZWdpbigpIHsKLSAg
c3dpdGNoICh0eXBlXykgewotICBjYXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgaWYgKHZhbHVlXy5tYXBfKQotICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBf
LT5iZWdpbigpKTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICBy
ZXR1cm4gaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjplbmQoKSB7Ci0g
IHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVl
OgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBpdGVyYXRvcih2YWx1ZV8ubWFw
Xy0+ZW5kKCkpOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJl
dHVybiBpdGVyYXRvcigpOwotfQotCi0vLyBjbGFzcyBQYXRoQXJndW1lbnQKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpIDoga2V5XygpLCBpbmRleF8oKSwga2lu
ZF8oa2luZE5vbmUpIHt9Ci0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KEFycmF5SW5kZXgg
aW5kZXgpCi0gICAgOiBrZXlfKCksIGluZGV4XyhpbmRleCksIGtpbmRfKGtpbmRJbmRleCkge30K
LQotUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KQotICAgIDoga2V5
XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotUGF0aEFyZ3VtZW50OjpQYXRo
QXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkKLSAgICA6IGtleV8oa2V5LmNfc3RyKCkp
LCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotLy8gY2xhc3MgUGF0aAotLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLVBhdGg6OlBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCi0gICAgICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIs
Ci0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMsCi0gICAgICAgICAgIGNvbnN0IFBh
dGhBcmd1bWVudCYgYTQsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUpIHsKLSAg
SW5BcmdzIGluOwotICBpbi5wdXNoX2JhY2soJmExKTsKLSAgaW4ucHVzaF9iYWNrKCZhMik7Ci0g
IGluLnB1c2hfYmFjaygmYTMpOwotICBpbi5wdXNoX2JhY2soJmE0KTsKLSAgaW4ucHVzaF9iYWNr
KCZhNSk7Ci0gIG1ha2VQYXRoKHBhdGgsIGluKTsKLX0KLQotdm9pZCBQYXRoOjptYWtlUGF0aChj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5BcmdzJiBpbikgewotICBjb25zdCBjaGFy
KiBjdXJyZW50ID0gcGF0aC5jX3N0cigpOwotICBjb25zdCBjaGFyKiBlbmQgPSBjdXJyZW50ICsg
cGF0aC5sZW5ndGgoKTsKLSAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciBpdEluQXJnID0gaW4uYmVn
aW4oKTsKLSAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7Ci0gICAgaWYgKCpjdXJyZW50ID09ICdb
JykgewotICAgICAgKytjdXJyZW50OwotICAgICAgaWYgKCpjdXJyZW50ID09ICclJykKLSAgICAg
ICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCk7Ci0gICAgICBlbHNlIHsKLSAgICAgICAgQXJyYXlJbmRleCBpbmRleCA9IDA7Ci0gICAgICAg
IGZvciAoOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0g
JzknOyArK2N1cnJlbnQpCi0gICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRl
eCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgIGFyZ3NfLnB1c2hfYmFjayhpbmRleCk7Ci0gICAg
ICB9Ci0gICAgICBpZiAoY3VycmVudCA9PSBlbmQgfHwgKmN1cnJlbnQrKyAhPSAnXScpCi0gICAg
ICAgIGludmFsaWRQYXRoKHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSk7Ci0gICAg
fSBlbHNlIGlmICgqY3VycmVudCA9PSAnJScpIHsKLSAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBp
biwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kS2V5KTsKLSAgICAgICsrY3VycmVudDsKLSAg
ICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICcuJykgewotICAgICAgKytjdXJyZW50OwotICAgIH0g
ZWxzZSB7Ci0gICAgICBjb25zdCBjaGFyKiBiZWdpbk5hbWUgPSBjdXJyZW50OwotICAgICAgd2hp
bGUgKGN1cnJlbnQgIT0gZW5kICYmICFzdHJjaHIoIlsuIiwgKmN1cnJlbnQpKQotICAgICAgICAr
K2N1cnJlbnQ7Ci0gICAgICBhcmdzXy5wdXNoX2JhY2soc3RkOjpzdHJpbmcoYmVnaW5OYW1lLCBj
dXJyZW50KSk7Ci0gICAgfQotICB9Ci19Ci0KLXZvaWQgUGF0aDo6YWRkUGF0aEluQXJnKGNvbnN0
IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
QXJncyYgaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9y
JiBpdEluQXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtp
bmQpIHsKLSAgaWYgKGl0SW5BcmcgPT0gaW4uZW5kKCkpIHsKLSAgICAvLyBFcnJvcjogbWlzc2lu
ZyBhcmd1bWVudCAlZAotICB9IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQpIHsK
LSAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUKLSAgfSBlbHNlIHsKLSAgICBhcmdzXy5w
dXNoX2JhY2soKippdEluQXJnKTsKLSAgfQotfQotCi12b2lkIFBhdGg6OmludmFsaWRQYXRoKGNv
bnN0IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywgaW50IC8qbG9jYXRpb24qLykgewotICAvLyBFcnJv
cjogaW52YWxpZCBwYXRoLgotfQotCi1jb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBW
YWx1ZSYgcm9vdCkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3Ig
KEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5k
KCk7ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAo
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUt
PmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKSB7Ci0gICAgICAg
IC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBh
dCBwb3NpdGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhf
XSk7Ci0gICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7
Ci0gICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IHVuYWJs
ZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikK
LSAgICAgIH0KLSAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgIGlmIChu
b2RlID09ICZWYWx1ZTo6bnVsbFJlZikgewotICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJl
c29sdmUgcGF0aCAob2JqZWN0IGhhcyBubyBtZW1iZXIgbmFtZWQgJycgYXQKLSAgICAgICAgLy8g
cG9zaXRpb24uLi4pCi0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiAqbm9kZTsKLX0KLQot
VmFsdWUgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3IgKEFy
Z3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7
ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAoYXJn
LmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlz
QXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKQotICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOwotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0g
ICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAg
ICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0g
ICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICBpZiAobm9kZSA9PSAmVmFs
dWU6Om51bGxSZWYpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgfQotICB9Ci0g
IHJldHVybiAqbm9kZTsKLX0KLQotVmFsdWUmIFBhdGg6Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0
IHsKLSAgVmFsdWUqIG5vZGUgPSAmcm9vdDsKLSAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBp
dCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7Ci0gICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7Ci0gICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1l
bnQ6OmtpbmRJbmRleCkgewotICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkpIHsKLSAgICAgICAg
Ly8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgotICAgICAgfQot
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0gICAgfSBlbHNlIGlmIChhcmcu
a2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlzT2Jq
ZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3Np
dGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAg
IH0KLSAgfQotICByZXR1cm4gKm5vZGU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI3By
YWdtYSB3YXJuaW5nIChwb3ApCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50
IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0v
LyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+
Ci0jaW5jbHVkZSAianNvbl90b29sLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8aW9tYW5pcD4KLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5j
bHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNs
dWRlIDxjYXNzZXJ0PgotI2luY2x1ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotCi0j
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTIwMCAmJiBfTVNDX1ZFUiA8IDE4
MDAgLy8gQmV0d2VlbiBWQysrIDYuMCBhbmQgVkMrKyAxMS4wCi0jaW5jbHVkZSA8ZmxvYXQuaD4K
LSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQotI2VsaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5l
ZChfX1NWUjQpIC8vU29sYXJpcwotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPGll
ZWVmcC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChf
QUlYKQotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPG1hdGguaD4KLSNkZWZpbmUg
aXNmaW5pdGUgZmluaXRlCi0jZW5kaWYKLSNlbGlmIGRlZmluZWQoX19ocHV4KQotI2lmICFkZWZp
bmVkKGlzZmluaXRlKQotI2lmIGRlZmluZWQoX19pYTY0KSAmJiAhZGVmaW5lZChmaW5pdGUpCi0j
ZGVmaW5lIGlzZmluaXRlKHgpICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9hdCkgPyBcCi0gICAg
ICAgICAgICAgICAgICAgICBfSXNmaW5pdGVmKHgpIDogX0lzRmluaXRlKHgpKSkKLSNlbHNlCi0j
aW5jbHVkZSA8bWF0aC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VuZGlm
Ci0jZWxzZQotI2luY2x1ZGUgPGNtYXRoPgotI2lmICEoZGVmaW5lZChfX1FOWE5UT19fKSkgLy8g
UU5YIGFscmVhZHkgZGVmaW5lcyBpc2Zpbml0ZQotI2RlZmluZSBpc2Zpbml0ZSBzdGQ6OmlzZmlu
aXRlCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNpZiAhZGVmaW5l
ZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAx
NTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNl
bGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNl
bmRpZgotI2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQot
I2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAot
I2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19C
T1JMQU5EQ19fKSAgCi0jaW5jbHVkZSA8ZmxvYXQuaD4KLSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0
ZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAotLy8gRGlzYWJsZSB3YXJuaW5n
IGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUg
OiA0OTk2KQotI2VuZGlmCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotI2lmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkK
LXR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gU3RyZWFtV3JpdGVyUHRyOwot
I2Vsc2UKLXR5cGVkZWYgc3RkOjphdXRvX3B0cjxTdHJlYW1Xcml0ZXI+ICAgU3RyZWFtV3JpdGVy
UHRyOwotI2VuZGlmCi0KLXN0YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcihjb25z
dCBjaGFyKiBzdHIpIHsKLSAgd2hpbGUgKCpzdHIpIHsKLSAgICBpZiAoaXNDb250cm9sQ2hhcmFj
dGVyKCooc3RyKyspKSkKLSAgICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsK
LX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hhcmFjdGVyMChjb25zdCBjaGFyKiBz
dHIsIHVuc2lnbmVkIGxlbikgewotICBjaGFyIGNvbnN0KiBlbmQgPSBzdHIgKyBsZW47Ci0gIHdo
aWxlIChlbmQgIT0gc3RyKSB7Ci0gICAgaWYgKGlzQ29udHJvbENoYXJhY3Rlcigqc3RyKSB8fCAw
PT0qc3RyKQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKytzdHI7Ci0gIH0KLSAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUpIHsK
LSAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgY2hhciogY3VycmVudCA9IGJ1ZmZlciAr
IHNpemVvZihidWZmZXIpOwotICBpZiAodmFsdWUgPT0gVmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsK
LSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMSwg
Y3VycmVudCk7Ci0gICAgKi0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwgY3VycmVudCk7Ci0gICAg
Ki0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJ
bnQodmFsdWUpLCBjdXJyZW50KTsKLSAgfQotICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIpOwot
ICByZXR1cm4gY3VycmVudDsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0
VUludCB2YWx1ZSkgewotICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICBjaGFyKiBjdXJy
ZW50ID0gYnVmZmVyICsgc2l6ZW9mKGJ1ZmZlcik7Ci0gIHVpbnRUb1N0cmluZyh2YWx1ZSwgY3Vy
cmVudCk7Ci0gIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7Ci0gIHJldHVybiBjdXJyZW50Owot
fQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhJbnQgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1
ZSkpOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpIHsKLSAgcmV0
dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpKTsKLX0KLQotI2VuZGlmIC8vICMg
aWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhk
b3VibGUgdmFsdWUsIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywgdW5zaWduZWQgaW50IHByZWNpc2lv
bikgewotICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGlzIG1vcmUgdGhhbiBsYXJnZSBlbm91
Z2ggdG8gc3RvcmUgdGhlIDE2IGRpZ2l0cyBvZgotICAvLyBwcmVjaXNpb24gcmVxdWVzdGVkIGJl
bG93LgotICBjaGFyIGJ1ZmZlclszMl07Ci0gIGludCBsZW4gPSAtMTsKLQotICBjaGFyIGZvcm1h
dFN0cmluZ1s2XTsKLSAgc3ByaW50Zihmb3JtYXRTdHJpbmcsICIlJS4lZGciLCBwcmVjaXNpb24p
OwotCi0gIC8vIFByaW50IGludG8gdGhlIGJ1ZmZlci4gV2UgbmVlZCBub3QgcmVxdWVzdCB0aGUg
YWx0ZXJuYXRpdmUgcmVwcmVzZW50YXRpb24KLSAgLy8gdGhhdCBhbHdheXMgaGFzIGEgZGVjaW1h
bCBwb2ludCBiZWNhdXNlIEpTT04gZG9lc24ndCBkaXN0aW5naXNoIHRoZQotICAvLyBjb25jZXB0
cyBvZiByZWFscyBhbmQgaW50ZWdlcnMuCi0gIGlmIChpc2Zpbml0ZSh2YWx1ZSkpIHsKLSAgICBs
ZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCBmb3JtYXRTdHJpbmcsIHZhbHVl
KTsKLSAgfSBlbHNlIHsKLSAgICAvLyBJRUVFIHN0YW5kYXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1
ZXMgd2lsbCBub3QgY29tcGFyZSB0byB0aGVtc2VsdmVzCi0gICAgaWYgKHZhbHVlICE9IHZhbHVl
KSB7Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVj
aWFsRmxvYXRzID8gIk5hTiIgOiAibnVsbCIpOwotICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7
Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFs
RmxvYXRzID8gIi1JbmZpbml0eSIgOiAiLTFlKzk5OTkiKTsKLSAgICB9IGVsc2UgewotICAgICAg
bGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/
ICJJbmZpbml0eSIgOiAiMWUrOTk5OSIpOwotICAgIH0KLSAgICAvLyBGb3IgdGhvc2UsIHdlIGRv
IG5vdCBuZWVkIHRvIGNhbGwgZml4TnVtTG9jLCBidXQgaXQgaXMgZmFzdC4KLSAgfQotICBhc3Nl
cnQobGVuID49IDApOwotICBmaXhOdW1lcmljTG9jYWxlKGJ1ZmZlciwgYnVmZmVyICsgbGVuKTsK
LSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWUsIGZhbHNlLCAxNyk7IH0KLQotc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVl
IiA6ICJmYWxzZSI7IH0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBj
aGFyKiB2YWx1ZSkgewotICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICByZXR1cm4gIiI7Ci0gIC8v
IE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgotICBpZiAoc3RycGJyayh2YWx1ZSwg
IlwiXFxcYlxmXG5cclx0IikgPT0gTlVMTCAmJgotICAgICAgIWNvbnRhaW5zQ29udHJvbENoYXJh
Y3Rlcih2YWx1ZSkpCi0gICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJcIiIpICsgdmFsdWUgKyAiXCIi
OwotICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFy
YWN0ZXJzLgotICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpzdHJpbmcgaXMgbm90IGVmZmljaWVudCwg
YnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCi0gIC8vIChOb3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJl
ICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGluZyB0aGVtLikKLSAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBtYXhzaXplID0KLSAgICAgIHN0cmxlbih2YWx1ZSkgKiAyICsgMzsgLy8gYWxs
ZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNl
cnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKLSAgcmVzdWx0ICs9ICJc
IiI7Ci0gIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyAqYyAhPSAwOyArK2MpIHsKLSAgICBz
d2l0Y2ggKCpjKSB7Ci0gICAgY2FzZSAnXCInOgotICAgICAgcmVzdWx0ICs9ICJcXFwiIjsKLSAg
ICAgIGJyZWFrOwotICAgIGNhc2UgJ1xcJzoKLSAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAg
ICBicmVhazsKLSAgICBjYXNlICdcYic6Ci0gICAgICByZXN1bHQgKz0gIlxcYiI7Ci0gICAgICBi
cmVhazsKLSAgICBjYXNlICdcZic6Ci0gICAgICByZXN1bHQgKz0gIlxcZiI7Ci0gICAgICBicmVh
azsKLSAgICBjYXNlICdcbic6Ci0gICAgICByZXN1bHQgKz0gIlxcbiI7Ci0gICAgICBicmVhazsK
LSAgICBjYXNlICdccic6Ci0gICAgICByZXN1bHQgKz0gIlxcciI7Ci0gICAgICBicmVhazsKLSAg
ICBjYXNlICdcdCc6Ci0gICAgICByZXN1bHQgKz0gIlxcdCI7Ci0gICAgICBicmVhazsKLSAgICAv
LyBjYXNlICcvJzoKLSAgICAvLyBFdmVuIHRob3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwg
ZXNjYXBlIGluIEpTT04sIGEgYmFyZQotICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkg
c2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCi0gICAgLy8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1
bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4KLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2Nh
cGluZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBz
ZXF1ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGli
aWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJp
bmcuCi0gICAgZGVmYXVsdDoKLSAgICAgIGlmIChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB7Ci0g
ICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8PCAiXFx1IiA8PCBz
dGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQotICAgICAgICAg
ICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwotICAgICAgICByZXN1
bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ICs9ICpjOwot
ICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCArPSAiXCIiOwotICBy
ZXR1cm4gcmVzdWx0OwotfQotCi0vLyBodHRwczovL2dpdGh1Yi5jb20vdXBjYXN0ZS91cGNhc3Rl
L2Jsb2IvbWFzdGVyL3NyYy91cGNvcmUvc3JjL2NzdHJpbmcvc3RybnBicmsuY3BwCi1zdGF0aWMg
Y2hhciBjb25zdCogc3RybnBicmsoY2hhciBjb25zdCogcywgY2hhciBjb25zdCogYWNjZXB0LCBz
aXplX3QgbikgewotICBhc3NlcnQoKHMgfHwgIW4pICYmIGFjY2VwdCk7Ci0KLSAgY2hhciBjb25z
dCogY29uc3QgZW5kID0gcyArIG47Ci0gIGZvciAoY2hhciBjb25zdCogY3VyID0gczsgY3VyIDwg
ZW5kOyArK2N1cikgewotICAgIGludCBjb25zdCBjID0gKmN1cjsKLSAgICBmb3IgKGNoYXIgY29u
c3QqIGEgPSBhY2NlcHQ7ICphOyArK2EpIHsKLSAgICAgIGlmICgqYSA9PSBjKSB7Ci0gICAgICAg
IHJldHVybiBjdXI7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiBOVUxMOwotfQotc3Rh
dGljIHN0ZDo6c3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJpbmdOKGNvbnN0IGNoYXIqIHZhbHVlLCB1
bnNpZ25lZCBsZW5ndGgpIHsKLSAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgcmV0dXJuICIiOwot
ICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4KLSAgaWYgKHN0cm5wYnJrKHZh
bHVlLCAiXCJcXFxiXGZcblxyXHQiLCBsZW5ndGgpID09IE5VTEwgJiYKLSAgICAgICFjb250YWlu
c0NvbnRyb2xDaGFyYWN0ZXIwKHZhbHVlLCBsZW5ndGgpKQotICAgIHJldHVybiBzdGQ6OnN0cmlu
ZygiXCIiKSArIHZhbHVlICsgIlwiIjsKLSAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBl
c2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KLSAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3Ry
aW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgotICAvLyAoTm90
ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcg
dGhlbS4pCi0gIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9Ci0gICAgICBsZW5ndGgg
KiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7
Ci0gIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MK
LSAgcmVzdWx0ICs9ICJcIiI7Ci0gIGNoYXIgY29uc3QqIGVuZCA9IHZhbHVlICsgbGVuZ3RoOwot
ICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1ZTsgYyAhPSBlbmQ7ICsrYykgewotICAgIHN3aXRj
aCAoKmMpIHsKLSAgICBjYXNlICdcIic6Ci0gICAgICByZXN1bHQgKz0gIlxcXCIiOwotICAgICAg
YnJlYWs7Ci0gICAgY2FzZSAnXFwnOgotICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKLSAgICAgIGJy
ZWFrOwotICAgIGNhc2UgJ1xiJzoKLSAgICAgIHJlc3VsdCArPSAiXFxiIjsKLSAgICAgIGJyZWFr
OwotICAgIGNhc2UgJ1xmJzoKLSAgICAgIHJlc3VsdCArPSAiXFxmIjsKLSAgICAgIGJyZWFrOwot
ICAgIGNhc2UgJ1xuJzoKLSAgICAgIHJlc3VsdCArPSAiXFxuIjsKLSAgICAgIGJyZWFrOwotICAg
IGNhc2UgJ1xyJzoKLSAgICAgIHJlc3VsdCArPSAiXFxyIjsKLSAgICAgIGJyZWFrOwotICAgIGNh
c2UgJ1x0JzoKLSAgICAgIHJlc3VsdCArPSAiXFx0IjsKLSAgICAgIGJyZWFrOwotICAgIC8vIGNh
c2UgJy8nOgotICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2Nh
cGUgaW4gSlNPTiwgYSBiYXJlCi0gICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUg
bm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KLSAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVy
c3RhbmRpbmcgc29tZXRoaW5nLikKLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGlu
ZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBzZXF1
ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxp
dHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcu
Ci0gICAgZGVmYXVsdDoKLSAgICAgIGlmICgoaXNDb250cm9sQ2hhcmFjdGVyKCpjKSkgfHwgKCpj
ID09IDApKSB7Ci0gICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8
PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAn
KQotICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwot
ICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVz
dWx0ICs9ICpjOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCAr
PSAiXCIiOwotICByZXR1cm4gcmVzdWx0OwotfQotCi0vLyBDbGFzcyBXcml0ZXIKLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwotV3JpdGVyOjp+V3JpdGVyKCkge30KLQotLy8gQ2xhc3MgRmFzdFdyaXRlcgotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLUZhc3RXcml0ZXI6OkZhc3RXcml0ZXIoKQotICAgIDogeWFtbENvbXBhdGlibGl0
eUVuYWJsZWRfKGZhbHNlKSwgZHJvcE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwKLSAgICAgIG9t
aXRFbmRpbmdMaW5lRmVlZF8oZmFsc2UpIHt9Ci0KLXZvaWQgRmFzdFdyaXRlcjo6ZW5hYmxlWUFN
TENvbXBhdGliaWxpdHkoKSB7IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA9IHRydWU7IH0KLQot
dm9pZCBGYXN0V3JpdGVyOjpkcm9wTnVsbFBsYWNlaG9sZGVycygpIHsgZHJvcE51bGxQbGFjZWhv
bGRlcnNfID0gdHJ1ZTsgfQotCi12b2lkIEZhc3RXcml0ZXI6Om9taXRFbmRpbmdMaW5lRmVlZCgp
IHsgb21pdEVuZGluZ0xpbmVGZWVkXyA9IHRydWU7IH0KLQotc3RkOjpzdHJpbmcgRmFzdFdyaXRl
cjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9jdW1lbnRfID0gIiI7Ci0gIHdyaXRl
VmFsdWUocm9vdCk7Ci0gIGlmICghb21pdEVuZGluZ0xpbmVGZWVkXykKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgcmV0dXJuIGRvY3VtZW50XzsKLX0KLQotdm9pZCBGYXN0V3JpdGVyOjp3cml0
ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgewot
ICBjYXNlIG51bGxWYWx1ZToKLSAgICBpZiAoIWRyb3BOdWxsUGxhY2Vob2xkZXJzXykKLSAgICAg
IGRvY3VtZW50XyArPSAibnVsbCI7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
ZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2
YWx1ZS5hc0xhcmdlc3RVSW50KCkpOwotICAgIGJyZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKTsKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9y
IHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVu
ZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChv
aykgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGVuZC1zdHIpKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToK
LSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZTogewotICAgIGRvY3VtZW50XyArPSAnWyc7Ci0gICAgaW50
IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNp
emU7ICsraW5kZXgpIHsKLSAgICAgIGlmIChpbmRleCA+IDApCi0gICAgICAgIGRvY3VtZW50XyAr
PSAnLCc7Ci0gICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7Ci0gICAgfQotICAgIGRvY3Vt
ZW50XyArPSAnXSc7Ci0gIH0gYnJlYWs7Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6IHsKLSAgICBWYWx1
ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOwotICAgIGRvY3VtZW50
XyArPSAneyc7Ci0gICAgZm9yIChWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJz
LmJlZ2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7Ci0gICAgICAgICArK2l0KSB7Ci0gICAgICBj
b25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKLSAgICAgIGlmIChpdCAhPSBtZW1iZXJzLmJl
Z2luKCkpCi0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICBkb2N1bWVudF8gKz0gdmFs
dWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1l
Lmxlbmd0aCgpKSk7Ci0gICAgICBkb2N1bWVudF8gKz0geWFtbENvbXBhdGlibGl0eUVuYWJsZWRf
ID8gIjogIiA6ICI6IjsKLSAgICAgIHdyaXRlVmFsdWUodmFsdWVbbmFtZV0pOwotICAgIH0KLSAg
ICBkb2N1bWVudF8gKz0gJ30nOwotICB9IGJyZWFrOwotICB9Ci19Ci0KLS8vIENsYXNzIFN0eWxl
ZFdyaXRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKCkKLSAg
ICA6IHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudFNpemVfKDMpLCBhZGRDaGlsZFZhbHVlc18oKSB7
fQotCi1zdGQ6OnN0cmluZyBTdHlsZWRXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7
Ci0gIGRvY3VtZW50XyA9ICIiOwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgaW5kZW50
U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKLSAgd3JpdGVW
YWx1ZShyb290KTsKLSAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7Ci0g
IGRvY3VtZW50XyArPSAiXG4iOwotICByZXR1cm4gZG9jdW1lbnRfOwotfQotCi12b2lkIFN0eWxl
ZFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgc3dpdGNoICh2YWx1
ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKCJudWxsIik7Ci0g
ICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzRG91YmxlKCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewot
ICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25z
dCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNo
VmFsdWUoIiIpOwotICAgIGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgYXJyYXlWYWx1ZToKLSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwot
ICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5n
ZXRNZW1iZXJOYW1lcygpKTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZh
bHVlKCJ7fSIpOwotICAgIGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAg
ICBpbmRlbnQoKTsKLSAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsKLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUgPSAqaXQ7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07
Ci0gICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3
cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKLSAgICAg
ICAgZG9jdW1lbnRfICs9ICIgOiAiOwotICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwot
ICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXplID09IDAp
Ci0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlNdWx0aUxp
bmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsK
LSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAgICBib29s
IGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZh
bHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGls
ZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICB3
cml0ZUluZGVudCgpOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgewotICAgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICAgIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgfQotICAgICAgdW5pbmRlbnQo
KTsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOwotICAgIH0gZWxzZSAvLyBvdXRwdXQgb24g
YSBzaW5nbGUgbGluZQotICAgIHsKLSAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09
IHNpemUpOwotICAgICAgZG9jdW1lbnRfICs9ICJbICI7Ci0gICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChpbmRleCA+IDAp
Ci0gICAgICAgICAgZG9jdW1lbnRfICs9ICIsICI7Ci0gICAgICAgIGRvY3VtZW50XyArPSBjaGls
ZFZhbHVlc19baW5kZXhdOwotICAgICAgfQotICAgICAgZG9jdW1lbnRfICs9ICIgXSI7Ci0gICAg
fQotICB9Ci19Ci0KLWJvb2wgU3R5bGVkV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxp
bmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwot
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5k
ZXgpIHsKLSAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBp
c011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVj
dCgpKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsK
LSAgfQotICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBs
aW5lIGxlbmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRk
Q2hpbGRWYWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEp
ICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGlu
ZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1
ZVtpbmRleF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAg
IHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxk
VmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBm
YWxzZTsKLSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmln
aHRNYXJnaW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBTdHlsZWRX
cml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKLSAgaWYgKGFkZENo
aWxkVmFsdWVzXykKLSAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKLSAgZWxzZQot
ICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlSW5k
ZW50KCkgewotICBpZiAoIWRvY3VtZW50Xy5lbXB0eSgpKSB7Ci0gICAgY2hhciBsYXN0ID0gZG9j
dW1lbnRfW2RvY3VtZW50Xy5sZW5ndGgoKSAtIDFdOwotICAgIGlmIChsYXN0ID09ICcgJykgLy8g
YWxyZWFkeSBpbmRlbnRlZAotICAgICAgcmV0dXJuOwotICAgIGlmIChsYXN0ICE9ICdcbicpIC8v
IENvbW1lbnRzIG1heSBhZGQgbmV3LWxpbmUKLSAgICAgIGRvY3VtZW50XyArPSAnXG4nOwotICB9
Ci0gIGRvY3VtZW50XyArPSBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICB3cml0ZUluZGVu
dCgpOwotICBkb2N1bWVudF8gKz0gdmFsdWU7Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjppbmRl
bnQoKSB7IGluZGVudFN0cmluZ18gKz0gc3RkOjpzdHJpbmcoaW5kZW50U2l6ZV8sICcgJyk7IH0K
LQotdm9pZCBTdHlsZWRXcml0ZXI6OnVuaW5kZW50KCkgewotICBhc3NlcnQoaW50KGluZGVudFN0
cmluZ18uc2l6ZSgpKSA+PSBpbmRlbnRTaXplXyk7Ci0gIGluZGVudFN0cmluZ18ucmVzaXplKGlu
ZGVudFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50U2l6ZV8pOwotfQotCi12b2lkIFN0eWxlZFdyaXRl
cjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKCFy
b290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGRvY3VtZW50
XyArPSAiXG4iOwotICB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVu
dCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1l
bnQuZW5kKCkpIHsKLSAgICBkb2N1bWVudF8gKz0gKml0ZXI7Ci0gICAgaWYgKCppdGVyID09ICdc
bicgJiYKLSAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcv
JykpCi0gICAgICB3cml0ZUluZGVudCgpOwotICAgICsraXRlcjsKLSAgfQotCi0gIC8vIENvbW1l
bnRzIGFyZSBzdHJpcHBlZCBvZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJlCi0g
IGRvY3VtZW50XyArPSAiXG4iOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKHJvb3QuaGFz
Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKLSAgICBkb2N1bWVudF8gKz0gIiAiICsg
cm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIGRvY3VtZW50XyArPSAiXG4iOwotICAgIGRv
Y3VtZW50XyArPSByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgfQotfQotCi1ib29sIFN0eWxlZFdyaXRlcjo6aGFzQ29tbWVudEZvclZhbHVl
KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChjb21tZW50
QmVmb3JlKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVM
aW5lKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOwotfQotCi0v
LyBDbGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1TdHlsZWRTdHJlYW1X
cml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbikKLSAgICA6
IGRvY3VtZW50XyhOVUxMKSwgcmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50YXRpb25fKGluZGVudGF0
aW9uKSwKLSAgICAgIGFkZENoaWxkVmFsdWVzXygpIHt9Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9j
dW1lbnRfID0gJm91dDsKLSAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7Ci0gIGluZGVudFN0cmlu
Z18gPSAiIjsKLSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
cm9vdCk7Ci0gIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBpbmRlbnRlZF8gPSB0
cnVlOwotICB3cml0ZVZhbHVlKHJvb3QpOwotICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShyb290KTsKLSAgKmRvY3VtZW50XyA8PCAiXG4iOwotICBkb2N1bWVudF8gPSBOVUxMOyAv
LyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4KLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7Ci0gIHN3aXRjaCAodmFsdWUu
dHlwZSgpKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHB1c2hWYWx1ZSgibnVsbCIpOwotICAg
IGJyZWFrOwotICBjYXNlIGludFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzTGFyZ2VzdEludCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdWludFZhbHVlOgotICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0RvdWJsZSgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAg
ICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPwotICAgIGNoYXIgY29uc3Qq
IHN0cjsKLSAgICBjaGFyIGNvbnN0KiBlbmQ7Ci0gICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmlu
Zygmc3RyLCAmZW5kKTsKLSAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5n
TihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOwotICAgIGVsc2UgcHVzaFZh
bHVlKCIiKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOwotICAgIGJyZWFrOwotICBjYXNl
IGFycmF5VmFsdWU6Ci0gICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKLSAgICBicmVhazsKLSAg
Y2FzZSBvYmplY3RWYWx1ZTogewotICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0
TWVtYmVyTmFtZXMoKSk7Ci0gICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKLSAgICAgIHB1c2hWYWx1
ZSgie30iKTsKLSAgICBlbHNlIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOwotICAgICAg
aW5kZW50KCk7Ci0gICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJl
Z2luKCk7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1l
ID0gKml0OwotICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOwot
ICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7Ci0gICAgICAg
ICpkb2N1bWVudF8gPDwgIiA6ICI7Ci0gICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0g
ICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKLSAgICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFs
dWUmIHZhbHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXpl
ID09IDApCi0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlN
dWx0aUxpbmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxp
bmUpIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAg
ICBib29sIGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNp
Z25lZCBpbmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBj
aGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgICAgICAgICBpbmRlbnRlZF8g
PSB0cnVlOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgaW5k
ZW50ZWRfID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkg
ewotICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICpkb2N1bWVudF8gPDwgIiwi
OwotICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsK
LSAgICAgIH0KLSAgICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsK
LSAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3Nl
cnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpkb2N1bWVudF8gPDwgIlsg
IjsKLSAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKLSAgICAgICAgaWYgKGluZGV4ID4gMCkKLSAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7
Ci0gICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAg
ICAgICpkb2N1bWVudF8gPDwgIiBdIjsKLSAgICB9Ci0gIH0KLX0KLQotYm9vbCBTdHlsZWRTdHJl
YW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBpbnQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0
TWFyZ2luXzsKLSAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkgewotICAgIGNvbnN0IFZhbHVl
JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZh
bHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDApOwotICB9Ci0gIGlmICghaXNNdWx0aUxp
bmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCi0gIHsKLSAgICBj
aGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKLSAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOwot
ICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypu
ICsgJyBdJwotICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7
Ci0gICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVlW2luZGV4XSkpIHsKLSAgICAgICAg
aXNNdWx0aUxpbmUgPSB0cnVlOwotICAgICAgfQotICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRl
eF0pOwotICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgo
KSk7Ci0gICAgfQotICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOwotICAgIGlzTXVsdGlMaW5l
ID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87Ci0gIH0KLSAgcmV0
dXJuIGlzTXVsdGlMaW5lOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVl
KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQotICAg
IGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBlbHNlCi0gICAgKmRvY3VtZW50XyA8
PCB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgewot
ICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3Ry
aW5nCi0gIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBi
dXQKLSAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBz
b21lIHNhdmVkIHN0YXRlLgotICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCi0gICpk
b2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBp
ZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKLSAg
aW5kZW50ZWRfID0gZmFsc2U7Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQo
KSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9Ci0KLXZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGlu
ZGVudGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdf
LnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYg
KCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGlmICgh
aW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0
ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1lbnQu
ZW5kKCkpIHsKLSAgICAqZG9jdW1lbnRfIDw8ICppdGVyOwotICAgIGlmICgqaXRlciA9PSAnXG4n
ICYmCi0gICAgICAgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycp
KQotICAgICAgLy8gd3JpdGVJbmRlbnQoKTsgIC8vIHdvdWxkIGluY2x1ZGUgbmV3bGluZQotICAg
ICAgKmRvY3VtZW50XyA8PCBpbmRlbnRTdHJpbmdfOwotICAgICsraXRlcjsKLSAgfQotICBpbmRl
bnRlZF8gPSBmYWxzZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KSB7Ci0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCi0gICAgKmRvY3VtZW50XyA8PCAnICcg
PDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgKmRv
Y3VtZW50XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgfQotICBpbmRlbnRl
ZF8gPSBmYWxzZTsKLX0KLQotYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JW
YWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25T
YW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKLX0K
LQotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ci0KLS8vLyBTY29wZWQgZW51bXMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgQysrMTEuCi1zdHJ1
Y3QgQ29tbWVudFN0eWxlIHsKLSAgLy8vIERlY2lkZSB3aGV0aGVyIHRvIHdyaXRlIGNvbW1lbnRz
LgotICBlbnVtIEVudW0gewotICAgIE5vbmUsICAvLy88IERyb3AgYWxsIGNvbW1lbnRzLgotICAg
IE1vc3QsICAvLy88IFJlY292ZXIgb2RkIGJlaGF2aW9yIG9mIHByZXZpb3VzIHZlcnNpb25zIChu
b3QgaW1wbGVtZW50ZWQgeWV0KS4KLSAgICBBbGwgIC8vLzwgS2VlcCBhbGwgY29tbWVudHMuCi0g
IH07Ci19OwotCi1zdHJ1Y3QgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyCi17Ci0gIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAotICAgICAgc3RkOjpzdHJpbmcg
Y29uc3QmIGluZGVudGF0aW9uLAotICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAotICAgICAg
c3RkOjpzdHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAotICAgICAgc3RkOjpzdHJpbmcgY29uc3Qm
IG51bGxTeW1ib2wsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1i
b2wsCi0gICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCi0gICAgICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uKTsKLSAgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNv
dXQpOwotcHJpdmF0ZToKLSAgdm9pZCB3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0g
IHZvaWQgd3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0gIGJvb2wgaXNNdWx0
aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCBwdXNoVmFsdWUoc3RkOjpzdHJp
bmcgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUluZGVudCgpOwotICB2b2lkIHdyaXRlV2l0
aEluZGVudChzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUpOwotICB2b2lkIGluZGVudCgpOwotICB2
b2lkIHVuaW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29u
c3QmIHJvb3QpOwotICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVl
IGNvbnN0JiByb290KTsKLSAgc3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZh
bHVlJiB2YWx1ZSk7Ci0KLSAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRW
YWx1ZXM7Ci0KLSAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
bl87Ci0gIENvbW1lbnRTdHlsZTo6RW51bSBjc187Ci0gIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9s
XzsKLSAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbF87Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVG
ZWVkU3ltYm9sXzsKLSAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOwotICBib29sIGluZGVudGVk
XyA6IDE7Ci0gIGJvb2wgdXNlU3BlY2lhbEZsb2F0c18gOiAxOwotICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uXzsKLX07Ci1CdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXIoCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgaW5kZW50YXRpb24sCi0gICAgICBDb21t
ZW50U3R5bGU6OkVudW0gY3MsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2ws
Ci0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbnVsbFN5bWJvbCwKLSAgICAgIHN0ZDo6c3RyaW5n
IGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5bWJvbCwKLSAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0
cywKLSAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24pCi0gIDogcmlnaHRNYXJnaW5fKDc0KQot
ICAsIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbikKLSAgLCBjc18oY3MpCi0gICwgY29sb25TeW1i
b2xfKGNvbG9uU3ltYm9sKQotICAsIG51bGxTeW1ib2xfKG51bGxTeW1ib2wpCi0gICwgZW5kaW5n
TGluZUZlZWRTeW1ib2xfKGVuZGluZ0xpbmVGZWVkU3ltYm9sKQotICAsIGFkZENoaWxkVmFsdWVz
XyhmYWxzZSkKLSAgLCBpbmRlbnRlZF8oZmFsc2UpCi0gICwgdXNlU3BlY2lhbEZsb2F0c18odXNl
U3BlY2lhbEZsb2F0cykKLSAgLCBwcmVjaXNpb25fKHByZWNpc2lvbikKLXsKLX0KLWludCBCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVh
bSogc291dCkKLXsKLSAgc291dF8gPSBzb3V0OwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgaW5kZW50U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShyb290KTsKLSAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0g
IGluZGVudGVkXyA9IHRydWU7Ci0gIHdyaXRlVmFsdWUocm9vdCk7Ci0gIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKHJvb3QpOwotICAqc291dF8gPDwgZW5kaW5nTGluZUZlZWRTeW1i
b2xfOwotICBzb3V0XyA9IE5VTEw7Ci0gIHJldHVybiAwOwotfQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgc3dpdGNoICh2
YWx1ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKG51bGxTeW1i
b2xfKTsKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOwotICAgIGJyZWFrOwotICBjYXNlIHVpbnRW
YWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkp
KTsKLSAgICBicmVhazsKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9T
dHJpbmcodmFsdWUuYXNEb3VibGUoKSwgdXNlU3BlY2lhbEZsb2F0c18sIHByZWNpc2lvbl8pKTsK
LSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgaXMg
cG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNo
YXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQp
OwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNoVmFsdWUoIiIpOwotICAg
IGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRv
U3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZToK
LSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwotICBjYXNlIG9iamVjdFZh
bHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygp
KTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZhbHVlKCJ7fSIpOwotICAg
IGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAgICBpbmRlbnQoKTsKLSAg
ICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAg
IGZvciAoOzspIHsKLSAgICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG5hbWUgPSAqaXQ7Ci0gICAg
ICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07Ci0gICAgICAgIHdyaXRl
Q29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3cml0ZVdpdGhJbmRlbnQo
dmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihu
YW1lLmxlbmd0aCgpKSkpOwotICAgICAgICAqc291dF8gPDwgY29sb25TeW1ib2xfOwotICAgICAg
ICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVu
ZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgKnNvdXRfIDw8ICIs
IjsKLSAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
Ci0gICAgICB9Ci0gICAgICB1bmluZGVudCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7
Ci0gICAgfQotICB9IGJyZWFrOwotICB9Ci19Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OndyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgdW5zaWduZWQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgaWYgKHNpemUgPT0gMCkKLSAgICBwdXNoVmFsdWUoIltdIik7
Ci0gIGVsc2UgewotICAgIGJvb2wgaXNNdWx0aUxpbmUgPSAoY3NfID09IENvbW1lbnRTdHlsZTo6
QWxsKSB8fCBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzTXVsdGlMaW5lKSB7Ci0g
ICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKLSAgICAgIGluZGVudCgpOwotICAgICAgYm9vbCBo
YXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOwotICAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOwotICAgICAgZm9yICg7OykgewotICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1
ZSA9IHZhbHVlW2luZGV4XTsKLSAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgIGlmIChoYXNDaGlsZFZhbHVlKQotICAgICAgICAgIHdyaXRlV2l0aElu
ZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgaWYg
KCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsK
LSAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGluZGVudGVkXyA9
IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKLSAgICAg
ICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAqc291dF8gPDwgIiwiOwotICAgICAgICB3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgIH0KLSAg
ICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKLSAgICB9IGVsc2Ug
Ly8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3NlcnQoY2hpbGRWYWx1
ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpzb3V0XyA8PCAiWyI7Ci0gICAgICBpZiAoIWlu
ZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOwotICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgICBpZiAoaW5kZXggPiAw
KQotICAgICAgICAgICpzb3V0XyA8PCAiLCAiOwotICAgICAgICAqc291dF8gPDwgY2hpbGRWYWx1
ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpICpz
b3V0XyA8PCAiICI7Ci0gICAgICAqc291dF8gPDwgIl0iOwotICAgIH0KLSAgfQotfQotCi1ib29s
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFs
dWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxpbmUgPSBz
aXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwotICBmb3Ig
KGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsK
LSAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBpc011bHRp
TGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKLSAgfQot
ICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxl
bmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRkQ2hpbGRW
YWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsg
Ly8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRl
eF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHdyaXRl
VmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVz
X1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJn
aW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6cHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAo
YWRkQ2hpbGRWYWx1ZXNfKQotICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBl
bHNlCi0gICAgKnNvdXRfIDw8IHZhbHVlOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUluZGVudCgpIHsKLSAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQg
dGhlIHNvLWZhci13cml0dGVuIHN0cmluZwotICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBh
cmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0Ci0gIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRv
IHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KLSAgLy8gVGhlIGNhbGxlciBj
aGVja3MgaW5kZW50ZWRfLgotCi0gIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpIHsKLSAgICAv
LyBJbiB0aGlzIGNhc2UsIGRyb3AgbmV3bGluZXMgdG9vLgotICAgICpzb3V0XyA8PCAnXG4nIDw8
IGluZGVudFN0cmluZ187Ci0gIH0KLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAoIWluZGVu
dGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKnNvdXRfIDw8IHZhbHVlOwotICBpbmRlbnRlZF8gPSBm
YWxzZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRl
bnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsgfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVu
dGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNp
emUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25zdCYgcm9vdCkgewotICBp
ZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJuOwotICBpZiAoIXJvb3QuaGFzQ29t
bWVudChjb21tZW50QmVmb3JlKSkKLSAgICByZXR1cm47Ci0KLSAgaWYgKCFpbmRlbnRlZF8pIHdy
aXRlSW5kZW50KCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50ID0gcm9vdC5nZXRDb21t
ZW50KGNvbW1lbnRCZWZvcmUpOwotICBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9
IGNvbW1lbnQuYmVnaW4oKTsKLSAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgewotICAg
ICpzb3V0XyA8PCAqaXRlcjsKLSAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgotICAgICAgIChpdGVy
ICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKLSAgICAgIC8vIHdyaXRl
SW5kZW50KCk7ICAvLyB3b3VsZCB3cml0ZSBleHRyYSBuZXdsaW5lCi0gICAgICAqc291dF8gPDwg
aW5kZW50U3RyaW5nXzsKLSAgICArK2l0ZXI7Ci0gIH0KLSAgaW5kZW50ZWRfID0gZmFsc2U7Ci19
Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KSB7Ci0gIGlmIChjc18gPT0gQ29tbWVudFN0eWxl
OjpOb25lKSByZXR1cm47Ci0gIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1l
TGluZSkpCi0gICAgKnNvdXRfIDw8ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKTsKLQotICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKLSAg
ICB3cml0ZUluZGVudCgpOwotICAgICpzb3V0XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFm
dGVyKTsKLSAgfQotfQotCi0vLyBzdGF0aWMKLWJvb2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVl
Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEFmdGVyKTsKLX0KLQotLy8vLy8vLy8vLy8vLy8vCi0vLyBTdHJlYW1Xcml0ZXIKLQotU3Ry
ZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIoKQotICAgIDogc291dF8oTlVMTCkKLXsKLX0KLVN0cmVh
bVdyaXRlcjo6flN0cmVhbVdyaXRlcigpCi17Ci19Ci1TdHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5G
YWN0b3J5KCkKLXt9Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjpTdHJlYW1Xcml0ZXJCdWlsZGVyKCkK
LXsKLSAgc2V0RGVmYXVsdHMoJnNldHRpbmdzXyk7Ci19Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjp+
U3RyZWFtV3JpdGVyQnVpbGRlcigpCi17fQotU3RyZWFtV3JpdGVyKiBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjpuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdAotewotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
biA9IHNldHRpbmdzX1siaW5kZW50YXRpb24iXS5hc1N0cmluZygpOwotICBzdGQ6OnN0cmluZyBj
c19zdHIgPSBzZXR0aW5nc19bImNvbW1lbnRTdHlsZSJdLmFzU3RyaW5nKCk7Ci0gIGJvb2wgZXlj
ID0gc2V0dGluZ3NfWyJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9vbCgpOwotICBib29s
IGRucCA9IHNldHRpbmdzX1siZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKLSAgYm9v
bCB1c2YgPSBzZXR0aW5nc19bInVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsgCi0gIHVuc2ln
bmVkIGludCBwcmUgPSBzZXR0aW5nc19bInByZWNpc2lvbiJdLmFzVUludCgpOwotICBDb21tZW50
U3R5bGU6OkVudW0gY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKLSAgaWYgKGNzX3N0ciA9PSAiQWxs
IikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7Ci0gIH0gZWxzZSBpZiAoY3Nfc3RyID09
ICJOb25lIikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpOb25lOwotICB9IGVsc2UgewotICAg
IHRocm93UnVudGltZUVycm9yKCJjb21tZW50U3R5bGUgbXVzdCBiZSAnQWxsJyBvciAnTm9uZSci
KTsKLSAgfQotICBzdGQ6OnN0cmluZyBjb2xvblN5bWJvbCA9ICIgOiAiOwotICBpZiAoZXljKSB7
Ci0gICAgY29sb25TeW1ib2wgPSAiOiAiOwotICB9IGVsc2UgaWYgKGluZGVudGF0aW9uLmVtcHR5
KCkpIHsKLSAgICBjb2xvblN5bWJvbCA9ICI6IjsKLSAgfQotICBzdGQ6OnN0cmluZyBudWxsU3lt
Ym9sID0gIm51bGwiOwotICBpZiAoZG5wKSB7Ci0gICAgbnVsbFN5bWJvbCA9ICIiOwotICB9Ci0g
IGlmIChwcmUgPiAxNykgcHJlID0gMTc7Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3lt
Ym9sID0gIiI7Ci0gIHJldHVybiBuZXcgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCi0gICAgICBp
bmRlbnRhdGlvbiwgY3MsCi0gICAgICBjb2xvblN5bWJvbCwgbnVsbFN5bWJvbCwgZW5kaW5nTGlu
ZUZlZWRTeW1ib2wsIHVzZiwgcHJlKTsKLX0KLXN0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5
cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMpCi17Ci0gIHZhbGlkX2tleXMtPmNs
ZWFyKCk7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiaW5kZW50YXRpb24iKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJjb21tZW50U3R5bGUiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSIpOwotICB2YWxpZF9rZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vo
b2xkZXJzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgidXNlU3BlY2lhbEZsb2F0cyIpOwotICB2
YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvbiIpOwotfQotYm9vbCBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFs
dWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAv
LyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYg
PSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZh
bGlkV3JpdGVyS2V5cygmdmFsaWRfa2V5cyk7Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0
aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAgc2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5
ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5l
bmQoKSkgewotICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAg
cmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19Ci1WYWx1ZSYgU3RyZWFtV3JpdGVyQnVpbGRlcjo6
b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpCi17Ci0gIHJldHVybiBzZXR0aW5nc19ba2V5XTsK
LX0KLS8vIHN0YXRpYwotdm9pZCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29u
OjpWYWx1ZSogc2V0dGluZ3MpCi17Ci0gIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRz
XQotICAoKnNldHRpbmdzKVsiY29tbWVudFN0eWxlIl0gPSAiQWxsIjsKLSAgKCpzZXR0aW5ncylb
ImluZGVudGF0aW9uIl0gPSAiXHQiOwotICAoKnNldHRpbmdzKVsiZW5hYmxlWUFNTENvbXBhdGli
aWxpdHkiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiZHJvcE51bGxQbGFjZWhvbGRlcnMiXSA9
IGZhbHNlOwotICAoKnNldHRpbmdzKVsidXNlU3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7Ci0gICgq
c2V0dGluZ3MpWyJwcmVjaXNpb24iXSA9IDE3OwotICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJE
ZWZhdWx0c10KLX0KLQotc3RkOjpzdHJpbmcgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0
b3J5IGNvbnN0JiBidWlsZGVyLCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBzdGQ6Om9zdHJpbmdz
dHJlYW0gc291dDsKLSAgU3RyZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0
cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZShyb290LCAmc291dCk7Ci0gIHJldHVybiBz
b3V0LnN0cigpOwotfQotCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBz
b3V0LCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBTdHJlYW1Xcml0ZXJCdWlsZGVyIGJ1aWxkZXI7
Ci0gIFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIo
KSk7Ci0gIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQpOwotICByZXR1cm4gc291dDsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVu
dnJfYXBpX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM5NmU2NzcyMmYz
Njk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vLz09PT09PT09
PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNkZWZpbmUgVlJf
QVBJX0VYUE9SVCAxCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaXZyY2xpZW50Y29y
ZS5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRl
ICJobWRlcnJvcnNfcHVibGljLmgiCi0jaW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgi
Ci0jaW5jbHVkZSA8bXV0ZXg+Ci0KLXVzaW5nIHZyOjpFVlJJbml0RXJyb3I7Ci11c2luZyB2cjo6
SVZSU3lzdGVtOwotdXNpbmcgdnI6OklWUkNsaWVudENvcmU7Ci11c2luZyB2cjo6VlJJbml0RXJy
b3JfTm9uZTsKLQotbmFtZXNwYWNlIHZyCi17Ci0KLXN0YXRpYyB2b2lkICpnX3BWUk1vZHVsZSA9
IE5VTEw7Ci1zdGF0aWMgSVZSQ2xpZW50Q29yZSAqZ19wSG1kU3lzdGVtID0gTlVMTDsKLXN0YXRp
YyBzdGQ6OnJlY3Vyc2l2ZV9tdXRleCBnX211dGV4U3lzdGVtOwotCi0KLXR5cGVkZWYgdm9pZCog
KCpWUkNsaWVudENvcmVGYWN0b3J5Rm4pKGNvbnN0IGNoYXIgKnBJbnRlcmZhY2VOYW1lLCBpbnQg
KnBSZXR1cm5Db2RlKTsKLQotc3RhdGljIHVpbnQzMl90IGdfblZSVG9rZW4gPSAwOwotCi11aW50
MzJfdCBWUl9HZXRJbml0VG9rZW4oKQotewotICAgICAgIHJldHVybiBnX25WUlRva2VuOwotfQot
Ci1FVlJJbml0RXJyb3IgVlJfTG9hZEhtZFN5c3RlbUludGVybmFsKCk7Ci12b2lkIENsZWFudXBJ
bnRlcm5hbEludGVyZmFjZXMoKTsKLQotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlw
ZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAgIEVW
UkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKLSAgICAgICBpZiAo
IGVyciA9PSB2cjo6VlJJbml0RXJyb3JfTm9uZSApCi0gICAgICAgewotICAgICAgICAgICAgICBl
cnIgPSBnX3BIbWRTeXN0ZW0tPkluaXQoIGVBcHBsaWNhdGlvblR5cGUsIHBTdGFydHVwSW5mbyAp
OwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAgICAgICAgICAgICpwZUVy
cm9yID0gZXJyOwotCi0gICAgICAgaWYgKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCi0gICAg
ICAgewotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOwotICAg
ICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBnX3BWUk1vZHVs
ZSA9IE5VTEw7Ci0KLSAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgfQotCi0gICAgICAg
cmV0dXJuICsrZ19uVlJUb2tlbjsKLX0KLQotVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExU
WVBFIFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlv
blR5cGUgZUFwcGxpY2F0aW9uVHlwZSApOwotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwoIEVW
UkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25U
eXBlICkKLXsKLSAgICAgICByZXR1cm4gVlJfSW5pdEludGVybmFsMiggcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSwgbnVsbHB0ciApOwotfQotCi12b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKQot
ewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19t
dXRleFN5c3RlbSApOwotICAgICAgIAotICAgICAgIGlmICggZ19wSG1kU3lzdGVtICkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGdfcEhtZFN5c3RlbS0+Q2xlYW51cCgpOwotICAgICAgICAgICAg
ICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgIH0KLSAgICAgICBpZiAoIGdfcFZSTW9kdWxl
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxl
ICk7Ci0gICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKLSAgICAgICB9Ci0KLSNpZiAh
ZGVmaW5lZCggVlJfQVBJX1BVQkxJQyApCi0gICAgICAgQ2xlYW51cEludGVybmFsSW50ZXJmYWNl
cygpOwotI2VuZGlmCi0KLSAgICAgICArK2dfblZSVG9rZW47Ci19Ci0KLUVWUkluaXRFcnJvciBW
Ul9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNSdW50aW1l
UGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAgYm9vbCBiUmVhZFBhdGhSZWdp
c3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAm
c0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwotICAgICAgIGlmKCAhYlJlYWRQ
YXRoUmVnaXN0cnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIC8vIGZp
Z3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAg
ICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAg
aWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCi0gICAgICAgewotICAgICAg
ICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQ7
Ci0gICAgICAgfQotCi0gICAgICAgLy8gQmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNl
bGVjdCBkZWJ1ZyB2cy4gcmVsZWFzZSB5ZXQgd2UnbGwganVzdAotICAgICAgIC8vIHVzZSBkZWJ1
ZyBpZiBpdCdzIHRoZXJlCi0jaWYgZGVmaW5lZCggTElOVVg2NCApCi0gICAgICAgc3RkOjpzdHJp
bmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iLCBQTEFUU1VCRElS
ICk7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1
bnRpbWVQYXRoLCAiYmluIiApOwotI2VuZGlmCi0gICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5
KCBzVGVzdFBhdGggKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdDsKLSAgICAgICB9Ci0KLSNpZiBkZWZpbmVk
KCBXSU42NCApCi0gICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQYXRoX0pvaW4oIHNUZXN0
UGF0aCwgInZyY2xpZW50X3g2NCIgRFlOQU1JQ19MSUJfRVhUICk7Ci0jZWxzZQotICAgICAgIHN0
ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBhdGgsICJ2cmNsaWVudCIgRFlO
QU1JQ19MSUJfRVhUICk7Ci0jZW5kaWYKLQotICAgICAgIC8vIG9ubHkgbG9vayBpbiB0aGUgb3Zl
cnJpZGUKLSAgICAgICB2b2lkICpwTW9kID0gU2hhcmVkTGliX0xvYWQoIHNETExQYXRoLmNfc3Ry
KCkgKTsKLSAgICAgICAvLyBub3RoaW5nIG1vcmUgdG8gZG8gaWYgd2UgY2FuJ3QgbG9hZCB0aGUg
RExMCi0gICAgICAgaWYoICFwTW9kICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiB2
cjo6VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kOwotICAgICAgIH0KLQotICAg
ICAgIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiBmbkZhY3RvcnkgPSAoIFZSQ2xpZW50Q29yZUZhY3Rv
cnlGbiApKCBTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIHBNb2QsICJWUkNsaWVudENvcmVGYWN0b3J5
IiApICk7Ci0gICAgICAgaWYoICFmbkZhY3RvcnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
U2hhcmVkTGliX1VubG9hZCggcE1vZCApOwotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIGludCBuUmV0
dXJuQ29kZSA9IDA7Ci0gICAgICAgZ19wSG1kU3lzdGVtID0gc3RhdGljX2Nhc3Q8IElWUkNsaWVu
dENvcmUgKiA+ICggZm5GYWN0b3J5KCB2cjo6SVZSQ2xpZW50Q29yZV9WZXJzaW9uLCAmblJldHVy
bkNvZGUgKSApOwotICAgICAgIGlmKCAhZ19wSG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHZy
OjpWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAg
IGdfcFZSTW9kdWxlID0gcE1vZDsKLSAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLX0K
LQotCi12b2lkICpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKGNvbnN0IGNoYXIgKnBjaEludGVyZmFj
ZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvcikKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAg
IGlmICghZ19wSG1kU3lzdGVtKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKHBlRXJyb3Ip
Ci0gICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IHZyOjpWUkluaXRFcnJvcl9Jbml0X05v
dEluaXRpYWxpemVkOwotICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFj
ZVZlcnNpb24sIHBlRXJyb3IpOwotfQotCi1ib29sIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24pCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAg
ICBpZiAoIWdfcEhtZFN5c3RlbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5Jc0ludGVyZmFjZVZl
cnNpb25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKSA9PSBWUkluaXRFcnJvcl9Ob25lOwotfQot
Ci1ib29sIFZSX0lzSG1kUHJlc2VudCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6
cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19w
SG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkg
aW5pdGlhbGl6ZWQsIGp1c3QgY2FsbCB0aHJvdWdoCi0gICAgICAgICAgICAgIHJldHVybiBnX3BI
bWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3
b3JrCi0gICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50
ZXJuYWwoKTsKLSAgICAgICAgICAgICAgaWYoIGVyciAhPSBWUkluaXRFcnJvcl9Ob25lICkKLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgICBib29sIGJI
YXNIbWQgPSBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLQotICAgICAgICAgICAgICBn
X3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BW
Uk1vZHVsZSApOwotICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7Ci0KLSAgICAgICAg
ICAgICAgcmV0dXJuIGJIYXNIbWQ7Ci0gICAgICAgfQotfQotCi0vKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCi1ib29sIFZSX0lzUnVudGltZUlu
c3RhbGxlZCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4
PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIE9w
ZW5WUiBpcyBvYnZpb3VzbHkgaW5zdGFsbGVkCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBvdGhlcndp
c2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKLSAgICAgICAgICAgICAgc3RkOjpzdHJp
bmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7Ci0KLSAgICAgICAgICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgICAgICAgICBpZiggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZvciB2
cmNsaWVudC5kbGwKLSAgICAgICAgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBh
Y3R1YWxseSBleGlzdHMuCi0gICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1
bnRpbWVQYXRoICkgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyB0aGUgaW5zdGFs
bGF0aW9uIG1heSBiZSBjb3JydXB0IGluIHNvbWUgd2F5LCBidXQgaXQgY2VydGFpbmx5IGxvb2tz
IGluc3RhbGxlZAotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICB9Ci19Ci0KLQot
LyoqIFJldHVybnMgd2hlcmUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotY29uc3Qg
Y2hhciAqVlJfUnVudGltZVBhdGgoKQotewotICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRv
IGRvIGEgYml0IG1vcmUgd29yawotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBzUnVudGltZVBh
dGg7Ci0gICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgIGlmICggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgIH0KLQotICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUg
d2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAgICAgLy8gc2VlIGlmIHRo
ZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAgaWYgKCAhUGF0aF9Jc0Rp
cmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNSdW50aW1lUGF0aC5jX3N0cigp
OwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBzeW1ib2wgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3Iu
ICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3Ig
ZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOwotCi0gICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCi0gICAg
ICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldElERm9yVlJJbml0RXJyb3IoIGVycm9y
ICk7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gR2V0SURGb3JWUkluaXRFcnJv
ciggZXJyb3IgKTsKLX0KLQotCi0vKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lv
biBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzRW5n
bGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOwotCi0g
ICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQotICAgICAgICAgICAgICByZXR1cm4gZ19wSG1kU3lz
dGVtLT5HZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVycm9yICk7Ci0gICAgICAgZWxzZQot
ICAgICAgICAgICAgICByZXR1cm4gR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciAp
OwotfQotCi0KLVZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9HZXRTdHJp
bmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlcnJvciApOwotCi0vKiogUmV0dXJucyB0
aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFy
ICpWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggRVZSSW5pdEVycm9yIGVycm9yICkKLXsKLSAgICAg
ICByZXR1cm4gVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggZXJyb3IgKTsK
LX0KLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY4YmQyM2Q0MGVlNDlmNDA4MGY3MWIyNjYwMzNkNjRkYTFjZmVmYzMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI2luY2x1ZGUgImRpcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgInN0cnRvb2xz
X3B1YmxpYy5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLQotI2luY2x1ZGUgPGVy
cm5vLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZmRlZiBfV0lOMzIKLSNpbmNsdWRlICJ3
aW5kb3dzLmgiCi0jZWxzZQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+
Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNlbmRpZgot
Ci0jaWYgZGVmaW5lZCggT1NYICkKLSNpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+Ci0jZW5kaWYK
LQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiB1dGlsaXR5IGZ1bmN0aW9u
IHRvIGNyZWF0ZSBkaXJzICYgc3ViZGlycwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBC
Q3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICkKLXsKLSAgICAg
ICAvLyBEb2VzIGl0IGFscmVhZHkgZXhpc3Q/Ci0gICAgICAgaWYgKCBQYXRoX0lzRGlyZWN0b3J5
KCBwY2hQYXRoICkgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgIC8vIGNv
cHkgdGhlIHBhdGggaW50byBzb21ldGhpbmcgd2UgY2FuIG11bmdlCi0gICAgICAgaW50IGxlbiA9
IChpbnQpc3RybGVuKCBwY2hQYXRoICk7Ci0gICAgICAgY2hhciAqcGF0aCA9IChjaGFyICopbWFs
bG9jKCBsZW4gKyAxICk7Ci0gICAgICAgc3RyY3B5KCBwYXRoLCBwY2hQYXRoICk7Ci0KLSAgICAg
ICAvLyBXYWxrIGJhY2t3YXJkcyB0byBmaXJzdCBub24tZXhpc3RpbmcgZGlyIHRoYXQgd2UgZmlu
ZAotICAgICAgIGNoYXIgKnMgPSBwYXRoICsgbGVuIC0gMTsKLQotICAgICAgIGNvbnN0IGNoYXIg
c2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0gICAgICAgd2hpbGUgKCBzID4gcGF0aCApCi0gICAg
ICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAgICAgICAgYm9v
bCBiRXhpc3RzID0gUGF0aF9Jc0RpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAg
ICAgKnMgPSBzbGFzaDsKLQotICAgICAgICAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3M7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLS1zOwotICAgICAgIH0KLQotICAgICAg
IC8vIGFuZCB0aGVuIG1vdmUgZm9yd2FyZHMgZnJvbSB0aGVyZQotCi0gICAgICAgd2hpbGUgKCAq
cyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAg
ICAgICAgQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAgICAgKnMg
PSBzbGFzaDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBzKys7Ci0gICAgICAgfQot
Ci0gICAgICAgYm9vbCBiUmV0VmFsID0gQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAg
IGZyZWUoIHBhdGggKTsKLSAgICAgICByZXR1cm4gYlJldFZhbDsKLX0KLQotCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBDcmVhdGVzIHRoZSBkaXJlY3RvcnksIHJldHVybmlu
ZyB0cnVlIGlmIGl0IGlzIGNyZWF0ZWQsIG9yIGlmIGl0IGFscmVhZHkgZXhpc3RlZAotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQ
YXRoICkKLXsKLSNpZmRlZiBXSU4zMgotICAgICAgIHN0ZDo6d3N0cmluZyB3UGF0aCA9IFVURjh0
bzE2KCBwY2hQYXRoICk7Ci0gICAgICAgaWYgKCA6OkNyZWF0ZURpcmVjdG9yeVcoIHdQYXRoLmNf
c3RyKCksIE5VTEwgKSApCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgaWYg
KCA6OkdldExhc3RFcnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTICkKLSAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIGlu
dCBpID0gbWtkaXIoIHBjaFBhdGgsIFNfSVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTyApOwotICAg
ICAgIGlmICggaSA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgaWYg
KCBlcnJubyA9PSBFRVhJU1QgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjA0OGI0MWI3ODE0ZmRlMDcyNzc2NGFlNzk0ZWRlOGUwZGZkNGU2MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0ZGludC5oPgot
I2luY2x1ZGUgPHN0cmluZz4KLQotCi0jaWYgIWRlZmluZWQoX1dJTjMyKQotI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotCi1leHRlcm4gYm9v
bCBCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci1leHRl
cm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci0KLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2
YXJ0b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWQxNmQ5
Zjg1NjI2ZmNhMDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAg
QEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgot
Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotCi0jdW5kZWYgR2V0
RW52aXJvbm1lbnRWYXJpYWJsZQotI3VuZGVmIFNldEVudmlyb25tZW50VmFyaWFibGUKLSNlbmRp
ZgotCi0KLXN0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBj
aFZhck5hbWUgKQotewotI2lmIGRlZmluZWQoX1dJTjMyKQotICAgICAgIGNoYXIgcmNoVmFsdWVb
MzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52IHZhciBvbiBXaW5kb3dzCi0gICAgICAgRFdP
UkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHJjaFZhbHVl
LCBzaXplb2YoIHJjaFZhbHVlICkgKTsKLSAgICAgICBpZiggY0NoYXJzID09IDAgKQotICAgICAg
ICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gcmNo
VmFsdWU7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIGNoYXIgKnBjaFZhbHVlID0gZ2V0
ZW52KCBwY2hWYXJOYW1lICk7Ci0gICAgICAgaWYoIHBjaFZhbHVlICkKLSAgICAgICAgICAgICAg
cmV0dXJuIHBjaFZhbHVlOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwot
I2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi1ib29s
IFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUsIGNvbnN0IGNo
YXIgKnBjaFZhclZhbHVlICkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4g
MCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUgKTsK
LSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAgaWYoIHBjaFZhclZhbHVlID09IE5VTEwgKQot
ICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNldGVudiggcGNoVmFyTmFtZSApOwotICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuIDAgPT0gc2V0ZW52KCBwY2hWYXJOYW1lLCBwY2hW
YXJWYWx1ZSwgMSApOwotI2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5k
aWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
ZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZGU5ODFhYzNlMzk3MDZkNTlhMDBjMmM0MWY4NTU4ZTRjNWQyMDYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxzdHJpbmc+Ci0KLXN0ZDo6c3RyaW5nIEdl
dEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKTsKLWJvb2wgU2V0
RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAq
cGNoVmFyVmFsdWUgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MTJlMWM0YjNhODEzMDhjMDE5ZDcyYmNjY2Q3YzZhZTcwOTgxOWY0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyMjkgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaG1kZXJyb3Jz
X3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8YWxnb3JpdGhtPgotCi11
c2luZyBuYW1lc3BhY2UgdnI7Ci0KLSNkZWZpbmUgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKGVudW1W
YWx1ZSkgY2FzZSBlbnVtVmFsdWU6IHJldHVybiAjZW51bVZhbHVlOwotCi0KLWNvbnN0IGNoYXIg
KkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQot
ewotICAgICAgIHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Ob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJObyBFcnJvciAoMCkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SW5zdGFsbGF0aW9uIE5vdCBGb3VuZCAoMTAwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0
YWxsYXRpb24gQ29ycnVwdCAoMTAxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZS
Q2xpZW50RExMTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJ2cmNsaWVudCBT
aGFyZWQgTGliIE5vdCBGb3VuZCAoMTAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X0ZpbGVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlsZSBOb3QgRm91bmQgKDEwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRmFjdG9yeSBG
dW5jdGlvbiBOb3QgRm91bmQgKDEwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9J
bnRlcmZhY2VOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVyZmFjZSBO
b3QgRm91bmQgKDEwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgSW50ZXJm
YWNlICgxMDYpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQ6ICAgICAgIHJldHVybiAiVXNlciBDb25maWcgRGlyZWN0b3J5IEludmFsaWQg
KDEwNykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCAoMTA4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIk5vdCBJbml0aWFsaXplZCAoMTA5KSI7Ci0gICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDEx
MCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGg6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbmZpZyBwYXRoIGNvdWxkIG5vdCBi
ZSBsb2NhdGVkICgxMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRo
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJMb2cgcGF0aCBjb3Vs
ZCBub3QgYmUgbG9jYXRlZCAoMTEyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlOiAgICAgICAgICAgICAgcmV0dXJuICJVbmFibGUgdG8gd3Jp
dGUgcGF0aCByZWdpc3RyeSAoMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Fw
cEluZm9Jbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQXBwIGluZm8gbWFu
YWdlciBpbml0IGZhaWxlZCAoMTE0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW50
ZXJuYWwgUmV0cnkgKDExNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXI6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJVc2VyIENhbmNlbGVkIElu
aXQgKDExNikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNo
aW5nOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQW5vdGhlciBhcHAgd2FzIGFscmVhZHkg
bGF1bmNoaW5nICgxMTcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2V0dGluZ3NJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2V0dGluZ3MgbWFuYWdlciBp
bml0IGZhaWxlZCAoMTE4KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5n
RG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVlIgc3lzdGVt
IHNodXR0aW5nIGRvd24gKDExOSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJUb28gbWFueSB0
cmFja2VkIG9iamVjdHMgKDEyMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob1Nl
cnZlckZvckJhY2tncm91bmRBcHA6ICAgICAgICAgICAgICByZXR1cm4gIk5vdCBzdGFydGluZyB2
cnNlcnZlciBmb3IgYmFja2dyb3VuZCBhcHAgKDEyMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvcjogICAgICAgcmV0dXJuICJUaGUgcmVx
dWVzdGVkIGludGVyZmFjZSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29tcG9zaXRvciBhbmQg
dGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZyAoMTIyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHM6ICAgICAgIHJldHVybiAiVGhpcyBpbnRl
cmZhY2UgaXMgbm90IGF2YWlsYWJsZSB0byB1dGlsaXR5IGFwcGxpY2F0aW9ucyAoMTIzKSI7Ci0g
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJzZXJ2ZXIgaW50ZXJuYWwgZXJyb3IgKDEy
NCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZTogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBpbnZhbGlkICgxMjUpIjsK
LSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZDog
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kIFByZXNlbmNlIEZhaWxlZCAoMTI2KSI7Ci0gICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBOb3QgRm91bmQgKDEyNykiOwotICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0
dXJuICJWUiBNb25pdG9yIHN0YXJ0dXAgZmFpbGVkICgxMjgpIjsKLSAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZDogcmV0dXJuICJMb3cgUG93
ZXIgV2F0Y2hkb2cgTm90IFN1cHBvcnRlZCAoMTI5KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGU6ICAgICAgICAgICAgICByZXR1cm4gIkludmFs
aWQgQXBwbGljYXRpb24gVHlwZSAoMTMwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzOiAgICAgICByZXR1cm4gIk5vdCBhdmFpbGFibGUg
dG8gd2F0Y2hkb2cgYXBwcyAoMTMxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1dh
dGNoZG9nRGlzYWJsZWRJblNldHRpbmdzOiAgICAgICByZXR1cm4gIldhdGNoZG9nIGRpc2FibGVk
IGluIHNldHRpbmdzICgxMzIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBO
b3QgRm91bmQgKDEzMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBzdGFydHVw
IGZhaWxlZCAoMTM0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZv
dW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIEhvbWUgTm90IEZvdW5k
ICgxMzUpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxl
ZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIGhvbWUgc3RhcnR1cCBmYWlsZWQgKDEz
NikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlJlYm9vdGluZyBJbiBQcm9ncmVzcyAoMTM3KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeTogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFVwZGF0ZSBJbiBQcm9ncmVzcyAoMTM4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5OiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRmlybXdhcmUgUmVjb3ZlcnkgSW4gUHJvZ3Jlc3MgKDEz
OSkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBGYWls
ZWQgKDIwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd246ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IEtu
b3duICgyMDEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIE5vdCBL
bm93biAoMjAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5v
dCBMb2FkZWQgKDIwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIHJ1bnRp
bWUgaXMgb3V0IG9mIGRhdGUgKDIwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYXBwbGljYXRpb24gKDIwNSkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBpcyBub3QgY2FsaWJyYXRlZCAoMjA2
KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBDYWxpYnJhdGlvbiBpcyBp
bnZhbGlkICgyMDcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVk
IG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91bmQgKDIwOCkiOwotICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duOiAgICAgICByZXR1
cm4gIkRyaXZlciBUcmFja2VkIERldmljZSBJbnRlcmZhY2UgdW5rbm93biAoMjA5KSI7Ci0gICAg
ICAgLy8gY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXg6
ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91
bmQgYWZ0ZXIgYXR0ZW1wdCB0byBmaXggKDIxMCkiOyAvLyB0YWtlbiBvdXQgdXBvbiBCZW4ncyBy
ZXF1ZXN0OiBIZSB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHNlcGFyYXRlIHRoYXQg
ZXJyb3IgZnJvbSAyMDgKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJ
ZE91dE9mQm91bmRzOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIERyaXZlcklkIGlz
IG91ciBvZiBib3VuZHMgKDIxMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ht
ZERpc3BsYXlNaXJyb3JlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQg
ZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG1heSBiZSBtaXJyb3JlZCBpbnN0ZWFkIG9m
IGV4dGVuZGVkICgyMTIpIjsKLQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX1NlcnZlcklu
aXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJWUiBTZXJ2ZXIgSW5pdCBGYWlsZWQgKDMwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX0Nvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiQ29ubmVjdCB0byBWUiBTZXJ2ZXIgRmFpbGVkICgzMDEpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgU3RhdGUgSW5pdCBG
YWlsZWQgKDMwMikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQg
SVBDIENvbXBvc2l0b3IgSW5pdCBGYWlsZWQgKDMwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSVBDX011dGV4SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgTXV0ZXggSW5pdCBGYWlsZWQgKDMwNCkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBGYWlsZWQg
KDMwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFp
bGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9z
aXRvciBDb25uZWN0IEZhaWxlZCAoMzA2KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2U6ICAgICAgICAgICAgICByZXR1cm4gIlNo
YXJlZCBJUEMgQ29tcG9zaXRvciBJbnZhbGlkIENvbm5lY3QgUmVzcG9uc2UgKDMwNykiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1w
dHM6ICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb25uZWN0IEZhaWxlZCBBZnRlciBNdWx0aXBs
ZSBBdHRlbXB0cyAoMzA4KSI7Ci0KLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb21wb3Np
dG9yIGZhaWxlZCB0byBpbml0aWFsaXplICg0MDApIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0
b3IgZmFpbGVkIHRvIGZpbmQgRFgxMSBoYXJkd2FyZSAoNDAxKSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGU6ICAgICAgIHJldHVybiAi
Q29tcG9zaXRvciByZXF1aXJlcyBtYW5kYXRvcnkgZmlybXdhcmUgdXBkYXRlICg0MDIpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQ6ICAgICAg
ICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVkLCBidXQg
b3ZlcmxheSBpbml0IGZhaWxlZCAoNDAzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZDogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGlu
aXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IHNjcmVlbnNob3QgaW5pdCBmYWlsZWQgKDQwNCki
OwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmlj
ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHVuYWJsZSB0byBjcmVhdGUgZ3JhcGhpY3MgZGV2
aWNlICg0MDUpIjsKLQotICAgICAgIC8vIE9jdWx1cwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lOiAgICAgICByZXR1
cm4gIlVuYWJsZSB0byBjb25uZWN0IHRvIE9jdWx1cyBSdW50aW1lICgxMDAwKSI7Ci0KLSAgICAg
ICAvLyBMaWdodGhvdXNlCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBjYW4gbm90IG9wZW4gZGV2aWNlICgxMTAxKSI7Ci0gICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25m
aWdTdGFydDogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gcmVxdWVzdCBj
b25maWcgKDExMDIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX05vU3RvcmVkQ29uZmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IG5vIHN0b3JlZCBjb25maWcgKDExMDMpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNr
OiAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGZhaWxlZCBjb25maWd1cmF0aW9uIGNoZWNr
ICgxMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29CaWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gYmlnICgxMTA0KSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIHNtYWxs
ICgxMTA1KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb0luaXRaTGliOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhN
RCBmb3VuZCwgYnV0IHVuYWJsZSB0byBpbml0IFpMaWIgKDExMDYpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9u
OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBk
YXRhICgxMTA3KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA4KSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3Rh
cnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhl
IGRhdGEgKDExMDkpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEwKSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZTog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGgg
dGhlIGRhdGEgKDExMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VzZXJEYXRhRXJyb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMTIpIjsK
LQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZDogcmV0dXJuICJVbmFibGUgdG8gZmluZCBTdGVhbSBpbnN0YWxsYXRpb24gKDIwMDApIjsKLQot
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHN0
YXRpYyBjaGFyIGJ1ZlsxMjhdOwotICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAi
VW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYnVmOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi19Ci0KLQotY29uc3QgY2hhciAq
R2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQotewotICAgICAg
IHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfTm9uZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1Vua25vd24gKTsKLQotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbkNvcnJ1cHQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCApOwot
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVXNlckNv
bmZpZ0RpcmVjdG9yeUludmFsaWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RS
SU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCApOwotICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICk7Ci0g
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29t
cG9zaXRvciApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5v
dEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9y
dGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAp
OwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
V2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Jl
Ym9vdGluZ0J1c3kgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3kgKTsK
LQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgKTsKLQotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQg
KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2
ZXJfVW5rbm93biApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWRVbmtub3duKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSk7
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duICk7Ci0gICAgICAgICAg
ICAgIC8vIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZEFmdGVyRml4ICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxh
eU1pcnJvcmVkICk7Ci0KLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQpOwotICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JD
b25uZWN0RmFpbGVkKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UpOwotICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzKTsKLQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJl
UmVxdWlyZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRl
RGV2aWNlICk7Ci0KLSAgICAgICAgICAgICAgLy8gT2N1bHVzCi0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25u
ZWN0VG9PY3VsdXNSdW50aW1lKTsKLQotICAgICAgICAgICAgICAvLyBMaWdodGhvdXNlCi0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyk7Ci0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdUb29CaWcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCApOwotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZp
cm13YXJlVmVyc2lvbiApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhQWRkcmVzc1JhbmdlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciApOwot
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfU3RlYW1f
U3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCApOwotCi0gICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07Ci0gICAg
ICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBlRXJy
b3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNjZDZjOGE5NmMxMzBjMGFjZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI3ByYWdtYSBvbmNlCi0KLWNvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JI
bWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKLWNvbnN0IGNoYXIgKkdldElERm9y
VlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTFhNTEyMzMyNmIxZThlMjlhMzJm
YWM5MzQzZTA4ZTk1YzJjNDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xz
X3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MTkgKzAsMCBAQAotLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAic3Ry
dG9vbHNfcHVibGljLmgiCi0jaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgotCi0jaWYgZGVm
aW5lZCggX1dJTjMyKQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxkaXJlY3QuaD4K
LSNpbmNsdWRlIDxzaG9iamlkbC5oPgotI2luY2x1ZGUgPGtub3duZm9sZGVycy5oPgotI2luY2x1
ZGUgPHNobG9iai5oPgotI2luY2x1ZGUgPHNoYXJlLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVu
dFZhcmlhYmxlCi0jZWxzZQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNlbmRpZgotI2lmIGRl
ZmluZWQgT1NYCi0jaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW5jbHVkZSA8
QXBwS2l0L0FwcEtpdC5oPgotI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+Ci0jZGVmaW5lIF9TX0lG
RElSIFNfSUZESVIgICAgIC8vIHJlYWxseSBmcm9tIHRpZXIwL3BsYXRmb3JtLmggd2hpY2ggd2Ug
ZG9udCBoYXZlIHlldAotI2VuZGlmCi0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotCi0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotCi0vKiogUmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1l
KSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1
dGFibGVQYXRoKCkKLXsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHdjaGFyX3QgKnB3
Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAgY2hhciAqcGNo
UGF0aCA9IG5ldyBjaGFyW01BWF9VTklDT0RFX1BBVEhfSU5fVVRGOF07Ci0gICAgICAgOjpHZXRN
b2R1bGVGaWxlTmFtZVcoIE5VTEwsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIICk7Ci0gICAg
ICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRo
LCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAgICBkZWxldGVb
XSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0aDsKLSAgICAg
ICBkZWxldGVbXSBwY2hQYXRoOwotICAgICAgIHJldHVybiBzUGF0aDsKLSNlbGlmIGRlZmluZWQo
IE9TWCApCi0gICAgICAgY2hhciByY2hQYXRoWzEwMjRdOwotICAgICAgIHVpbnQzMl90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgYm9vbCBiU3VjY2VzcyA9IF9OU0dldEV4ZWN1
dGFibGVQYXRoKHJjaFBhdGgsICZuQnVmZikgPT0gMDsKLSAgICAgICByY2hQYXRoW25CdWZmLTFd
ID0gJ1wwJzsKLSAgICAgICBpZiggYlN1Y2Nlc3MgKQotICAgICAgICAgICAgICByZXR1cm4gcmNo
UGF0aDsKLSAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHJldHVybiAiIjsKLSNlbGlmIGRlZmlu
ZWQgTElOVVgKLSAgICAgICBjaGFyIHJjaFBhdGhbMTAyNF07Ci0gICAgICAgc2l6ZV90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgc3NpemVfdCBuUmVhZCA9IHJlYWRsaW5rKCIv
cHJvYy9zZWxmL2V4ZSIsIHJjaFBhdGgsIG5CdWZmLTEgKTsKLSAgICAgICBpZiAoIG5SZWFkICE9
IC0xICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJjaFBhdGhbIG5SZWFkIF0gPSAwOwotICAg
ICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLSNlbHNlCi0gICAgICAgQXNz
ZXJ0TXNnKCBmYWxzZSwgIkltcGxlbWVudCBQbGF0X0dldEV4ZWN1dGFibGVQYXRoIiApOwotICAg
ICAgIHJldHVybiAiIjsKLSNlbmRpZgotCi19Ci0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtp
bmdEaXJlY3RvcnkoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoOwotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgd2NoYXJfdCBidWZbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAg
c1BhdGggPSBVVEYxNnRvOCggX3dnZXRjd2QoIGJ1ZiwgTUFYX1VOSUNPREVfUEFUSCApICk7Ci0j
ZWxzZQotICAgICAgIGNoYXIgYnVmWyAxMDI0IF07Ci0gICAgICAgc1BhdGggPSBnZXRjd2QoIGJ1
Ziwgc2l6ZW9mKCBidWYgKSApOwotI2VuZGlmCi0gICAgICAgcmV0dXJuIHNQYXRoOwotfQotCi0v
KiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJu
cyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwuICovCi1ib29sIFBhdGhfU2V0V29ya2luZ0Rp
cmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgYm9vbCBiU3Vj
Y2VzczsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHN0ZDo6d3N0cmluZyB3c1BhdGgg
PSBVVEY4dG8xNiggc1BhdGguY19zdHIoKSApOwotICAgICAgIGJTdWNjZXNzID0gMCA9PSBfd2No
ZGlyKCB3c1BhdGguY19zdHIoKSApOwotI2Vsc2UKLSAgICAgICBiU3VjY2VzcyA9IDAgPT0gY2hk
aXIoIHNQYXRoLmNfc3RyKCkgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBiU3VjY2VzczsKLX0K
LQotLyoqIFJldHVybnMgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lICov
Ci1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAg
ICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3Rk
OjpzdHJpbmc6Om5wb3MgKQotICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCksIHNQYXRo
LmJlZ2luKCkgKyBuICk7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20g
dGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhf
U3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQot
ewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dl
dFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5k
X2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQot
ICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCkgKyBuICsgMSwgc1BhdGguZW5kKCkgKTsK
LX0KLQotLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2Yg
dGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKLSogSWYgdGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlz
IGxlZnQgaW50YWN0LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3Rf
cmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYoICppID09ICcuJyApCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVn
aW4oKSwgaS5iYXNlKCkgLSAxICk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAv
LyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0ZW5zaW9uCi0gICAgICAgICAgICAg
IGlmKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyApCi0gICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICB9Ci0KLSAgICAgICAvLyB3ZSBkaWRuJ3QgZmluZCBhbiBleHRlbnNpb24KLSAg
ICAgICByZXR1cm4gc1BhdGg7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRo
ZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0
ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKLXsKLSAgICAgICBmb3IgKCBzdGQ6
OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0g
c1BhdGgucmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKCAqaSA9PSAn
LicgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoIGkuYmFzZSgpLCBzUGF0aC5lbmQoKSApOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNoIHRoZXJlIGlzIG5vIGV4dGVuc2lvbgotICAg
ICAgICAgICAgICBpZiAoICppID09ICdcXCcgfHwgKmkgPT0gJy8nICkKLSAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgIH0KLQotICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4
dGVuc2lvbgotICAgICAgIHJldHVybiAiIjsKLX0KLQotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIGlmKCBzUGF0aC5lbXB0eSgpICkK
LSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAg
ICAgIGlmICggc1BhdGguc2l6ZSgpIDwgMyApIC8vIG11c3QgYmUgYzpceCBvciBcXHggYXQgbGVh
c3QKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgaWYgKCBzUGF0aFsxXSA9
PSAnOicgKSAvLyBkcml2ZSBsZXR0ZXIgcGx1cyBzbGFzaCwgYnV0IG11c3QgdGVzdCBib3RoIHNs
YXNoIGNhc2VzCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIHNQYXRoWzJdID09ICdcXCcg
fHwgc1BhdGhbMl0gPT0gJy8nICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlIGlmICggc1BhdGhbMF0gPT0gJ1xcJyAmJiBzUGF0aFsxXSA9
PSAnXFwnICkgLy8gVU5DIHBhdGgKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQot
ICAgICAgIGlmKCBzUGF0aFswXSA9PSAnXFwnIHx8IHNQYXRoWzBdID09ICcvJyApIC8vIGFueSBs
ZWFkaW5nIHNsYXNoCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0KLSAgICAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBh
IHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VB
YnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAg
KQotICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIGlmKCBQ
YXRoX0lzQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGggKSApCi0gICAgICAgICAgICAgIHJldHVybiBz
UmVsYXRpdmVQYXRoOwotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCAh
UGF0aF9Jc0Fic29sdXRlKCBzQmFzZVBhdGggKSApCi0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIiI7Ci0KLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc0NvbXBhY3RlZCA9IFBhdGhfQ29t
cGFjdCggUGF0aF9Kb2luKCBzQmFzZVBhdGgsIHNSZWxhdGl2ZVBhdGgsIHNsYXNoICksIHNsYXNo
ICk7Ci0gICAgICAgICAgICAgIGlmKCBQYXRoX0lzQWJzb2x1dGUoIHNDb21wYWN0ZWQgKSApCi0g
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0NvbXBhY3RlZDsKLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLX0KLQotCi0vKiog
Rml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRo
LCBjaGFyIHNsYXNoICkKLXsKLSAgICAgICBpZiggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAg
IHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkID0g
c1BhdGg7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6aXRlcmF0b3IgaSA9IHNGaXhlZC5iZWdp
bigpOyBpICE9IHNGaXhlZC5lbmQoKTsgaSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlm
KCAqaSA9PSAnLycgfHwgKmkgPT0gJ1xcJyApCi0gICAgICAgICAgICAgICAgICAgICAqaSA9IHNs
YXNoOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBzRml4ZWQ7Ci19Ci0KLQotY2hhciBQYXRo
X0dldFNsYXNoKCkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4gJ1xcJzsK
LSNlbHNlCi0gICAgICAgcmV0dXJuICcvJzsKLSNlbmRpZgotfQotCi0vKiogSmFtcyB0d28gcGF0
aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2luZCBvZiBzbGFzaCAqLwotc3RkOjpzdHJpbmcg
UGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNlY29uZCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAgKQotICAgICAg
ICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIC8vIG9ubHkgaW5zZXJ0
IGEgc2xhc2ggaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZQotICAgICAgIHN0ZDo6c3RyaW5n
OjpzaXplX3R5cGUgbkxlbiA9IGZpcnN0Lmxlbmd0aCgpOwotICAgICAgIGlmKCAhbkxlbiApCi0g
ICAgICAgICAgICAgIHJldHVybiBzZWNvbmQ7Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0gICAgICAg
aWYoIGZpcnN0LmJhY2soKSA9PSAnXFwnIHx8IGZpcnN0LmJhY2soKSA9PSAnLycgKQotICAgICAg
ICAgICBuTGVuLS07Ci0jZWxzZQotICAgICAgIGNoYXIgbGFzdF9jaGFyID0gZmlyc3RbZmlyc3Qu
bGVuZ3RoKCktMV07Ci0gICAgICAgaWYgKGxhc3RfY2hhciA9PSAnXFwnIHx8IGxhc3RfY2hhciA9
PSAnLycpCi0gICAgICAgICAgIG5MZW4tLTsKLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIGZpcnN0
LnN1YnN0ciggMCwgbkxlbiApICsgc3RkOjpzdHJpbmcoIDEsIHNsYXNoICkgKyBzZWNvbmQ7Ci19
Ci0KLQotc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hh
ciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwg
c2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKTsKLX0KLQotc3RkOjpzdHJpbmcgUGF0aF9K
b2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29u
ZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwg
Y2hhciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRo
X0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNs
YXNoICk7Ci19Ci0KLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0gICAgICAgY29uc3Qgc3RkOjpz
dHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIAotICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpZnRoLCAKLSAgICAgICBj
aGFyIHNsYXNoICkKLXsKLSAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhf
Sm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwg
Zm91cnRoLCBzbGFzaCApLCBmaWZ0aCwgc2xhc2ggKTsKLX0KLQotCi1zdGQ6OnN0cmluZyBQYXRo
X1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIg
c2xhc2ggKQotewotICAgICAgIGlmICggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAgIHNsYXNo
ID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBzUmF3UGF0
aDsKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG5DdXJyZW50ID0gc1Jhd1BhdGgubGVu
Z3RoKCk7Ci0gICAgICAgaWYgKCBuQ3VycmVudCA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJu
IHNQYXRoOwotCi0gICAgICAgaW50IG5MYXN0Rm91bmQgPSAtMTsKLSAgICAgICBuQ3VycmVudC0t
OwotICAgICAgIHdoaWxlKCBuQ3VycmVudCAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IGlmICggc1Jhd1BhdGhbIG5DdXJyZW50IF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBuTGFzdEZvdW5kID0gKGludCluQ3VycmVudDsKLSAgICAgICAg
ICAgICAgICAgICAgIG5DdXJyZW50LS07Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgaWYgKCBuTGFzdEZv
dW5kID49IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc1BhdGguZXJhc2UoIG5MYXN0Rm91
bmQsIHN0ZDo6c3RyaW5nOjpucG9zICk7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIHJldHVy
biBzUGF0aDsKLX0KLQotCi0vKiogUmVtb3ZlcyByZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMg
aW4gdGhlIHBhdGguIFJldHVybnMgYW4gZW1wdHkgcGF0aCBpZiB0aGUgCi0qIHNwZWNpZmllZCBw
YXRoIGhhcyBhIGJyb2tlbiBudW1iZXIgb2YgZGlyZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2Yg
Li5zICovCi1zdGQ6OnN0cmluZyBQYXRoX0NvbXBhY3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jh
d1BhdGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAg
ICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0
aCA9IFBhdGhfRml4U2xhc2hlcyggc1Jhd1BhdGgsIHNsYXNoICk7Ci0gICAgICAgc3RkOjpzdHJp
bmcgc1NsYXNoU3RyaW5nKCAxLCBzbGFzaCApOwotCi0gICAgICAgLy8gc3RyaXAgb3V0IGFsbCAv
Li8KLSAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7IChpICsgMykgPCBz
UGF0aC5sZW5ndGgoKTsgICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgaSBd
ID09IHNsYXNoICYmIHNQYXRoWyBpKzEgXSA9PSAnLicgJiYgc1BhdGhbIGkrMiBdID09IHNsYXNo
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc1BhdGgucmVwbGFjZSgg
aSwgMywgc1NsYXNoU3RyaW5nICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICArK2k7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICB9Ci0KLQotICAgICAgIC8vIGdldCByaWQgb2YgdHJhaWxpbmcgLy4gYnV0
IGxlYXZlIHRoZSBwYXRoIHNlcGFyYXRvcgotICAgICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIg
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBsZW4gPSBz
UGF0aC5sZW5ndGgoKTsKLSAgICAgICAgICAgICAgaWYoIHNQYXRoWyBsZW4tMSBdID09ICcuJyAg
JiYgc1BhdGhbIGxlbi0yIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgLy8gc1BhdGgucG9wX2JhY2soKTsKLSAgICAgICAgICAgICAgICBzUGF0aFtsZW4tMV0g
PSAwOyAgLy8gZm9yIG5vdywgYXQgbGVhc3QKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIC8vIGdldCByaWQgb2YgbGVhZGluZyAuLyAKLSAgICAgICBpZiggc1BhdGgubGVuZ3Ro
KCkgPiAyICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgMCBdID09ICcuJyAg
JiYgc1BhdGhbIDEgXSA9PSBzbGFzaCApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIHNQYXRoLnJlcGxhY2UoIDAsIDIsICIiICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICB9Ci0KLSAgICAgICAvLyBlYWNoIHRpbWUgd2UgZW5jb3VudGVyIC4uIGJhY2sgdXAgdW50aWwg
d2UndmUgZm91bmQgdGhlIHByZXZpb3VzIGRpcmVjdG9yeSBuYW1lCi0gICAgICAgLy8gdGhlbiBn
ZXQgcmlkIG9mIGJvdGgKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOwotICAg
ICAgIHdoaWxlKCBpIDwgc1BhdGgubGVuZ3RoKCkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
aWYoIGkgPiAwICYmIHNQYXRoLmxlbmd0aCgpIC0gaSA+PSAyIAotICAgICAgICAgICAgICAgICAg
ICAgJiYgc1BhdGhbaV0gPT0gJy4nCi0gICAgICAgICAgICAgICAgICAgICAmJiBzUGF0aFtpKzFd
ID09ICcuJwotICAgICAgICAgICAgICAgICAgICAgJiYgKCBpICsgMiA9PSBzUGF0aC5sZW5ndGgo
KSB8fCBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICAgICAgICAgJiYgc1Bh
dGhbIGktMSBdID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgLy8gY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nIGFuZCBoYXZl
IGEgYm9ndXMgcGF0aAotICAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMSApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIGktMQotICAg
ICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpRGlyU3RhcnQgPSBpLTI7
Ci0gICAgICAgICAgICAgICAgICAgICB3aGlsZSggaURpclN0YXJ0ID4gMCAmJiBzUGF0aFsgaURp
clN0YXJ0IC0gMSBdICE9IHNsYXNoICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWlE
aXJTdGFydDsKLQotICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgZnJv
bSBpRGlyU3RhcnQgdG8gaSsyCi0gICAgICAgICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBp
RGlyU3RhcnQsIChpIC0gaURpclN0YXJ0KSArIDMsICIiICk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgIC8vIHN0YXJ0IG92ZXIKLSAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgKytpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IHNQYXRoOwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IERMTCBv
ciBleGUgKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0VGhpc01vZHVsZVBhdGgoKQotewotICAgICAg
IC8vIGdldHMgdGhlIHBhdGggb2YgdnJjbGllbnQuZGxsIGl0c2VsZgotI2lmZGVmIFdJTjMyCi0g
ICAgICAgSE1PRFVMRSBobW9kdWxlID0gTlVMTDsKLQotICAgICAgIDo6R2V0TW9kdWxlSGFuZGxl
RXgoIEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTIHwgR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19VTkNIQU5HRURfUkVGQ09VTlQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBDVFNU
Uj4oUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCksICZobW9kdWxlICk7Ci0KLSAgICAgICB3Y2hhcl90
ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9VTklDT0RFX1BBVEhdOwotICAgICAgIGNoYXIg
KnBjaFBhdGggPSBuZXcgY2hhclsgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4IF07Ci0gICAgICAg
OjpHZXRNb2R1bGVGaWxlTmFtZVcoIGhtb2R1bGUsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRI
ICk7Ci0gICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0x
LCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAg
ICBkZWxldGVbXSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0
aDsKLSAgICAgICBkZWxldGUgW10gcGNoUGF0aDsKLSAgICAgICByZXR1cm4gc1BhdGg7Ci0KLSNl
bGlmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBnZXQgdGhl
IGFkZHIgb2YgYSBmdW5jdGlvbiBpbiB2cmNsaWVudC5zbyBhbmQgdGhlbiBhc2sgdGhlIGRsb3Bl
biBzeXN0ZW0gYWJvdXQgaXQKLSAgICAgICBEbF9pbmZvIGluZm87Ci0gICAgICAgZGxhZGRyKCAo
dm9pZCAqKVBhdGhfR2V0VGhpc01vZHVsZVBhdGgsICZpbmZvICk7Ci0gICAgICAgcmV0dXJuIGlu
Zm8uZGxpX2ZuYW1lOwotI2VuZGlmCi0KLX0KLQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBz
cGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29sIFBhdGhfSXNE
aXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIHN0ZDo6c3Ry
aW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7Ci0gICAgICAgaWYoIHNG
aXhlZFBhdGguZW1wdHkoKSApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICBj
aGFyIGNMYXN0ID0gc0ZpeGVkUGF0aFsgc0ZpeGVkUGF0aC5sZW5ndGgoKSAtIDEgXTsKLSAgICAg
ICBpZiggY0xhc3QgPT0gJy8nIHx8IGNMYXN0ID09ICdcXCcgKQotICAgICAgICAgICAgICBzRml4
ZWRQYXRoLmVyYXNlKCBzRml4ZWRQYXRoLmVuZCgpIC0gMSwgc0ZpeGVkUGF0aC5lbmQoKSApOwot
Ci0gICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0K
LSNpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIHN0cnVjdCAgICAgICBzdGF0ICAgICAgIGJ1ZjsK
LSAgICAgICBpZiAoIHN0YXQoIHNGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSNpZiBkZWZp
bmVkKCBMSU5VWCApIHx8IGRlZmluZWQoIE9TWCApCi0gICAgICAgcmV0dXJuIFNfSVNESVIoIGJ1
Zi5zdF9tb2RlICk7Ci0jZWxzZQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJ
UikgIT0gMDsKLSNlbmRpZgotCi0jZWxzZQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAg
ICBidWY7Ci0gICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhl
ZFBhdGguY19zdHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigp
LCAmYnVmICkgPT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsK
LSNlbmRpZgotfQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXBy
ZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KLWJvb2wgUGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzUGF0aCApCi17Ci0jaWYgZGVmaW5lZChPU1gpCi0gICAgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFsgTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6IFsgTlNTdHJpbmcgc3RyaW5nV2l0
aFVURjhTdHJpbmc6c1BhdGguY19zdHIoKSBdIF07Ci0gICAgICAgYm9vbCBiaXNBcHBCdW5kbGUg
PSAoIG51bGxwdHIgIT0gYnVuZGxlICk7Ci0gICAgICAgWyBidW5kbGUgcmVsZWFzZSBdOwotICAg
ICAgIHJldHVybiBiaXNBcHBCdW5kbGU7Ci0jZWxzZQotICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiByZXR1cm5zIHRy
dWUgaWYgdGhlIHRoZSBwYXRoIGV4aXN0cwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBQ
YXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgc3RkOjpz
dHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKLSAgICAgICBpZigg
c0ZpeGVkUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYg
ZGVmaW5lZCggV0lOMzIgKQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAgICBidWY7Ci0g
ICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19z
dHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkg
PT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIH0K
LSNlbHNlCi0gICAgICAgc3RydWN0IHN0YXQgYnVmOwotICAgICAgIGlmICggc3RhdCAoIHNGaXhl
ZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgIH0KLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0K
LQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBk
aXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVuIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVudERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJE
aXJlY3RvcnlOYW1lICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3Ry
U3RhcnREaXJlY3RvcnkgKTsKLSAgICAgICBpZiAoIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09
IDAgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSAgICAgICBib29sIGJFeGlzdHMgPSBQ
YXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJy
ZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7
Ci0gICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1l
LmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSApID09IDAgKQotICAgICAgICAgICAg
ICByZXR1cm4gc3RyQ3VycmVudFBhdGg7Ci0KLSAgICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJD
dXJyZW50UGF0aC5sZW5ndGgoKSAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHN0ckN1
cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZpbGVuYW1lKCBzdHJDdXJyZW50UGF0aCApOwotICAgICAg
ICAgICAgICBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0
ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3Ry
Q3VycmVudFBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0
ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSAp
ID09IDAgKQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ckN1cnJlbnRQYXRoOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiAiIjsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBhIHN1YmRpcmVjdG9yeSB1cHN0cmVhbSBmcm9t
IGEgZ2l2ZW4gcGF0aAotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgUGF0aF9G
aW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJT
dGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKQotewot
ICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0aCA9ICIiOwotICAgICAgIHN0ZDo6c3RyaW5n
IHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzdHJTdGFydERpcmVjdG9yeSApOwot
ICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgPT0gMCApCi0gICAgICAgICAgICAg
IHJldHVybiAiIjsKLQotICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJy
ZW50UGF0aCApOwotICAgICAgIHdoaWxlKCBiRXhpc3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0
aCgpICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRo
X1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMg
PSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLQotICAgICAgICAgICAgICBpZiggUGF0
aF9FeGlzdHMoIFBhdGhfSm9pbiggc3RyQ3VycmVudFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKSAp
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RyRm91bmRQYXRoID0g
UGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0b3J5TmFtZSApOwotICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgcmV0
dXJuIHN0ckZvdW5kUGF0aDsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJw
b3NlOiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVzIGluIHRoZSB2b3J0ZXggZGlyZWN0b3J5Ci0v
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi11bnNpZ25lZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5Rmls
ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBpbnQgKnBTaXplICkKLXsKLSAgICAg
ICBGSUxFICpmOwotI2lmIGRlZmluZWQoIFBPU0lYICkKLSAgICAgICBmID0gZm9wZW4oIHN0ckZp
bGVuYW1lLmNfc3RyKCksICJyYiIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJG
aWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgLy8gdGhl
IG9wZW4gb3BlcmF0aW9uIG5lZWRzIHRvIGJlIHNoYXJhYmxlLCB0aGVyZWZvcmUgdXNlIG9mIF93
ZnNvcGVuIGluc3RlYWQgb2YgX3dmb3Blbl9zCi0gICAgICAgZiA9IF93ZnNvcGVuKCB3c3RyRmls
ZW5hbWUuY19zdHIoKSwgTCJyYiIsIF9TSF9ERU5ZTk8gKTsKLSNlbmRpZgotICAgICAgIAotICAg
ICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IE5VTEw7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCAp
Ci0gICAgICAgewotICAgICAgICAgICAgICBmc2VlayhmLCAwLCBTRUVLX0VORCk7Ci0gICAgICAg
ICAgICAgIGludCBzaXplID0gZnRlbGwoZik7Ci0gICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNF
RUtfU0VUKTsKLQotICAgICAgICAgICAgICBidWYgPSBuZXcgdW5zaWduZWQgY2hhcltzaXplXTsK
LSAgICAgICAgICAgICAgaWYgKGJ1ZiAmJiBmcmVhZChidWYsIHNpemUsIDEsIGYpID09IDEpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChwU2l6ZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqcFNpemUgPSBzaXplOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgZGVs
ZXRlW10gYnVmOwotICAgICAgICAgICAgICAgICAgICAgYnVmID0gMDsKLSAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4g
YnVmOwotfQotCi11aW50MzJfdCAgUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUg
KQotewotICAgICAgIEZJTEUgKmY7Ci0jaWYgZGVmaW5lZCggUE9TSVggKQotICAgICAgIGYgPSBm
b3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJiIiApOwotI2Vsc2UKLSAgICAgICBzdGQ6Ondz
dHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAg
ICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBM
InJiIiApOwotICAgICAgIGlmICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
ZiA9IE5VTEw7Ci0gICAgICAgfQotI2VuZGlmCi0KLSAgICAgICB1aW50MzJfdCB1blNpemVUb1Jl
dHVybiA9IDA7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCApCi0gICAgICAgewotICAgICAgICAg
ICAgICBmc2VlayggZiwgMCwgU0VFS19FTkQgKTsKLSAgICAgICAgICAgICAgdWludDMyX3Qgc2l6
ZSA9ICh1aW50MzJfdClmdGVsbCggZiApOwotICAgICAgICAgICAgICBmc2VlayggZiwgMCwgU0VF
S19TRVQgKTsKLQotICAgICAgICAgICAgICBpZiAoIHNpemUgPiB1blNpemUgfHwgIXBCdWZmZXIg
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICB1blNpemVUb1JldHVybiA9
ICh1aW50MzJfdClzaXplOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCBmcmVhZCggcEJ1ZmZlciwg
c2l6ZSwgMSwgZiApID09IDEgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJuID0gKHVpbnQzMl90KXNpemU7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBmY2xvc2Uo
IGYgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdW5TaXplVG9SZXR1cm47Ci19Ci0KLWJv
b2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1
bnNpZ25lZCBjaGFyICpwRGF0YSwgdW5zaWduZWQgblNpemUpCi17Ci0gICAgICAgRklMRSAqZjsK
LSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKHN0ckZpbGVuYW1lLmNfc3Ry
KCksICJ3YiIpOwotI2Vsc2UKLSAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRG
OHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBlcnJub190IGVyciA9IF93Zm9w
ZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMIndiIiApOwotICAgICAgIGlmIChlcnIg
IT0gMCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGYgPSBOVUxMOwotICAgICAgIH0KLSNlbmRp
ZgotCi0gICAgICAgc2l6ZV90IHdyaXR0ZW4gPSAwOwotICAgICAgIGlmIChmICE9IE5VTEwpIHsK
LSAgICAgICAgICAgICAgd3JpdHRlbiA9IGZ3cml0ZShwRGF0YSwgc2l6ZW9mKHVuc2lnbmVkIGNo
YXIpLCBuU2l6ZSwgZik7Ci0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gd3JpdHRlbiA9PSBuU2l6ZSA/IHRydWUgOiBmYWxzZTsKLX0KLQotc3RkOjpz
dHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSAp
Ci17Ci0gICAgICAgLy8gZG9pbmcgaXQgdGhpcyB3YXkgc2VlbXMgYmFja3dhcmRzLCBidXQgSSBk
b24ndAotICAgICAgIC8vIHNlZSBhbiBlYXN5IHdheSB0byBkbyB0aGlzIHdpdGggQy9DKysgc3R5
bGUgSU8KLSAgICAgICAvLyB0aGF0IGlzbid0IHdvcnNlLi4uCi0gICAgICAgaW50IHNpemU7Ci0g
ICAgICAgdW5zaWduZWQgY2hhciogYnVmID0gUGF0aF9SZWFkQmluYXJ5RmlsZSggc3RyRmlsZW5h
bWUsICZzaXplICk7Ci0gICAgICAgaWYgKCFidWYpCi0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LQotICAgICAgIC8vIGNvbnZlcnQgQ1JMRiAtPiBMRgotICAgICAgIHNpemVfdCBvdXRzaXplID0g
MTsKLSAgICAgICBmb3IgKGludCBpPTE7IGkgPCBzaXplOyBpKyspCi0gICAgICAgewotICAgICAg
ICAgICAgICBpZiAoYnVmW2ldID09ICdcbicgJiYgYnVmW2ktMV0gPT0gJ1xyJykgLy8gQ1JMRgot
ICAgICAgICAgICAgICAgICAgICAgYnVmW291dHNpemUtMV0gPSAnXG4nOyAvLyAtPkxGCi0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplKytdID0gYnVm
W2ldOyAvLyBqdXN0IGNvcHkKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyByZXQoKGNo
YXIgKilidWYsIG91dHNpemUpOwotICAgICAgIGRlbGV0ZVtdIGJ1ZjsKLSAgICAgICByZXR1cm4g
cmV0OwotfQotCi0KLWJvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIGNvbnN0IHN0ZDo6
c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCi17Ci0gICAgICAgRklM
RSAqZjsKLSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFt
ZS5jX3N0cigpLCAidyIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFt
ZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgZXJybm9fdCBlcnIg
PSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3IiApOwotICAgICAgIGlm
ICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZiA9IE5VTEw7Ci0gICAgICAg
fQotI2VuZGlmCi0gICAgICAgCi0gICAgICAgYm9vbCBvayA9IGZhbHNlOwotCi0gICAgICAgaWYg
KCBmICE9IE5VTEwgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgb2sgPSBmcHV0cyggcGNoRGF0
YSwgZikgPj0gMDsKLSAgICAgICAgICAgICAgZmNsb3NlKGYpOwotICAgICAgIH0KLQotICAgICAg
IHJldHVybiBvazsKLX0KLQotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYygg
Y29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICkKLXsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJUbXBGaWxlbmFtZSA9IHN0ckZpbGVuYW1lICsgIi50bXAi
OwotCi0gICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHN0clRtcEZpbGVu
YW1lLCBwY2hEYXRhICkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAv
LyBQbGF0Zm9ybSBzcGVjaWZpYyBhdG9taWMgZmlsZSByZXBsYWNlbWVudAotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzRmlsZW5hbWUgPSBVVEY4dG8xNiggc3Ry
RmlsZW5hbWUuY19zdHIoKSApOwotICAgICAgIHN0ZDo6d3N0cmluZyB3c1RtcEZpbGVuYW1lID0g
VVRGOHRvMTYoIHN0clRtcEZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBpZiAoICE6OlJlcGxh
Y2VGaWxlVyggd3NGaWxlbmFtZS5jX3N0cigpLCB3c1RtcEZpbGVuYW1lLmNfc3RyKCksIG51bGxw
dHIsIDAsIDAsIDAgKSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZG4n
dCBSZXBsYWNlRmlsZSwgdHJ5IGEgbm9uLWF0b21pYyB3cml0ZSBhcyBhIGZhbGxiYWNrCi0gICAg
ICAgICAgICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJGaWxlbmFtZSwg
cGNoRGF0YSApICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9
Ci0jZWxpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgaWYgKCByZW5hbWUoIHN0clRtcEZpbGVu
YW1lLmNfc3RyKCksIHN0ckZpbGVuYW1lLmNfc3RyKCkgKSA9PSAtMSApCi0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbHNlCi0jZXJyb3IgRG8gbm90IGtub3cgaG93IHRvIHdyaXRlIGF0
b21pYyBmaWxlCi0jZW5kaWYKLQotICAgICAgIHJldHVybiB0cnVlOwotfQotCi0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8vIgotI2Vsc2UKLSNk
ZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vIgotI2VuZGlmCi0KLS8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFR1cm5zIGEgcGF0aCB0byBhIGZpbGUgb24gZGlzayBpbnRvIGEgVVJMIChv
ciBqdXN0IHJldHVybnMgdGhlIHZhbHVlIGlmIGl0J3MgYWxyZWFkeSBhIFVSTCkKLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCApCi17Ci0gICAg
ICAgaWYgKCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHA6Ly8iLCA3ICkK
LSAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRw
czovLyIsIDggKQotICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19z
dHIoKSwgImZpbGU6Ly8iLCA3ICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNS
ZWxhdGl2ZVBhdGg7Ci0gICAgICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHN0ZDo6c3RyaW5nIHNBYnNvbHV0ZSA9IFBhdGhfTWFrZUFic29sdXRlKCBzUmVsYXRpdmVQ
YXRoLCBzQmFzZVBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBzQWJzb2x1dGUuZW1wdHkoKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Fic29sdXRlOwotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIEZJTEVfVVJMX1BSRUZJWCApICsgc0Fic29sdXRlOwotICAgICAg
IH0KLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFN0cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhl
IHBhdGguIEZvciBvdGhlciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5l
ZAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6
c3RyaW5nIFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCAp
Ci17Ci0gICAgICAgaWYgKCAhc3RybmljbXAoIHNGaWxlVXJsLmNfc3RyKCksIEZJTEVfVVJMX1BS
RUZJWCwgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzRmlsZVVybC5jX3N0cigpICsgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKTsK
LSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuICIi
OwotICAgICAgIH0KLX0KLQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5
IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4KLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0cmluZyBHZXRV
c2VyRG9jdW1lbnRzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAgICAgIFdDSEFS
IHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmICggIVNVQ0NFRURFRCggU0hHZXRGb2xk
ZXJQYXRoVyggTlVMTCwgQ1NJRExfTVlET0NVTUVOVFMgfCBDU0lETF9GTEFHX0NSRUFURSwgTlVM
TCwgMCwgcndjaFBhdGggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LSAgICAgICB9Ci0KLSAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRvIFVURi04IGFuZCBzdG9y
ZSBpbiB0aGUgb3V0cHV0Ci0gICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQYXRoID0gVVRGMTZ0bzgo
IHJ3Y2hQYXRoICk7Ci0KLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2VsaWYgZGVmaW5lZCgg
T1NYICkKLSAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgICAgICAgTlNBcnJheSAq
cGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyggTlNEb2N1bWVudERp
cmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7Ci0gICAgICAgICAgICAgIGlmICggW3Bh
dGhzIGNvdW50XSA9PSAwICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICByZXR1cm4gW1twYXRocyBvYmplY3RBdEluZGV4OjBdIFVURjhTdHJpbmddOwotICAgICAgIH0K
LSNlbGlmIGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBAdG9kbzogbm90IHNvbHZlZC9jaGFu
Z2VkIGFzIHBhcnQgb2YgT1NYIC0gc3RpbGwgbm90IHJlYWwgLSBqdXN0IHJlbW92ZWQgb2xkIGNs
YXNzIGJhc2VkIHN0ZWFtIGN1dCBhbmQgcGFzdGUKLSAgICAgICBjb25zdCBjaGFyICpwY2hIb21l
ID0gZ2V0ZW52KCAiSE9NRSIgKTsKLSAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCi0gICAg
ICAgewotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgfQotICAgICAgIHJldHVybiBw
Y2hIb21lOwotI2VuZGlmCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI5NTdjNjRkNzM3YThjMTE2MDRmYTU4NmE0MjJhYzA4MTIyY2E1NTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzIgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNs
dWRlIDxzdGRpbnQuaD4KLQotLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFt
ZSkgdG8gdGhlIGN1cnJlbnQgZXhlY3V0YWJsZSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVj
dXRhYmxlUGF0aCgpOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KCk7
Ci0KLS8qKiBTZXRzIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBS
ZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KLWJvb2wgUGF0aF9TZXRXb3Jr
aW5nRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiByZXR1cm5z
IHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJlZCBsaWIg
b3IgRExMICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7Ci0KLS8qKiBS
ZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KLSogSWYgc2xh
c2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVu
dCBwbGF0Zm9ybQotKiB3aWxsIGJlIHVzZWQuICovCi1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmls
ZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8q
KiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVs
YXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8qKiByZXR1cm5zIGp1c3Qg
dGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4g
Ci0qIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KLXN0ZDo6
c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChp
ZiBhbnkpLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGggKTsKLQotLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0
ZSAqLwotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEg
YmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hh
ciBzbGFzaCA9IDAgKTsKLQotLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3Ig
dGhlIGN1cnJlbnQgcGxhdGZvcm0uCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRp
dmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBiZSB1c2Vk
LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQ
YXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBzZXBhcmF0b3Ig
Zm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCi1jaGFyIFBhdGhfR2V0U2xhc2goKTsKLQotLyoq
IEphbXMgdHdvIHBhdGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8K
LXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7Ci1zdGQ6OnN0cmluZyBQYXRo
X0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vj
b25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOwotc3RkOjpz
dHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJp
bmcgJmZvdXJ0aCwgY2hhciBzbGFzaCA9IDAgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0g
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcgJiBzZWNvbmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpZnRoLCAKLSAgICAgICBjaGFyIHNsYXNoID0gMCApOwotCi0KLS8qKiBSZW1vdmVzIHJlZHVu
ZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRo
IGlmIHRoZSAKLSogc3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3Rv
cmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMuCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRo
ZSBuYXRpdmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBi
ZSB1c2VkLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vLyoqIFJlbW92ZWQgdHJhaWxpbmcgc2xh
c2hlcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29s
IFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKLQotLyoqIHJl
dHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxl
ICovCi1ib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCi1ib29sIFBhdGhf
RXhpc3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiBIZWxwZXIgZnVuY3Rp
b25zIHRvIGZpbmQgcGFyZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9mIHBhcmVu
dCBkaXJlY3RvcmllcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVj
dXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJl
Y3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7Ci0KLS8qKiBQYXRo
IG9wZXJhdGlvbnMgdG8gcmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwotdW5zaWdu
ZWQgY2hhciAqIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSwgaW50ICpwU2l6ZSApOwotdWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMy
X3QgdW5TaXplICk7Ci1ib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSApOwot
c3RkOjpzdHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSApOwotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7Ci1ib29sIFBhdGhfV3JpdGVT
dHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNv
bnN0IGNoYXIgKnBjaERhdGEgKTsKLQotLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBmb3IgcGF0
aHMsIG9yIGFuIGh0dHAgb3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92aWRlZCAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNS
ZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7Ci0KLS8qKiBTdHJp
cHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIg
a2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KLXN0ZDo6c3RyaW5n
IFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApOwotCi0v
KiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMg
dG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4gKi8KLXN0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVu
dHNQYXRoKCk7Ci0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSAotICAgICAgICNkZWZpbmUgTUFY
X1VOSUNPREVfUEFUSCAzMjc2NwotI2VuZGlmCi0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSF9J
Tl9VVEY4Ci0gICAgICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1BWF9VTklD
T0RFX1BBVEggKiA0KQotI2VuZGlmCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCi0jZGVmaW5l
IFBST0dSQU1fRVhUICIuZXhlIgotI2lmZGVmIF9XSU42NAotI2RlZmluZSBQTEFUU1VCRElSICAg
ICAgICJ3aW42NCIKLSNlbHNlCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMyIgotI2Vu
ZGlmCi0jZWxpZiBkZWZpbmVkKE9TWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIu
ZHlsaWIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgotI2RlZmluZSBQUk9HUkFN
X0VYVCAiIgotI2VsaWYgZGVmaW5lZChMSU5VWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAg
ICAgICIuc28iCi0jZGVmaW5lIFBST0dSQU1fRVhUICIiCi0jaWYgZGVmaW5lZCggTElOVVgzMiAp
Ci0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgImxpbnV4MzIiCi0jZWxzZQotI2RlZmluZSBQTEFU
U1VCRElSICAgICAgICJsaW51eDY0IgotI2VuZGlmCi0jZWxzZQotI3dhcm5pbmcgIlVua25vd24g
cGxhdGZvcm0gZm9yIFBMQVRTVUJESVIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgInVua25v
d25fcGxhdGZvcm0iCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhlZWMyNjA0NTljNTFlZWM1NjlhMmNhNWIxMDI5YTU5
YzliYWNkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmln
aHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoX1dJTjMy
KQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChQT1NJWCkKLSNp
bmNsdWRlIDxkbGZjbi5oPgotI2VuZGlmCi0KLVNoYXJlZExpYkhhbmRsZSBTaGFyZWRMaWJfTG9h
ZCggY29uc3QgY2hhciAqcGNoUGF0aCApCi17Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAgICAg
IHJldHVybiAoU2hhcmVkTGliSGFuZGxlKUxvYWRMaWJyYXJ5RXgoIHBjaFBhdGgsIE5VTEwsIExP
QURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIICk7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAg
ICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKWRsb3BlbihwY2hQYXRoLCBSVExEX0xPQ0FMfFJU
TERfTk9XKTsKLSNlbmRpZgotfQotCi12b2lkICpTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIFNoYXJl
ZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIgKnBjaEZ1bmN0aW9uTmFtZSkKLXsKLSNpZiBkZWZp
bmVkKCBfV0lOMzIpCi0gICAgICAgcmV0dXJuICh2b2lkKilHZXRQcm9jQWRkcmVzcyggKEhNT0RV
TEUpbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAg
cmV0dXJuIGRsc3ltKCBsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOwotI2VuZGlmCi19Ci0KLQotdm9p
ZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICkKLXsKLSAgICAgICBpZiAo
ICFsaWIgKQotICAgICAgICAgICAgICByZXR1cm47Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAg
ICAgIEZyZWVMaWJyYXJ5KCAoSE1PRFVMRSlsaWIgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0g
ICAgICAgZGxjbG9zZSggbGliICk7Ci0jZW5kaWYKLX0KLQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJs
aWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNjNkYmZhYjJiZTgzNjJmODNi
YzIwOTNjMjQyMTRiMjQ3ZmJhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLy89PT09PT09
PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9u
Y2UKLQotdHlwZWRlZiB2b2lkICpTaGFyZWRMaWJIYW5kbGU7Ci0KLVNoYXJlZExpYkhhbmRsZSBT
aGFyZWRMaWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApOwotdm9pZCAqU2hhcmVkTGliX0dl
dEZ1bmN0aW9uKCBTaGFyZWRMaWJIYW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5h
bWUpOwotdm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICk7Ci0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0
b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjkzNzBiMmNk
MWI4YzVhYTRmZDcxMDI5NjJhOWQ0YWJlOGY4ZGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vc3RydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzNyArMCwwIEBACi0v
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNp
bmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOgotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBTdHJpbmdIYXNQcmVm
aXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJl
Zml4ICkKLXsKLSAgICAgICByZXR1cm4gMCA9PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBz
UHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQotYm9vbCBTdHJpbmdIYXNQ
cmVmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1ByZWZpeCApCi17Ci0gICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0
cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQot
Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJp
bmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgp
OwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCi0gICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5n
LnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKLQotICAgICAgIHJl
dHVybiAwID09IHN0cmljbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigp
ICk7Ci19Ci0KLWJvb2wgU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBz
aXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhM
ZW4gPSBzU3VmZml4Lmxlbmd0aCgpOwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxl
biApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNT
dHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZm
aXhMZW4gKTsKLQotICAgICAgIHJldHVybiAwID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19z
dHIoKSwgc1N1ZmZpeC5jX3N0cigpLGNTdWZmaXhMZW4gKTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5n
IFVURjE2dG84KGNvbnN0IHdjaGFyX3QgKiBpbikKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBvdXQ7
Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAm
JiAqaW4gIT0gMDsgKytpbiApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKmluID49IDB4
ZDgwMCAmJiAqaW4gPD0gMHhkYmZmKQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0g
KCgqaW4gLSAweGQ4MDApIDw8IDEwKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYg
KmluIDw9IDB4ZGZmZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0g
KmluIC0gMHhkYzAwOwotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvZGVwb2ludCA9ICppbjsKLQotICAgICAgICAgICAgICAgICAgICAgaWYg
KGNvZGVwb2ludCA8PSAweDdmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBl
bmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHg3ZmYpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFy
PigweGMwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDFmKSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9p
bnQgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNo
YXI+KDB4ZTAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDBmKSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29k
ZXBvaW50ID4+IDYpICYgMHgzZikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
YXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5k
KDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZjAgfCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+IDEyKSAmIDB4M2YpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChj
b2RlcG9pbnQgPj4gNikgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50
ID0gMDsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gb3V0OwotfQot
Ci1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29uc3QgY2hhciAqIGluKQotewotICAgICAgIHN0ZDo6
d3N0cmluZyBvdXQ7Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAg
aW50IGZvbGxvd2luZyA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiAp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKmluOwotICAgICAg
ICAgICAgICBpZiAoY2ggPD0gMHg3ZikKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgY29kZXBvaW50ID0gY2g7Ci0gICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAw
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVw
b2ludCA9IChjb2RlcG9pbnQgPDwgNikgfCAoY2ggJiAweDNmKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLWZvbGxvd2luZzsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGRmKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MWY7Ci0gICAgICAg
ICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UgaWYgKGNoIDw9IDB4ZWYpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgwZjsKLSAgICAgICAgICAgICAgICAgICAgIGZvbGxv
d2luZyA9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7Ci0gICAg
ICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAzOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIGlmIChmb2xsb3dpbmcgPT0gMCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNvZGVwb2ludCA+IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdj
aGFyX3Q+KDB4ZDgwMCArIChjb2RlcG9pbnQgPj4gMTApKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29k
ZXBvaW50ICYgMHgwM2ZmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8d2NoYXJfdD4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAgICBj
b2RlcG9pbnQgPSAwOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotICAgICAgIHJldHVybiBv
dXQ7Ci19Ci0KLQotdm9pZCBzdHJjcHlfc2FmZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5C
dWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApCi17Ci0gICAgICAgcGNoQnVm
ZmVyWyB1bkJ1ZmZlclNpemVCeXRlcyAtIDEgXSA9ICdcMCc7Ci0gICAgICAgc3RybmNweSggcGNo
QnVmZmVyLCBwY2hTb3VyY2UsIHVuQnVmZmVyU2l6ZUJ5dGVzIC0gMSApOwotfQotCi0KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBjb252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJp
bmcgJiBzU3RyaW5nICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzT3V0OwotICAgICAgIHNPdXQu
cmVzZXJ2ZSggc1N0cmluZy5zaXplKCkgKyAxICk7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6
Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJpbmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBw
ZXIoICppICkgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gc091dDsKLX0KLQotCi0vLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQot
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1N0cmluZyApCi17Ci0gICAgICAgc3RkOjpzdHJpbmcgc091dDsKLSAgICAgICBzT3V0
LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOwotICAgICAgIGZvciggc3RkOjpzdHJpbmc6
OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsg
aSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xv
d2VyKCAqaSApICk7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNPdXQ7Ci19Ci0KLQotdWlu
dDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAq
cGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApCi17Ci0gICAgICAgdWludDMyX3QgdW5M
ZW4gPSAodWludDMyX3Qpc1ZhbHVlLmxlbmd0aCgpICsgMTsKLSAgICAgICBpZiggIXBjaEJ1ZmZl
ciB8fCAhdW5CdWZmZXJMZW4gKQotICAgICAgICAgICAgICByZXR1cm4gdW5MZW47Ci0KLSAgICAg
ICBpZiggdW5CdWZmZXJMZW4gPCB1bkxlbiApCi0gICAgICAgewotICAgICAgICAgICAgICBwY2hC
dWZmZXJbMF0gPSAnXDAnOwotICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAg
ICAgICAgICBtZW1jcHkoIHBjaEJ1ZmZlciwgc1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7Ci0gICAg
ICAgfQotCi0gICAgICAgcmV0dXJuIHVuTGVuOwotfQotCi12b2lkIEJ1ZmZlclRvU3RkU3RyaW5n
KCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyTGVuICkKLXsKLSAgICAgICBzRGVzdC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOwot
ICAgICAgIG1lbWNweSggY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hC
dWZmZXIsIHVuQnVmZmVyTGVuICk7Ci0gICAgICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3Qu
Y19zdHIoKSApWyB1bkJ1ZmZlckxlbiBdID0gJ1wwJzsKLX0KLQotLyoqIFJldHVybnMgYSBzdGQ6
OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1
aW50NjRfdCB1bFZhbHVlICkKLXsKLSAgICAgICBjaGFyIGJ1ZlsgMjIgXTsKLSNpZiBkZWZpbmVk
KCBfV0lOMzIgKQotICAgICAgIHNwcmludGZfcyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKLSNl
bHNlCi0gICAgc25wcmludGYoIGJ1Ziwgc2l6ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25n
IHVuc2lnbmVkIGludCApIHVsVmFsdWUgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBidWY7Ci19
Ci0KLQotLyoqIHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCi11aW50NjRfdCBT
dHJpbmdUb1VpbnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKQotewotICAgICAgIHJl
dHVybiBzdHJ0b3VsbCggc1ZhbHVlLmNfc3RyKCksIE5VTEwsIDAgKTsKLX0KLQotLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJp
YyB2YWx1ZSB0byBhIGhleCBkaWdpdCwgdmFsdWUgc2hvdWxkIGJlIDAtMTUuCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1jaGFyIGNJbnRUb0hleERpZ2l0KCBpbnQgblZhbHVlICkKLXsKLSAgICAg
ICAvL0Fzc2VydCggblZhbHVlID49IDAgJiYgblZhbHVlIDw9IDE1ICk7Ci0gICAgICAgcmV0dXJu
ICIwMTIzNDU2Nzg5QUJDREVGIlsgblZhbHVlICYgMTUgXTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFs
dWUgdG8gbnVtZXJpYywgcmV0dXJuIC0xIGlmIHRoZSBjaGFyCi0vLyAgICAgICAgICBpcyBub3Qg
YSB2YWxpZCBoZXggZGlnaXQuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbnQgaUhleENoYXJU
b0ludCggY2hhciBjVmFsdWUgKQotewotICAgICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOwot
ICAgICAgIGlmICggKHVpbnQzMl90KSggaVZhbHVlIC0gJzAnICkgPCAxMCApCi0gICAgICAgICAg
ICAgIHJldHVybiBpVmFsdWUgLSAnMCc7Ci0KLSAgICAgICBpVmFsdWUgfD0gMHgyMDsKLSAgICAg
ICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAtICdhJyApIDwgNiApCi0gICAgICAgICAgICAgIHJl
dHVybiBpVmFsdWUgLSAnYScgKyAxMDsKLQotICAgICAgIHJldHVybiAtMTsKLX0KLQotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2Yg
ZW5jb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0IFJGQyBtYW5uZXIsIG9yCi0vLyAgICAgICAgICB3
aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtlIEhUTUwgZm9ybSBlbmNvZGluZy4KLS8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9VUkxFbmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwg
aW50IG5EZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29s
IGJVc2VQbHVzRm9yU3BhY2UgKQotewotICAgICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMq
blNvdXJjZUxlbiwgIlRhcmdldCBidWZmZXIgZm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBz
b3VyY2UgbGVuZ3RoLCBwbHVzIG9uZSBmb3IgdGVybWluYXRpbmcgbnVsbFxuIiApOwotICAgICAg
IAotICAgICAgIGludCBpRGVzdFBvcyA9IDA7Ci0gICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5T
b3VyY2VMZW47ICsraSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdl
IG5lZWQgMyBhZGRpdGlvbmFsIGNoYXJzCi0gICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykg
PiBuRGVzdExlbiAgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hE
ZXN0WzBdID0gJ1wwJzsKLS8vICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwg
IlRhcmdldCBidWZmZXIgdG9vIHNob3J0XG4iICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEt
eiwgQS1aLCAwLTksIHBlcmlvZCwgdW5kZXJzY29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91
Z2ggdW5lc2NhcGVkLgotICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMg
YWxsb3dlZCBieSBib3RoIHRoZSBvcmlnaW5hbCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMg
Mzk4Ni4KLSAgICAgICAgICAgICAgLy8gQ3VycmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0
IHRoYXQgaXMgZm9yYmlkZGVuIHVuZGVyIG9yaWdpbmFsIFJGQyAxNzM4LgotICAgICAgICAgICAg
ICBpZiAoICEoIHBjaFNvdXJjZVtpXSA+PSAnYScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYm
ICEoIHBjaFNvdXJjZVtpXSA+PSAnQScgJiYgcGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNo
U291cmNlW2ldID49ICcwJyAmJiBwY2hTb3VyY2VbaV0gPD0gJzknICkKLSAgICAgICAgICAgICAg
ICAgICAgICAmJiBwY2hTb3VyY2VbaV0gIT0gJy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYg
cGNoU291cmNlW2ldICE9ICcuJyAgICAgICAKLSAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291
cmNlW2ldID09ICcgJyApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcrJzsKLSAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ld
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlID09IDAgKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
ciBjSGV4RGlnaXQxID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSAlIDE2ICk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAvPSAxNjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1
ZSApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9z
KytdID0gY0hleERpZ2l0MjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNo
RGVzdFtpRGVzdFBvcysrXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtp
RGVzdFBvcysrXSA9IHBjaFNvdXJjZVtpXTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIGlmKCAoaURlc3RQb3MrMSkgPiBuRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAg
ICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNl
LCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hvcnQgdG8gdGVybWluYXRlXG4iICk7Ci0gICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICB9Ci0KLSAgICAgICAvLyBOdWxsIHRlcm1pbmF0ZQotICAgICAg
IHBjaERlc3RbaURlc3RQb3MrK10gPSAwOwotfQotCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IEludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4g
dGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgotLy8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVk
IHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2RpbmcuCi0vLwotLy8gICAgICAgICAgICAgICAgICAg
ICBSZXR1cm5zIHRoZSBhbW91bnQgb2Ygc3BhY2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4K
LS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNpemVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFy
ICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29k
ZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkK
LXsKLSAgICAgICBpZiAoIG5EZWNvZGVEZXN0TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVl
ZHMgYSBkZXN0IGJ1ZmZlciBhdCBsZWFzdCBhcyBsYXJnZSBhcyB0aGUgc291cmNlIiApOwotICAg
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICB9Ci0KLSAgICAgICBpbnQgaURlc3RQb3MgPSAw
OwotICAgICAgIGZvciggaW50IGk9MDsgaSA8IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRT
b3VyY2VbaV0gPT0gJysnICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyAnOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UgaWYgKCBwY2hFbmNvZGVkU291cmNlW2ldID09ICclJyApCi0gICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVu
Y29kZWQgdmFsdWUsIGxvb2sgYWhlYWQgZm9yIHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1l
cmljLCBhbmQgdXNlIHRoYXQKLQotICAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBz
dXJlIHdlIGhhdmUgMiBtb3JlIGNoYXJzCi0gICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBu
RW5jb2RlZFNvdXJjZUxlbiAtIDIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsx
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNv
ZGVkU291cmNlW2krMl07Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRo
ZSBjaGFycyBpbnRvIGEgaGV4IHZhbHVlLCBpZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2Un
bGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0
aGUgZm9sbG93aW5nIHR3byBjaGFycyBkaXJlY3QgaW50byB0aGUgc3RyaW5nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBo
YXBwZW4sIHdobyBrbm93cyB3aGF0IGJhZCBjbGllbnRzCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gbWF5IGRvIHdpdGggZW5jb2RpbmcuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBiVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
aVZhbHVlID0gaUhleENoYXJUb0ludCggY0hleERpZ2l0MSApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICggaVZhbHVlICE9IC0xICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRv
SW50KCBjSGV4RGlnaXQyICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICggaVZhbHVlMiAhPSAtMSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFs
dWUyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2Rl
RGVzdFsgaURlc3RQb3MrKyBdID0gKGNoYXIpaVZhbHVlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYlZhbGlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICggIWJWYWxpZCApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVE
ZXN0WyBpRGVzdFBvcysrIF0gPSAnJSc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNI
ZXhEaWdpdDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGFoZWFkCi0gICAgICAgICAg
ICAgICAgICAgICBpICs9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVz
dFBvcysrIF0gPSBwY2hFbmNvZGVkU291cmNlW2ldOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
fQotCi0gICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5h
dGUsIHNpbmNlIHRoaXMgY2FuIGJlIHVzZWQgb24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbwotICAg
ICAgIC8vIGdvIGFoZWFkIGFuZCBkbyBpdCBhcyB0aGlzIGNhbiBhdm9pZCBidWdzLgotICAgICAg
IGlmICggaURlc3RQb3MgPCBuRGVjb2RlRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAgICAg
ICBwY2hEZWNvZGVEZXN0W2lEZXN0UG9zXSA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IChzaXplX3QpaURlc3RQb3M7Ci19Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBv
c2U6IEVuY29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBm
b3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNp
b24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNl
cyArIGZvciBzcGFjZSBhcyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9y
bSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8v
ICAgICAgICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3Vy
Y2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi12b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNv
bnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKQotewotICAgICAgIHJldHVybiBW
X1VSTEVuY29kZUludGVybmFsKCBwY2hEZXN0LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNl
TGVuLCB0cnVlICk7Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
RGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1h
dCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBv
ZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsg
Zm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVu
Y29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwotLy8gICAg
ICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBi
dWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAgICAgICAg
ICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29k
ZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURl
c3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxl
biApCi17Ci0gICAgICAgcmV0dXJuIFZfVVJMRGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3Qs
IG5EZWNvZGVEZXN0TGVuLCBwY2hFbmNvZGVkU291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1
ZSApOwotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZfU3RyaXBFeHRlbnNpb24o
IHN0ZDo6c3RyaW5nICZpbiApCi17Ci0gICAgICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0
J3MgZm9sbG93ZWQgYnkgYSBkb3Qgb3IgYSBzbGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKLSAg
ICAgICAvLyBkaXJlY3Rvcnkgc3BlY2lmaWVyIGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCi0g
ICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOwotICAg
ICAgIGlmICggdGVzdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCi0gICAgICAgewotICAgICAgICAg
ICAgICAvLyBUaGlzIGhhbmRsZXMgdGhpbmdzIGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWls
LmNvbVxhYmNcZGVmXGdlaCIKLSAgICAgICAgICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNl
IHdpbmQgdXAgd2l0aCAiIiBhbmQgImM6XG15QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgotICAgICAg
ICAgICAgICBpZiAoIGluLnJmaW5kKCAnXFwnICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8
IHRlc3QgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUo
IHRlc3QgKTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjNlNTRhMjhjNzM0Yjc3ZjkyZjc3ODM0NmEz
YTZhODVjNjRmMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmlnaHQg
VmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSA8c3RyaW5nPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgot
Ci0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBwcmVmaXggKi8KLWJvb2wg
U3RyaW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc1ByZWZpeCApOwotYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0aXZlKCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCAp
OwotCi0vKiogcmV0dXJucyBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgc3VmZml4ICovCi1ib29sIFN0
cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzU3VmZml4ICk7Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApOwotCi0v
KiogY29udmVydHMgYSBVVEYtMTYgc3RyaW5nIHRvIGEgVVRGLTggc3RyaW5nICovCi1zdGQ6OnN0
cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pOwotCi0vKiogY29udmVydHMgYSBVVEYt
OCBzdHJpbmcgdG8gYSBVVEYtMTYgc3RyaW5nICovCi1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29u
c3QgY2hhciAqIGluKTsKLSNkZWZpbmUgVXRmMTZGcm9tVXRmOCBVVEY4dG8xNgotCi0vKiogc2Fm
ZWx5IGNvcHkgYSBzdHJpbmcgaW50byBhIGJ1ZmZlciAqLwotdm9pZCBzdHJjcHlfc2FmZSggY2hh
ciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSApOwotdGVtcGxhdGU8IHNpemVfdCBidWZmZXJTaXplID4KLXZvaWQgc3RyY3B5X3NhZmUo
IGNoYXIgKCYgYnVmZmVyKSBbIGJ1ZmZlclNpemUgXSwgY29uc3QgY2hhciAqcGNoU291cmNlICkg
Ci17Ci0gICAgICAgc3RyY3B5X3NhZmUoIGJ1ZmZlciwgYnVmZmVyU2l6ZSwgcGNoU291cmNlICk7
Ci19Ci0KLQotLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UgKi8KLXN0ZDo6c3Ry
aW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApOwotCi0vKiog
Y29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZSAqLwotc3RkOjpzdHJpbmcgU3RyaW5nVG9M
b3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7Ci0KLS8vIHdlIHN0cmljbXAgKGZy
b20gV0lOKSBidXQgaXQgaXNuJ3QgUE9TSVggLSBPU1gvTElOVVggaGF2ZSBzdHJjYXNlY21wIHNv
IGp1c3QgaW5saW5lIGJyaWRnZSB0byBpdAotI2lmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQo
IExJTlVYICkKLSNpbmNsdWRlIDxzdHJpbmdzLmg+Ci1pbmxpbmUgaW50IHN0cmljbXAoY29uc3Qg
Y2hhciAqcFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyKSB7IHJldHVybiBzdHJjYXNlY21wKHBTdHIx
LHBTdHIyKTsgfQotI2RlZmluZSBfc3RyaWNtcCBzdHJpY21wCi1pbmxpbmUgaW50IHN0cm5pY21w
KCBjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIsIHNpemVfdCB1bkJ1ZmZlckxl
biApIHsgcmV0dXJuIHN0cm5jYXNlY21wKCBwU3RyMSxwU3RyMiwgdW5CdWZmZXJMZW4gKTsgfQot
I2RlZmluZSBfc3RybmljbXAgc3RybmljbXAKLQotI2RlZmluZSBfdnNucHJpbnRmX3MgdnNucHJp
bnRmCi0KLSNkZWZpbmUgX1RSVU5DQVRFICgoc2l6ZV90KS0xKQotCi0jZW5kaWYKLQotI2lmIGRl
ZmluZWQoIE9TWCApCi0vLyBiZWhhdmlvcnMgZW5zdXJlIE5VTEwtdGVybWluYXRpb24gYXQgbGVh
c3QgYXMgd2VsbCBhcyBfVFJVTkNBVEUgZG9lcywgYnV0Ci0vLyB3Y3NuY3B5X3Mvc3RybmNweV9z
IGNhbiBub24tTlVMTC10ZXJtaW5hdGUsIHdjc2xjcHkvc3RybGNweSBjYW4gbm90LgotaW5saW5l
IGVycm5vX3Qgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1l
bnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBy
ZXR1cm4gd2NzbGNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMpOwotfQot
Ci1pbmxpbmUgZXJybm9fdCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9m
RWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQotewotICAgICAg
IHJldHVybiBzdHJsY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci19
Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZCggTElOVVggKQotLy8gdGhpcyBpbXBsZW1lbnRhdGlv
biBkb2VzIG5vdCByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGRlc3RpbmF0aW9uIHdhcyAKLS8v
IHRydW5jYXRlZCwgYnV0IHRoYXQgaXMgc3RyYWlnaHRmb3J3YXJkIHRvIGZpeCBpZiBhbnlib2R5
IGFjdHVhbGx5IG5lZWRzIHRoZQotLy8gcmV0dXJuIGNvZGUuIAotI2luY2x1ZGUgInN0cmluZy5o
IgotaW5saW5lIHZvaWQgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAg
ICAgICB3Y3NuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAg
ICAgc3RyRGVzdFtudW1iZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotaW5saW5lIHZvaWQg
c3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBjb25zdCBj
aGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBzdHJuY3B5KHN0ckRlc3Qs
IHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAgICAgc3RyRGVzdFtudW1iZXJPZkVs
ZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKCBfV0lOMzIgKSAm
JiBfTVNDX1ZFUiA8IDE4MDAKLWlubGluZSB1aW50NjRfdCBzdHJ0b3VsbChjb25zdCBjaGFyICpz
dHIsIGNoYXIgKiplbmRwdHIsIGludCBiYXNlKSB7IHJldHVybiBfc3RydG91aTY0KCBzdHIsIGVu
ZHB0ciwgYmFzZSApOyB9Ci0jZW5kaWYKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEgc3RkOjpzdHJp
bmcgaW50byBhIGJ1ZmZlciBhcyB3b3VsZCBiZSBwcm92aWRlZCBpbiBhbiBBUEkgKi8KLXVpbnQz
Ml90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUsIGNoYXIgKnBj
aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEg
YnVmZmVyIGludG8gYW4gc3RkOjpzdHJpbmcgYW5kIGF1dG8gYWRkcyBudWxsIHRlcm1pbmF0b3Ig
Ki8KLXZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNvbnN0IGNo
YXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyoqIFJldHVybnMgYSBz
dGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5n
KCB1aW50NjRfdCB1bFZhbHVlICk7Ci0KLS8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJvbSBhIHN0
cmluZyAqLwotdWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Zh
bHVlICk7Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IEVuY29kZXMgYSBz
dHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMx
NzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwg
aXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBh
cyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVz
cGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8vICAgICAgICAgIERlc3Qg
YnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1
YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZf
VVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSwgaW50IG5Tb3VyY2VMZW4gKTsKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVy
cG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5n
IGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVy
c2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1
c2VzICsgZm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBm
b3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwot
Ly8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNv
dXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAg
ICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIg
KGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRl
Y29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNv
dXJjZUxlbiApOwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBzdHJpcCBl
eHRlbnNpb24gZnJvbSBhIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9TdHJp
cEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICk7Ci0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGYzMDQyNGE5ZmYzNjFjODM2
ZjlhNGMwOGNmYTY4NDZhYWQzN2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQxMSArMCwwIEBACi0vLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLQotI2lu
Y2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgotI2luY2x1ZGUgImpzb24vanNvbi5oIgot
I2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJs
aWMuaCIKLSNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJkaXJ0b29sc19w
dWJsaWMuaCIKLQotI2lmIGRlZmluZWQoIFdJTjMyICkKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0j
aW5jbHVkZSA8c2hsb2JqLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCi0jZWxp
ZiBkZWZpbmVkIE9TWAotI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2luY2x1
ZGUgPEFwcEtpdC9BcHBLaXQuaD4KLSNlbGlmIGRlZmluZWQoTElOVVgpCi0jaW5jbHVkZSA8ZGxm
Y24uaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2VuZGlmCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+
Ci0KLSNpZm5kZWYgVlJMb2cKLSAgICAgICAjaWYgZGVmaW5lZCggX19NSU5HVzMyX18gKQotICAg
ICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgYXJncykKLSAgICAgICAjZWxpZiBkZWZpbmVkKCBXSU4zMiApCi0gICAgICAgICAgICAg
ICNkZWZpbmUgVlJMb2coZm10LCAuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgZm10
LCBfX1ZBX0FSR1NfXykKLSAgICAgICAjZWxzZQotICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9n
KGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKLSAgICAgICAjZW5k
aWYKLSNlbmRpZgotCi0vKiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBz
eXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBjb25maWcgZGF0YSBpbiAqLwotc3RhdGljIHN0
ZDo6c3RyaW5nIEdldEFwcFNldHRpbmdzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQot
ICAgICAgIFdDSEFSIHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmKCAhU1VDQ0VFREVE
KCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9MT0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxB
R19DUkVBVEUsIE5VTEwsIDAsIHJ3Y2hQYXRoICkgKSApCi0gICAgICAgewotICAgICAgICAgICAg
ICByZXR1cm4gIiI7Ci0gICAgICAgfQotCi0gICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBV
VEYtOCBhbmQgc3RvcmUgaW4gdGhlIG91dHB1dAotICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0
aCA9IFVURjE2dG84KCByd2NoUGF0aCApOwotCi0gICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKLSNl
bGlmIGRlZmluZWQoIE9TWCApCi0gICAgICAgc3RkOjpzdHJpbmcgc1NldHRpbmdzRGlyOwotICAg
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgICAvLyBTZWFyY2ggZm9yIHRoZSBw
YXRoCi0gICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0
b3JpZXNJbkRvbWFpbnMoIE5TQXBwbGljYXRpb25TdXBwb3J0RGlyZWN0b3J5LCBOU1VzZXJEb21h
aW5NYXNrLCBZRVMgKTsKLSAgICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIE5TU3RyaW5nICpyZXNvbHZl
ZFBhdGggPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTsKLSAgICAgICAgICAgICAgcmVzb2x2ZWRQ
YXRoID0gW3Jlc29sdmVkUGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6IEAiT3Bl
blZSIl07Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICBpZiAoICFbW05TRmlsZU1hbmFn
ZXIgbmV3XSBjcmVhdGVEaXJlY3RvcnlBdFBhdGg6IHJlc29sdmVkUGF0aCB3aXRoSW50ZXJtZWRp
YXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF0gKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIHNTZXR0aW5nc0Rpci5hc3NpZ24oIFtyZXNv
bHZlZFBhdGggVVRGOFN0cmluZ10gKTsKLSAgICAgICB9Ci0gICAgICAgcmV0dXJuIHNTZXR0aW5n
c0RpcjsKLSNlbGlmIGRlZmluZWQoIExJTlVYICkKLQotICAgICAgIC8vIEFzIGRlZmluZWQgYnkg
WERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb24gCi0gICAgICAgLy8gaHR0cHM6Ly9zcGVj
aWZpY2F0aW9ucy5mcmVlZGVza3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRl
c3QuaHRtbAotCi0gICAgICAgY29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVudigiWERHX0NPTkZJ
R19IT01FIik7Ci0gICAgICAgaWYgKCAoIHBjaEhvbWUgIT0gTlVMTCkgJiYgKCBwY2hIb21lWzBd
ICE9ICdcMCcgKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gcGNoSG9tZTsKLSAg
ICAgICB9Ci0KLSAgICAgICAvLwotICAgICAgIC8vIFhER19DT05GSUdfSE9NRSBpcyBub3QgZGVm
aW5lZCwgdXNlIH4vLmNvbmZpZyBpbnN0ZWFkCi0gICAgICAgLy8gCi0gICAgICAgcGNoSG9tZSA9
IGdldGVudiggIkhPTUUiICk7Ci0gICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLQotICAgICAgIHN0ZDo6c3Ry
aW5nIHNVc2VyUGF0aCggcGNoSG9tZSApOwotICAgICAgIHNVc2VyUGF0aCA9IFBhdGhfSm9pbigg
c1VzZXJQYXRoLCAiLmNvbmZpZyIgKTsKLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2Vsc2UK
LSAgICAgICAjd2FybmluZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnN0cnVjdG9yCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUNWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJs
aWMoKQotewotCi19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29tcHV0
ZXMgdGhlIHJlZ2lzdHJ5IGZpbGVuYW1lCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3Ry
aW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgoKQotewotICAg
ICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoID0gR2V0QXBwU2V0dGluZ3NQYXRoKCk7Ci0gICAg
ICAgaWYoIHNDb25maWdQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0K
LSNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBMSU5VWCApCi0gICAgICAgc0NvbmZp
Z1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRoLCAib3BlbnZyIiApOwotI2VsaWYgZGVmaW5l
ZCAoIE9TWCApIAotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwg
Ii5vcGVudnIiICk7Ci0jZWxzZQotICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9y
bSIKLSNlbmRpZgotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzQ29uZmln
UGF0aCApOwotICAgICAgIHJldHVybiBzQ29uZmlnUGF0aDsKLX0KLQotCi0KLS8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6Ci0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0
cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCkK
LXsKLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKLSAg
ICAgICBpZiAoIHNQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSNp
ZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9w
ZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbGlmIGRlZmluZWQgKCBQT1NJWCApIAotICAgICAgIHNQ
YXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbHNlCi0g
ICAgICAgI2Vycm9yICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKLSNlbmRpZgotICAgICAgIHNQYXRo
ID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOwotICAgICAgIHJldHVybiBzUGF0aDsKLX0KLQot
Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnZlcnRzIEpTT04gdG8gYSBo
aXN0b3J5IGFycmF5Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0YXRpYyB2b2lkIFBhcnNlU3Ry
aW5nTGlzdEZyb21Kc29uKCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiAqcHZlY0hpc3Rvcnks
IGNvbnN0IEpzb246OlZhbHVlICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlOYW1lICkKLXsK
LSAgICAgICBpZiggIXJvb3QuaXNNZW1iZXIoIHBjaEFycmF5TmFtZSApICkKLSAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgY29uc3QgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290
WyBwY2hBcnJheU5hbWUgXTsKLSAgICAgICBpZiggIWFycmF5Tm9kZSApCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUkxvZyggIlZSIFBhdGggUmVnaXN0cnkgbm9kZSAlcyBpcyBub3QgYW4gYXJy
YXlcbiIsIHBjaEFycmF5TmFtZSApOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgfQot
Ci0gICAgICAgcHZlY0hpc3RvcnktPmNsZWFyKCk7Ci0gICAgICAgcHZlY0hpc3RvcnktPnJlc2Vy
dmUoIGFycmF5Tm9kZS5zaXplKCkgKTsKLSAgICAgICBmb3IoIHVpbnQzMl90IHVuSW5kZXggPSAw
OyB1bkluZGV4IDwgYXJyYXlOb2RlLnNpemUoKTsgdW5JbmRleCsrICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoKCBhcnJheU5vZGVbIHVuSW5kZXggXS5hc1N0cmlu
ZygpICk7Ci0gICAgICAgICAgICAgIHB2ZWNIaXN0b3J5LT5wdXNoX2JhY2soIHNQYXRoICk7Ci0g
ICAgICAgfQotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29udmVy
dHMgYSBoaXN0b3J5IGFycmF5IHRvIEpTT04KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RhdGlj
IHZvaWQgU3RyaW5nTGlzdFRvSnNvbiggY29uc3Qgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4g
JiB2ZWNIaXN0b3J5LCBKc29uOjpWYWx1ZSAmIHJvb3QsIGNvbnN0IGNoYXIgKnBjaEFycmF5TmFt
ZSApCi17Ci0gICAgICAgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5h
bWUgXTsKLSAgICAgICBmb3IoIGF1dG8gaSA9IHZlY0hpc3RvcnkuYmVnaW4oKTsgaSAhPSB2ZWNI
aXN0b3J5LmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYXJyYXlOb2RlLmFw
cGVuZCggKmkgKTsKLSAgICAgICB9Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8g
UHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYzo6VG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKQotewotICAgICAg
IHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAg
ICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIAotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdpc3RyeUNvbnRlbnRzID0gUGF0aF9SZWFk
VGV4dEZpbGUoIHNSZWdQYXRoICk7Ci0gICAgICAgaWYoIHNSZWdpc3RyeUNvbnRlbnRzLmVtcHR5
KCkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICBzSnNvblN0cmluZyA9
IHNSZWdpc3RyeUNvbnRlbnRzOwotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBMb2FkcyB0aGUgY29uZmlnIGZpbGUgZnJvbSBp
dHMgd2VsbCBrbm93biBsb2NhdGlvbgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29sIENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUoKQotewotICAgICAgIHN0ZDo6c3RyaW5n
IHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVn
UGF0aC5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRv
IGRldGVybWluZSBWUiBQYXRoIFJlZ2lzdHJ5IGZpbGVuYW1lXG4iICk7Ci0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlD
b250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVnUGF0aCApOwotICAgICAgIGlmKCBzUmVn
aXN0cnlDb250ZW50cy5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAi
VW5hYmxlIHRvIHJlYWQgVlIgUGF0aCBSZWdpc3RyeSBmcm9tICVzXG4iLCBzUmVnUGF0aC5jX3N0
cigpICk7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBK
c29uOjpWYWx1ZSByb290OwotICAgICAgIEpzb246OlJlYWRlciByZWFkZXI7Ci0KLSAgICAgICBp
ZiggIXJlYWRlci5wYXJzZSggc1JlZ2lzdHJ5Q29udGVudHMsIHJvb3QgKSApCi0gICAgICAgewot
ICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBwYXJzZSAlczogJXNcbiIsIHNSZWdQYXRo
LmNfc3RyKCksIHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuY19zdHIoKSApOwot
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAgUGFyc2VTdHJp
bmdMaXN0RnJvbUpzb24oICZtX3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsKLSAg
ICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNv
bmZpZyIgKTsKLSAgICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjTG9nUGF0aCwg
cm9vdCwgImxvZyIgKTsKLSAgICAgICBpZiAocm9vdC5pc01lbWJlciggImV4dGVybmFsX2RyaXZl
cnMiICkgJiYgcm9vdFsgImV4dGVybmFsX2RyaXZlcnMiIF0uaXNBcnJheSgpICkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNFeHRlcm5hbERy
aXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB0cnVlOwotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogU2F2
ZXMgdGhlIGNvbmZpZyBmaWxlIHRvIGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUoKSBj
b25zdAotewotI2lmIGRlZmluZWQoIERBU0hCT0FSRF9CVUlMRF9NT0RFICkKLSAgICAgICByZXR1
cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRo
UmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIAotICAgICAgIEpzb246OlZhbHVlIHJvb3Q7
Ci0gICAgICAgCi0gICAgICAgcm9vdFsgInZlcnNpb24iIF0gPSAxOwotICAgICAgIHJvb3RbICJq
c29uaWQiIF0gPSAidnJwYXRocmVnIjsKLQotICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVj
UnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwotICAgICAgIFN0cmluZ0xpc3RUb0pzb24o
IG1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIgKTsKLSAgICAgICBTdHJpbmdMaXN0VG9K
c29uKCBtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7Ci0gICAgICAgU3RyaW5nTGlzdFRvSnNv
biggbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotCi0g
ICAgICAgSnNvbjo6U3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgICAgICBzdGQ6OnN0cmluZyBzUmVn
aXN0cnlDb250ZW50cyA9IHdyaXRlci53cml0ZSggcm9vdCApOwotCi0gICAgICAgLy8gbWFrZSBz
dXJlIHRoZSBkaXJlY3Rvcnkgd2UncmUgd3JpdGluZyBpbnRvIGFjdHVhbGx5IGV4aXN0cwotICAg
ICAgIHN0ZDo6c3RyaW5nIHNSZWdEaXJlY3RvcnkgPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHNSZWdQ
YXRoICk7Ci0gICAgICAgaWYoICFCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBzUmVnRGlyZWN0
b3J5LmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byBjcmVhdGUgcGF0aCByZWdpc3RyeSBkaXJlY3RvcnkgJXNcbiIsIHNSZWdEaXJlY3RvcnkuY19z
dHIoKSApOwotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAg
aWYoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc1JlZ1BhdGgsIHNSZWdpc3RyeUNvbnRl
bnRzLmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byB3cml0ZSBWUiBwYXRoIHJlZ2lzdHJ5IHRvICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7Ci0g
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdHJ1
ZTsKLSNlbmRpZgotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0
dXJucyB0aGUgY3VycmVudCBydW50aW1lIHBhdGggb3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZp
Z3VyZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoKCkgY29uc3QKLXsKLSAgICAgICBpZiggbV92ZWNSdW50
aW1lUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjUnVudGltZVBhdGguZnJvbnQoKS5jX3N0cigpOwot
fQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3Vy
cmVudCBjb25maWcgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0
Q29uZmlnUGF0aCgpIGNvbnN0Ci17Ci0gICAgICAgaWYoIG1fdmVjQ29uZmlnUGF0aC5lbXB0eSgp
ICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
cmV0dXJuIG1fdmVjQ29uZmlnUGF0aC5mcm9udCgpLmNfc3RyKCk7Ci19Ci0KLQotLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvZyBwYXRoIG9y
IE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1z
dGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoKCkgY29uc3QKLXsK
LSAgICAgICBpZiggbV92ZWNMb2dQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4g
IiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gbV92ZWNMb2dQYXRoLmZyb250
KCkuY19zdHIoKTsKLX0KLQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
UmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHByb3ZpZGVkIG92
ZXJyaWRlIAotLy8gICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuIFBhc3MgTlVMTCBmb3IgYW55
IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29s
IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1l
UGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmlnUGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwg
Y29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRo
T3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyAp
Ci17Ci0gICAgICAgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYyBwYXRoUmVnOwotICAgICAgIGJvb2wg
YkxvYWRlZFJlZ2lzdHJ5ID0gcGF0aFJlZy5CTG9hZEZyb21GaWxlKCk7Ci0gICAgICAgaW50IG5D
b3VudEVudmlyb25tZW50VmFyaWFibGVzID0gMDsKLQotICAgICAgIGlmKCBwc1J1bnRpbWVQYXRo
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgg
a19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSBHZXRFbnZpcm9ubWVudFZh
cmlhYmxlKCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAg
bkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRSdW50aW1lUGF0aCgpLmVtcHR5KCkgKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IHBhdGhSZWcu
R2V0UnVudGltZVBhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gIiI7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0KLSAgICAgICBpZiggcHNDb25maWdQYXRoICkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19w
Y2hDb25maWdPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJs
ZSgga19wY2hDb25maWdPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAgbkNvdW50
RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBl
bHNlIGlmKCBwY2hDb25maWdQYXRoT3ZlcnJpZGUgKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gcGNoQ29uZmlnUGF0aE92ZXJyaWRlOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldENvbmZpZ1Bh
dGgoKS5lbXB0eSgpICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBz
Q29uZmlnUGF0aCA9IHBhdGhSZWcuR2V0Q29uZmlnUGF0aCgpOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
KnBzQ29uZmlnUGF0aCA9ICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAg
aWYoIHBzTG9nUGF0aCApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKTsKLSAgICAgICAgICAgICAgICAgICAg
IG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgZWxzZSBpZiggcGNoTG9nUGF0aE92ZXJyaWRlICkKLSAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IHBjaExvZ1BhdGhPdmVycmlkZTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRMb2dQYXRoKCku
ZW1wdHkoKSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1Bh
dGggPSBwYXRoUmVnLkdldExvZ1BhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGgg
PSAiIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQotICAgICAgIGlmICggcHZlY0V4dGVy
bmFsRHJpdmVycyApCi0gICAgICAgewotICAgICAgICAgICAgICAqcHZlY0V4dGVybmFsRHJpdmVy
cyA9IHBhdGhSZWcubV92ZWNFeHRlcm5hbERyaXZlcnM7Ci0gICAgICAgfQotCi0gICAgICAgaWYg
KCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9PSAzICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIC8vIGFsbCB0aHJlZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlcmUgc2V0LCBzbyB3ZSBk
b24ndCBuZWVkIHRoZSBwaHlzaWNhbCBmaWxlCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiBiTG9hZGVkUmVnaXN0cnk7Ci19Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlf
cHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJl
Z2lzdHJ5X3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjBkZTU2Zjlk
ZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vdnJwYXRocmVnaXN0cnlfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNp
bmNsdWRlIDxzdGRpbnQuaD4KLQotc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoUnVudGltZU92ZXJy
aWRlVmFyID0gIlZSX09WRVJSSURFIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaENvbmZpZ092
ZXJyaWRlVmFyID0gIlZSX0NPTkZJR19QQVRIIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaExv
Z092ZXJyaWRlVmFyID0gIlZSX0xPR19QQVRIIjsKLQotY2xhc3MgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYwotewotcHVibGljOgotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRWUlBhdGhSZWdp
c3RyeUZpbGVuYW1lKCk7Ci0gICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE9wZW5WUkNvbmZp
Z1BhdGgoKTsKLQotcHVibGljOgotICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKTsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUg
cHJvdmlkZWQgb3ZlcnJpZGUgdmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9u
J3QgY2FyZSBhYm91dC4gCi0gICAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBwYXRoIHJlZ2lz
dHJ5IGNvdWxkIG5vdCBiZSByZWFkLiBWYWxpZCBwYXRocyBtaWdodCBzdGlsbCBiZSByZXR1cm5l
ZCBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCi0gICAgICAgc3RhdGljIGJvb2wg
R2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRpbWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25m
aWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRoLCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRo
T3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1BhdGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJzID0gTlVMTCApOwotCi0gICAgICAgYm9vbCBC
TG9hZEZyb21GaWxlKCk7Ci0gICAgICAgYm9vbCBCU2F2ZVRvRmlsZSgpIGNvbnN0OwotCi0gICAg
ICAgYm9vbCBUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApOwotCi0gICAg
ICAgLy8gbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgdmFsdWVzCi0gICAgICAgc3RkOjpzdHJp
bmcgR2V0UnVudGltZVBhdGgoKSBjb25zdDsKLSAgICAgICBzdGQ6OnN0cmluZyBHZXRDb25maWdQ
YXRoKCkgY29uc3Q7Ci0gICAgICAgc3RkOjpzdHJpbmcgR2V0TG9nUGF0aCgpIGNvbnN0OwotCi1w
cm90ZWN0ZWQ6Ci0gICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiBTdHJp
bmdWZWN0b3JfdDsKLQotICAgICAgIC8vIGluZGV4IDAgaXMgdGhlIGN1cnJlbnQgc2V0dGluZwot
ICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjUnVudGltZVBhdGg7Ci0gICAgICAgU3RyaW5nVmVj
dG9yX3QgbV92ZWNMb2dQYXRoOwotICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjQ29uZmlnUGF0
aDsKLQotICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBleHRlcm5hbCBkcml2ZXJzCi0gICAgICAgU3Ry
aW5nVmVjdG9yX3QgbV92ZWNFeHRlcm5hbERyaXZlcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4NjEyODNkMzlkODdmN2U5ZjEwOGU4ZTlhYTIxNDc2ZTU3YTBmMzk0Li5kOGUwNGU5MGFj
ZWQ4YWM2YzlkZWNlMjU2NzIzYTk1NWZiNzI1OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NjgsNyArNjgsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy93ZWJzb2NrZXRzIgotICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAgICIk
e1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYW5pbWF0aW9uIgpAQCAt
MjE1LDcgKzIxNCw2IEBAIHNldChXZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UKICAgICBNb2R1bGVzL3dlYmdwdQogICAgIE1vZHVsZXMvd2Vic29ja2V0cwotICAg
IE1vZHVsZXMvd2VidnIKIAogICAgIGJpbmRpbmdzL2pzCiAKQEAgLTU1OCwyMCArNTU2LDYgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvQ2xv
c2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAogCi0gICAg
TW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwKLSAgICBNb2R1bGVzL3dlYnZyL05hdmln
YXRvcldlYlZSLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotICAgIE1vZHVs
ZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJE
aXNwbGF5RXZlbnQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5p
ZGwKLSAgICBNb2R1bGVzL3dlYnZyL1ZSRXllLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSAgICBN
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9W
UlN0YWdlUGFyYW1ldGVycy5pZGwKLQogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJv
bGUuaWRsCiAgICAgYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwKIApAQCAtMTE5Myw4
ICsxMTc3LDYgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICAgICBNb2R1bGVzL2dhbWVwYWQv
R2FtZXBhZEJ1dHRvbi5pZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5p
ZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsCi0KLSAgICAg
ICAgTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCiAgICAgKQogCiAgICAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCkBAIC0xNTY0LDEyICsxNTQ2LDYgQEAgaWYgKEVOQUJMRV9VU0VS
X01FU1NBR0VfSEFORExFUlMpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0g
IGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1RISVJE
UEFSVFlfRElSfS9vcGVudnIvaGVhZGVycyIpCi0gIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFU
RV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS92ci9vcGVudnIi
KQotICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBvcGVudnJfYXBpKQotZW5kaWYgKCkK
LQogaWYgKFVTRV9XT0ZGMikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVf
RElSRUNUT1JJRVMgIiR7V09GRjJERUNfSU5DTFVERV9ESVJTfSIpCiAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfTElCUkFSSUVTICIke1dPRkYyREVDX0xJQlJBUklFU30iKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMGFjNWU1ZWU2YjBiZmU4
YTBhNmY1NjNlMGMzZTJlMDc5NzQ3ZmEwMi4uNWE0ZTNkMmEzNjgxOTIyNGZlZjE2OGNkZDBkM2Ji
YjY3ZWJhNThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC00MDksMjAgKzQwOSw2IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUv
V29ya2VyTmF2aWdhdG9yR1BVLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJzb2NrZXRz
L0Nsb3NlRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwK
LSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAotJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZS
RGlzcGxheUV2ZW50LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudFJlYXNvbi5pZGwKLSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvVlJFeWUuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKLSQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZy
L1ZSTGF5ZXJJbml0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRs
Ci0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSU3RhZ2VQYXJhbWV0ZXJzLmlkbAogJChQ
Uk9KRUNUX0RJUikvUmVzb3VyY2VzL3BsdWdJbnMuanMKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMv
R2VuZXJhdGVTZXR0aW5ncy5yYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWQ2NmNlY2RmMzQ4ZDJm
N2E3ZjNlZjA4MzAyYjhmNTI5YWQ3OThmOC4uODUzYTI3NDcyZGZkMDFiNTIwZWI3MmEyMDIxOGVm
MjU4OGI3NThhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTQzOSw4ICs0MzksNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFz
ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvd1dlYkdQVS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93V2ViR1BVLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViVlIuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYlZSLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlci5jcHAKQEAg
LTY3NSw4ICs2NzMsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0dhbWVwYWRCdXR0b24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRCdXR0b24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHYW1lcGFkRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRFdmVudC5oCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZS
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9j
YXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dlb2xvY2F0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKQEAgLTExMzcsOCArMTEzMyw2IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldlYkRyaXZlci5oCi0k
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldl
YlZSLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0b3JXZWJWUi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOb2RlRmlsdGVyLmNwcApAQCAtMTg4NywyOCArMTg4MSw2IEBAICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVlJEaXNwbGF5LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWUkRpc3BsYXkuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuY3BwCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxh
eUV2ZW50LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNWUkRpc3BsYXlFdmVudC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZSRGlzcGxheUV2ZW50UmVhc29uLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlFdmVudFJlYXNvbi5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllLmNwcAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkV5ZS5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllUGFyYW1ldGVycy5j
cHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJFeWVQ
YXJhbWV0ZXJzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVlJGaWVsZE9mVmlldy5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlJGaWVsZE9mVmlldy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRnJhbWVEYXRhLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkZyYW1lRGF0YS5oCi0kKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSTGF5ZXJJbml0LmNwcAotJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkxheWVySW5pdC5oCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSUG9zZS5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJQb3NlLmgKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJTdGFnZVBhcmFt
ZXRlcnMuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1ZSU3RhZ2VQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlRUQ3VlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRDdWUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAyMWZiMWFkYjdhZjE1NGE5NGVkMWUyZmMyN2JiYzZiMDE3OGM1MzNmLi4yNDZlZjJkOGU5
MzM4ZWQyYTliNjAxMTgwNGNmYTEyNDZjNzE4NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTY0LDcgKzY0LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ciBc
CiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlv
biBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjEsMjAgKzQ2MCw2IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3Nl
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJFeWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJz
LmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VidnIvVlJQb3NlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZS
U3RhZ2VQYXJhbWV0ZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRy
aWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIzYzQ2ZDUzOTEzZmUzMjBiYTI2ZGYyNGQ2YmY0
NzIxZWVkYzljNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbAorKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7Ci0gICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnZyZGlzcGxheWNvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnZyZGlzcGxheWRpc2Nvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnZyZGlzcGxheWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRp
c3BsYXlkZWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXli
bHVyOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXlmb2N1czsKLSAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udnJkaXNwbGF5cHJlc2VudGNoYW5nZTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMzY2JhNjIwOTQ1ODA1MzUwMDVkYmE4ODQ1ZDAzNGNlMWIzMDc5
ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiR2FtZXBhZFdlYlZSLmgiCi0KLSNpZiBFTkFCTEUoR0FNRVBBRCkKLQotI2luY2x1ZGUgIkdh
bWVwYWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HYW1lcGFkV2ViVlI6OkdhbWVwYWRX
ZWJWUigpID0gZGVmYXVsdDsKLQotR2FtZXBhZFdlYlZSOjp+R2FtZXBhZFdlYlZSKCkgPSBkZWZh
dWx0OwotCi11bnNpZ25lZCBHYW1lcGFkV2ViVlI6OmRpc3BsYXlJZChjb25zdCBHYW1lcGFkJikK
LXsKLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFk
V2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYyMDkxNWIyNDVjODg5NTdj
YjkyNjc0OGUxMmIwOGM5MmY3Mjc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShHQU1FUEFEKQotCi0jaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHYW1lcGFkOwotCi1jbGFzcyBHYW1lcGFk
V2ViVlIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxHYW1lcGFkPiB7Ci1wdWJsaWM6Ci0gICAg
R2FtZXBhZFdlYlZSKCk7Ci0gICAgdmlydHVhbCB+R2FtZXBhZFdlYlZSKCk7Ci0KLSAgICBzdGF0
aWMgdW5zaWduZWQgZGlzcGxheUlkKGNvbnN0IEdhbWVwYWQmKTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYjBiMTA5ZGQwMTQ4MTk5YmI0ZGVmZTMzZWU1OTliN2ExYzZkM2YzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgQ29u
ZGl0aW9uYWw9R0FNRVBBRCwKLV0gcGFydGlhbCBpbnRlcmZhY2UgR2FtZXBhZCB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZGlzcGxheUlkOwotfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkZjEwMjExYTdhNDY5ZWFlMTg5ZGZhNGRjNTBhOGMzZjc5YTUzYzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJOYXZpZ2F0b3JXZWJWUi5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgIkpTVlJEaXNwbGF5LmgiCi0j
aW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUgIlZSTWFuYWdlci5oIgotI2luY2x1
ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBO
YXZpZ2F0b3JXZWJWUjo6Z2V0VlJEaXNwbGF5cyhOYXZpZ2F0b3ImIG5hdmlnYXRvciwgRG9jdW1l
bnQmIGRvY3VtZW50LCBHZXRWUkRpc3BsYXlzUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZSRW5hYmxlZCgp
KSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgTmF2aWdhdG9yV2ViVlI6OmZyb20oJm5hdmlnYXRvciktPmdldFZSRGlzcGxheXMoZG9jdW1l
bnQsIFdURk1vdmUocHJvbWlzZSkpOwotfQotCi12b2lkIE5hdmlnYXRvcldlYlZSOjpnZXRWUkRp
c3BsYXlzKERvY3VtZW50JiBkb2N1bWVudCwgR2V0VlJEaXNwbGF5c1Byb21pc2UmJiBwcm9taXNl
KQotewotICAgIGRvY3VtZW50LnBvc3RUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAg
ICBPcHRpb25hbDxWUk1hbmFnZXI6OlZSRGlzcGxheXNWZWN0b3I+IHBsYXRmb3JtRGlzcGxheXMg
PSBWUk1hbmFnZXI6OnNpbmdsZXRvbigpLmdldFZSRGlzcGxheXMoKTsKLSAgICAgICAgaWYgKCFw
bGF0Zm9ybURpc3BsYXlzKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdCgpOwotICAgICAg
ICAgICAgbV9kaXNwbGF5cy5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBvbGREaXNwbGF5cyA9IFdURk1vdmUo
bV9kaXNwbGF5cyk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIHRoZSB2ZWN0b3Igb2YgZGlzcGxheXMu
IE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGlzIE8obl4yKSB0aGUgYW1vdW50IG9mIGV4cGVjdGVk
Ci0gICAgICAgIC8vIFZSRGlzcGxheXMgaXMgc28gcmVkdWNlZCB0aGF0IGl0J2xsIHJ1biBmYXN0
IGVub3VnaC4KLSAgICAgICAgZm9yIChhdXRvJiBwbGF0Zm9ybURpc3BsYXkgOiBwbGF0Zm9ybURp
c3BsYXlzLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGJvb2wgbmV3RGlzcGxheSA9IHRydWU7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIG9sZERpc3BsYXkgOiBvbGREaXNwbGF5cykgewotICAgICAg
ICAgICAgICAgIGlmIChwbGF0Zm9ybURpc3BsYXktPmdldERpc3BsYXlJbmZvKCkuZGlzcGxheUlk
ZW50aWZpZXIoKSA9PSBvbGREaXNwbGF5LT5kaXNwbGF5SWQoKSkgewotICAgICAgICAgICAgICAg
ICAgICBuZXdEaXNwbGF5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIG1fZGlzcGxheXMu
YXBwZW5kKG9sZERpc3BsYXkuY29weVJlZigpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5ld0Rp
c3BsYXkpIHsKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlzLmFwcGVuZChWUkRpc3BsYXk6OmNy
ZWF0ZShjb250ZXh0LCBXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpKTsKLSAgICAgICAgICAgICAg
ICBtX2Rpc3BsYXlzLmxhc3QoKS0+cGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKG1fZGlz
cGxheXMsIFtdKGNvbnN0IFJlZjxWUkRpc3BsYXk+JiBkaXNwbGF5KSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGlzcGxheS5jb3B5UmVmKCk7Ci0gICAgICAgIH0pKTsKLSAgICB9KTsKLX0KLQotY29u
c3QgVmVjdG9yPFJlZlB0cjxWUkRpc3BsYXk+PiYgTmF2aWdhdG9yV2ViVlI6OmFjdGl2ZVZSRGlz
cGxheXMoTmF2aWdhdG9yJikKLXsKLSAgICBzdGF0aWMgYXV0byBtb2NrVmVjdG9yID0gbWFrZU5l
dmVyRGVzdHJveWVkKFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5Pj4geyB9KTsKLSAgICByZXR1cm4g
bW9ja1ZlY3RvcjsKLX0KLQotY29uc3QgY2hhciogTmF2aWdhdG9yV2ViVlI6OnN1cHBsZW1lbnRO
YW1lKCkKLXsKLSAgICByZXR1cm4gIk5hdmlnYXRvcldlYlZSIjsKLX0KLQotTmF2aWdhdG9yV2Vi
VlIqIE5hdmlnYXRvcldlYlZSOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQotewotICAgIE5h
dmlnYXRvcldlYlZSKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yV2ViVlIqPihT
dXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpKSk7
Ci0gICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IG1h
a2VVbmlxdWU8TmF2aWdhdG9yV2ViVlI+KCk7Ci0gICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBw
bGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFt
ZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1cHBsZW1l
bnQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmZkNzEzOWNlYWM3NWVkNGI4MGQ3ODkxMzVjMzg4NmVkYmNhZWNiNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL05hdmlnYXRvcldlYlZSLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotY2xhc3MgTmF2aWdhdG9yOwotY2xh
c3MgUGFnZTsKLWNsYXNzIFZSRGlzcGxheTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4g
Y2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwotCi1jbGFzcyBOYXZpZ2F0b3JXZWJWUiBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIHVzaW5nIEdldFZSRGlzcGxheXNQcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETFNlcXVlbmNlPElETEludGVyZmFjZTxWUkRpc3BsYXk+Pj47Ci0KLSAgICBz
dGF0aWMgdm9pZCBnZXRWUkRpc3BsYXlzKE5hdmlnYXRvciYsIERvY3VtZW50JiwgR2V0VlJEaXNw
bGF5c1Byb21pc2UmJik7Ci0gICAgc3RhdGljIGNvbnN0IFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5
Pj4mIGFjdGl2ZVZSRGlzcGxheXMoTmF2aWdhdG9yJik7Ci0gICAgc3RhdGljIGJvb2wgdnJFbmFi
bGVkKE5hdmlnYXRvciYpOwotCi0gICAgdm9pZCBnZXRWUkRpc3BsYXlzKERvY3VtZW50JiwgR2V0
VlJEaXNwbGF5c1Byb21pc2UmJik7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldl
YlZSKiBmcm9tKE5hdmlnYXRvciopOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwotCi0gICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBtX2Rpc3BsYXlzOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L05hdmlnYXRvcldlYlZSLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVlN2E4
NzRlNmNjYzA5NTVlMGVkYTNiMTdhY2E1NDNlNGIyZTM0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL05h
dmlnYXRvcldlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHNlcXVlbmNlPFZS
RGlzcGxheT4+IGdldFZSRGlzcGxheXMoKTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVu
QXJyYXk8VlJEaXNwbGF5PiBhY3RpdmVWUkRpc3BsYXlzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAzMDc2MTg1YzUyYWZhYmU3ZTM1OTFlM2E4ODVlOTQxNmQ4OWUyMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIK
LQotI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJDaHJvbWUu
aCIKLSNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
LSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKLSNpbmNsdWRlICJWUkRpc3Bs
YXlDYXBhYmlsaXRpZXMuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXlFdmVudC5oIgotI2luY2x1ZGUg
IlZSRXllUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0jaW5jbHVkZSAi
VlJMYXllckluaXQuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSUG9zZS5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2lu
ZG93RXZlbnRMb29wLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVlJEaXNwbGF5
KTsKLQotUmVmPFZSRGlzcGxheT4gVlJEaXNwbGF5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4mJiBwbGF0Zm9ybURpc3Bs
YXkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5KGNvbnRleHQsIFdURk1v
dmUocGxhdGZvcm1EaXNwbGF5KSkpOwotfQotCi1WUkRpc3BsYXk6OlZSRGlzcGxheShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmIHBs
YXRmb3JtRGlzcGxheSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKLSAgICAsIG1f
ZGlzcGxheShXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpCi17Ci0gICAgYXV0byBkaXNwbGF5SW5m
byA9IG1fZGlzcGxheS0+Z2V0RGlzcGxheUluZm8oKTsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFZS
RGlzcGxheUNhcGFiaWxpdGllczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmNhcGFiaWxpdHlGbGFncygp
KTsKLSAgICBtX2xlZnRFeWVQYXJhbWV0ZXJzID0gVlJFeWVQYXJhbWV0ZXJzOjpjcmVhdGUoZGlz
cGxheUluZm8uZXllVHJhbnNsYXRpb24oVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0KSwg
ZGlzcGxheUluZm8uZXllRmllbGRPZlZpZXcoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0
KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgpKTsKLSAgICBtX3JpZ2h0RXllUGFyYW1ldGVycyA9
IFZSRXllUGFyYW1ldGVyczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmV5ZVRyYW5zbGF0aW9uKFZSUGxh
dGZvcm1EaXNwbGF5SW5mbzo6RXllUmlnaHQpLCBkaXNwbGF5SW5mby5leWVGaWVsZE9mVmlldyhW
UlBsYXRmb3JtRGlzcGxheUluZm86OkV5ZVJpZ2h0KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgp
KTsKLSAgICBtX2Rpc3BsYXlJZCA9IGRpc3BsYXlJbmZvLmRpc3BsYXlJZGVudGlmaWVyKCk7Ci0g
ICAgbV9kaXNwbGF5TmFtZSA9IGRpc3BsYXlJbmZvLmRpc3BsYXlOYW1lKCk7Ci0KLSAgICBtX2Rp
c3BsYXktPnNldENsaWVudCh0aGlzKTsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLX0KLQotVlJE
aXNwbGF5Ojp+VlJEaXNwbGF5KCkKLXsKLSAgICBtX2Rpc3BsYXktPnNldENsaWVudChudWxscHRy
KTsKLX0KLQotYm9vbCBWUkRpc3BsYXk6OmlzQ29ubmVjdGVkKCkgY29uc3QKLXsKLSAgICBpZiAo
IW1fZGlzcGxheSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fZGlzcGxh
eS0+Z2V0RGlzcGxheUluZm8oKS5pc0Nvbm5lY3RlZCgpOwotfQotCi1jb25zdCBWUkRpc3BsYXlD
YXBhYmlsaXRpZXMmIFZSRGlzcGxheTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gKm1fY2FwYWJpbGl0aWVzOwotfQotCi1SZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IFZSRGlz
cGxheTo6c3RhZ2VQYXJhbWV0ZXJzKCkgY29uc3QKLXsKLSAgICBhdXRvIGRpc3BsYXlJbmZvID0g
bV9kaXNwbGF5LT5nZXREaXNwbGF5SW5mbygpOwotICAgIHJldHVybiBWUlN0YWdlUGFyYW1ldGVy
czo6Y3JlYXRlKGRpc3BsYXlJbmZvLnNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtKCksIGRpc3Bs
YXlJbmZvLnBsYXlBcmVhQm91bmRzKCkpOwotfQotCi1jb25zdCBWUkV5ZVBhcmFtZXRlcnMmIFZS
RGlzcGxheTo6Z2V0RXllUGFyYW1ldGVycyhWUkV5ZSBleWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGV5ZSA9PSBWUkV5ZTo6TGVmdCA/ICptX2xlZnRFeWVQYXJhbWV0ZXJzIDogKm1fcmlnaHRFeWVQ
YXJhbWV0ZXJzOwotfQotCi1ib29sIFZSRGlzcGxheTo6Z2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRh
JiBmcmFtZURhdGEpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcy0+aGFzUG9zaXRp
b24oKSB8fCAhbV9jYXBhYmlsaXRpZXMtPmhhc09yaWVudGF0aW9uKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIC8vIEZJWE1FOiBlbnN1cmUgdGhhdCB0aGlzIGlzIG9ubHkgY2FsbGVk
IGluc2lkZSBXZWJWUidzIHJBRi4KLSAgICBmcmFtZURhdGEudXBkYXRlKG1fZGlzcGxheS0+Z2V0
VHJhY2tpbmdJbmZvKCksIGdldEV5ZVBhcmFtZXRlcnMoVlJFeWU6OkxlZnQpLCBnZXRFeWVQYXJh
bWV0ZXJzKFZSRXllOjpSaWdodCksIG1fZGVwdGhOZWFyLCBtX2RlcHRoRmFyKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotUmVmPFZSUG9zZT4gVlJEaXNwbGF5OjpnZXRQb3NlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gVlJQb3NlOjpjcmVhdGUobV9kaXNwbGF5LT5nZXRUcmFja2luZ0luZm8oKSk7
Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpyZXNldFBvc2UoKQotewotfQotCi11aW50MzJfdCBWUkRp
c3BsYXk6OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcikgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCpkb2N1bWVudCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5yZWdpc3Rl
ckNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmNhbmNl
bEFuaW1hdGlvbkZyYW1lKHVpbnQzMl90IGlkKQotewotICAgIGlmICghbV9zY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLT5jYW5jZWxDYWxsYmFjayhpZCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5Ojpy
ZXF1ZXN0UHJlc2VudChjb25zdCBWZWN0b3I8VlJMYXllckluaXQ+JiBsYXllcnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKLXsKLSAgICBhdXRvIHJlamVjdFJlcXVlc3RBbmRTdG9w
UHJlc2VudGluZyA9IFt0aGlzLCAmcHJvbWlzZV0gKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29k
ZSwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IGV4Y2VwdGlvbkNvZGUsIG1lc3NhZ2UgfSk7Ci0gICAgICAgIGlmIChtX3ByZXNlbnRp
bmdMYXllcikKLSAgICAgICAgICAgIHN0b3BQcmVzZW50aW5nKCk7Ci0gICAgfTsKLQotICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMtPmNhblByZXNlbnQoKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0
QW5kU3RvcFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJWUkRpc3BsYXkgY2Fubm90IHBy
ZXNlbnQiX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFsYXllcnMuc2l6
ZSgpIHx8IGxheWVycy5zaXplKCkgPiBtX2NhcGFiaWxpdGllcy0+bWF4TGF5ZXJzKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCBs
YXllcnMuc2l6ZSgpID8gIlRvbyBtYW55IGxheWVycyJfcyA6ICJOb3QgZW5vdWdoIGxheWVycyJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVy
ICYmICFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRBY2Nlc3NFcnJvciwg
Ik11c3QgcmVxdWVzdCBwcmVzZW50YXRpb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FTU0VSVChsYXllcnMu
c2l6ZSgpID09IDEpOwotICAgIGF1dG8gbGF5ZXIgPSBsYXllcnNbMF07Ci0KLSAgICBpZiAoIWxh
eWVyLnNvdXJjZSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3RvcFByZXNlbnRpbmcoSW52
YWxpZFN0YXRlRXJyb3IsICJMYXllciBkb2VzIG5vdCBjb250YWluIGFueSBzb3VyY2UiX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byogY2FudmFzQ29udGV4dCA9IGxheWVy
LnNvdXJjZS0+Z2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAoIWNhbnZhc0NvbnRleHQgfHwg
IWNhbnZhc0NvbnRleHQtPmlzV2ViR0woKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3Rv
cFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJXZWJWUiByZXF1aXJlcyBWUkxheWVySW5p
dCB3aXRoIFdlYkdMIGNvbnRleHQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICgobGF5ZXIubGVmdEJvdW5kcy5zaXplKCkgJiYgbGF5ZXIubGVmdEJvdW5kcy5zaXplKCkg
IT0gNCkKLSAgICAgICAgfHwgKGxheWVyLnJpZ2h0Qm91bmRzLnNpemUoKSAmJiBsYXllci5yaWdo
dEJvdW5kcy5zaXplKCkgIT0gNCkpIHsKLSAgICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVz
ZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCAiTGF5ZXIgYm91bmRzIG11c3QgYmUgZWl0aGVyIDAg
b3IgNCJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3ByZXNlbnRpbmdMYXll
ciA9IGxheWVyOwotICAgIHByb21pc2UtPnJlc29sdmUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6
OnN0b3BQcmVzZW50aW5nKCkKLXsKLSAgICBtX3ByZXNlbnRpbmdMYXllciA9IFdURjo6bnVsbG9w
dDsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmV4aXRQcmVzZW50KFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKLXsKLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVyKSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlZSRGlzcGxheSBp
cyBub3QgcHJlc2VudGluZyJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0
b3BQcmVzZW50aW5nKCk7Ci19Ci0KLVZlY3RvcjxWUkxheWVySW5pdD4gVlJEaXNwbGF5OjpnZXRM
YXllcnMoKSBjb25zdAotewotICAgIFZlY3RvcjxWUkxheWVySW5pdD4gbGF5ZXJzOwotICAgIGlm
IChtX3ByZXNlbnRpbmdMYXllcikKLSAgICAgICAgbGF5ZXJzLmFwcGVuZChtX3ByZXNlbnRpbmdM
YXllci52YWx1ZSgpKTsKLSAgICByZXR1cm4gbGF5ZXJzOwotfQotCi12b2lkIFZSRGlzcGxheTo6
c3VibWl0RnJhbWUoKQotewotfQotCi0vLyBVc2UgYSBFdmVudExvb3AgaW5zdGVhZCBvZiBkaXNw
YXRjaGluZyBldmVudHMgc3luY2hyb25vdXNseSBiZWNhdXNlIHRoZQotLy8gRXZlbnRMb29wIGNv
cnJlY3RseSBzdXNwZW5kcyB3aGVuIGluIHRoZSBjYWNoZS4gVGhpcyB3YXkgVlJEaXNwbGF5IGRv
ZXMgbm8KLS8vIGxvbmdlciBwcmV2ZW50IGNhY2hpbmcgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4KLXZvaWQgVlJEaXNwbGF5OjpkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3AoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4m
JiByZWFzb24pCi17Ci0gICAgYXV0byBldmVudCA9IFZSRGlzcGxheUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBtYWtlUmVmUHRyKHRoaXMpLCBXVEZNb3ZlKHJlYXNvbikpOwotICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBb
dGhpcywgZXZlbnQgPSBXVEZNb3ZlKGV2ZW50KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFk
b2N1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpCi0gICAgICAgICAgICB3aW5kb3ctPmRpc3BhdGNo
RXZlbnQoZXZlbnQpOwotICAgIH0pOwotfQotCi12b2lkIFZSRGlzcGxheTo6cGxhdGZvcm1EaXNw
bGF5Q29ubmVjdGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3Ao
ZXZlbnROYW1lcygpLnZyZGlzcGxheWNvbm5lY3RFdmVudCwgV1RGOjpudWxsb3B0KTsKLX0KLQot
dm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheURpc2Nvbm5lY3RlZCgpCi17Ci0gICAgZGlz
cGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFtZXMoKS52cmRpc3BsYXlkaXNj
b25uZWN0RXZlbnQsIFdURjo6bnVsbG9wdCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpwbGF0Zm9y
bURpc3BsYXlNb3VudGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExv
b3AoZXZlbnROYW1lcygpLnZyZGlzcGxheWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVh
c29uOjpNb3VudGVkKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheVVubW91
bnRlZCgpCi17Ci0gICAgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFt
ZXMoKS52cmRpc3BsYXlkZWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVhc29uOjpVbm1v
dW50ZWQpOwotfQotCi1ib29sIFZSRGlzcGxheTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWNvbnN0IGNoYXIqIFZSRGlzcGxheTo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJWUkRpc3BsYXkiOwotfQotCi12
b2lkIFZSRGlzcGxheTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKLXsKLSAg
ICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kKCk7Ci0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25G
b3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQotICAgICAgICBzdG9wUHJlc2VudGluZygp
OwotfQotCi12b2lkIFZSRGlzcGxheTo6cmVzdW1lKCkKLXsKLSAgICBpZiAobV9zY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LT5yZXN1bWUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnN0b3AoKQotewotICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyID0gbnVsbHB0cjsKLSAgICBzdG9wUHJlc2VudGluZygpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQzYTY3YzkzZmFjN2Yx
OGU0Zjg0MjhlOGRhYjdjNzk3ZjI4MmY1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCi0jaW5jbHVkZSAiVlJEaXNwbGF5RXZlbnRSZWFzb24uaCIKLSNpbmNsdWRlICJW
UkV5ZS5oIgotI2luY2x1ZGUgIlZSTGF5ZXJJbml0LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXlDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gRXhjZXB0aW9uQ29k
ZTsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLWNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrOwotY2xhc3MgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwotY2xhc3MgVlJEaXNw
bGF5Q2FwYWJpbGl0aWVzOwotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzOwotY2xhc3MgVlJGcmFtZURh
dGE7Ci1jbGFzcyBWUlBsYXRmb3JtRGlzcGxheTsKLWNsYXNzIFZSUG9zZTsKLWNsYXNzIFZSU3Rh
Z2VQYXJhbWV0ZXJzOwotCi1jbGFzcyBWUkRpc3BsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxWUkRpc3BsYXk+LCBwdWJsaWMgVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFZSRGlzcGxheSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkRpc3BsYXk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxWUlBsYXRm
b3JtRGlzcGxheT4mJik7Ci0KLSAgICB2aXJ0dWFsIH5WUkRpc3BsYXkoKTsKLQotICAgIHVzaW5n
IFJlZkNvdW50ZWQ8VlJEaXNwbGF5Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8VlJEaXNw
bGF5Pjo6ZGVyZWY7Ci0KLSAgICBib29sIGlzQ29ubmVjdGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBp
c1ByZXNlbnRpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fcHJlc2VudGluZ0xheWVyOyB9OwotCi0g
ICAgY29uc3QgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdDsKLSAg
ICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IHN0YWdlUGFyYW1ldGVycygpIGNvbnN0OwotCi0g
ICAgY29uc3QgVlJFeWVQYXJhbWV0ZXJzJiBnZXRFeWVQYXJhbWV0ZXJzKFZSRXllKSBjb25zdDsK
LQotICAgIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXlOYW1lOyB9Ci0gICAgdWludDMyX3QgZGlzcGxheUlkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5SWQ7IH0KLQotICAgIGJvb2wgZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhJikgY29uc3Q7Ci0K
LSAgICBSZWY8VlJQb3NlPiBnZXRQb3NlKCkgY29uc3Q7Ci0gICAgdm9pZCByZXNldFBvc2UoKTsK
LQotICAgIGRvdWJsZSBkZXB0aE5lYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRoTmVhcjsgfQot
ICAgIHZvaWQgc2V0RGVwdGhOZWFyKGRvdWJsZSBkZXB0aE5lYXIpIHsgbV9kZXB0aE5lYXIgPSBk
ZXB0aE5lYXI7IH0KLSAgICBkb3VibGUgZGVwdGhGYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRo
RmFyOyB9Ci0gICAgdm9pZCBzZXREZXB0aEZhcihkb3VibGUgZGVwdGhGYXIpIHsgbV9kZXB0aEZh
ciA9IGRlcHRoRmFyOyB9Ci0KLSAgICB1aW50MzJfdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVm
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKLSAgICB2b2lkIGNhbmNlbEFuaW1h
dGlvbkZyYW1lKHVpbnQzMl90KTsKLQotICAgIHZvaWQgcmVxdWVzdFByZXNlbnQoY29uc3QgVmVj
dG9yPFZSTGF5ZXJJbml0PiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwotICAgIHZvaWQgZXhp
dFByZXNlbnQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0KLSAgICBWZWN0b3I8VlJMYXllcklu
aXQ+IGdldExheWVycygpIGNvbnN0OwotCi0gICAgdm9pZCBzdWJtaXRGcmFtZSgpOwotCi0gICAg
Ly8gVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQKLSAgICB2b2lkIHBsYXRmb3JtRGlzcGxheUNvbm5l
Y3RlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxhdGZvcm1EaXNwbGF5RGlzY29ubmVjdGVkKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlNb3VudGVkKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlVbm1vdW50ZWQoKSBvdmVycmlkZTsKLQotICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLXByaXZhdGU6Ci0gICAgVlJEaXNwbGF5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBX
ZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWUkRpc3BsYXlFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
LSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQotCi0gICAgLy8gQWN0aXZl
RE9NT2JqZWN0Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBzdG9wUHJlc2VudGluZygpOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
eyByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7IH0K
LQotICAgIHZvaWQgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50TmFtZSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYpOwotCi0g
ICAgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4gbV9kaXNwbGF5OwotCi0gICAgUmVmUHRyPFZS
RGlzcGxheUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgLy8gV2UgY291bGQgbGlr
ZWx5IHN0b3JlIGp1c3Qgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nIG9uZXMgYXMgdGhlIHZhbHVl
cyBzaG91bGQgYmUgaWRlbnRpY2FsCi0gICAgLy8gKGV4Y2VwdCB0aGUgc2lnbiBvZiB0aGUgZXll
IHRvIGhlYWQgdHJhbnNmb3JtIG9mZnNldCkuCi0gICAgUmVmUHRyPFZSRXllUGFyYW1ldGVycz4g
bV9sZWZ0RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJFeWVQYXJhbWV0ZXJzPiBtX3JpZ2h0
RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IG1fc3RhZ2VQYXJh
bWV0ZXJzOwotCi0gICAgU3RyaW5nIG1fZGlzcGxheU5hbWU7Ci0gICAgdWludDMyX3QgbV9kaXNw
bGF5SWQ7Ci0KLSAgICBkb3VibGUgbV9kZXB0aE5lYXIgeyAwLjAxIH07IC8vIERlZmF1bHQgdmFs
dWUgZnJvbSB0aGUgc3BlY3MuCi0gICAgZG91YmxlIG1fZGVwdGhGYXIgeyAxMDAwMCB9OyAvLyBE
ZWZhdWx0IHZhbHVlIGZyb20gdGhlIHNwZWNzLgotCi0gICAgUmVmUHRyPFNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7Ci0KLSAgICBPcHRp
b25hbDxWUkxheWVySW5pdD4gbV9wcmVzZW50aW5nTGF5ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhN2RkNGYxYWE2NzFmMmIxMjhjYmI2Y2U3NDQx
Zjk4ZDQzNjljZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXkuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQWN0aXZlRE9NT2JqZWN0
LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGludGVyZmFjZSBWUkRpc3BsYXkgOiBF
dmVudFRhcmdldCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb25uZWN0ZWQ7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNQcmVzZW50aW5nOwotCi0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZSRGlzcGxheUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7IC8vIEZJ
WE1FOiBbU2FtZU9iamVjdF0KLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlN0YWdlUGFyYW1l
dGVycz8gc3RhZ2VQYXJhbWV0ZXJzOwotCi0gICAgVlJFeWVQYXJhbWV0ZXJzIGdldEV5ZVBhcmFt
ZXRlcnMoVlJFeWUgd2hpY2hFeWUpOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZGlzcGxheUlkOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkaXNw
bGF5TmFtZTsKLQotICAgIGJvb2xlYW4gZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhIGZyYW1lRGF0
YSk7Ci0KLSAgICBbTmV3T2JqZWN0XSBWUlBvc2UgZ2V0UG9zZSgpOwotCi0gICAgdm9pZCByZXNl
dFBvc2UoKTsKLQotICAgIGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOwotICAgIGF0dHJpYnV0
ZSBkb3VibGUgZGVwdGhGYXI7Ci0KLSAgICAvLyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ayBlcXVhdGVzIHRvIEZyYW1lUmVxdWVzdENhbGxiYWNrLgotICAgIGxvbmcgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrIGNhbGxiYWNrKTsKLSAgICB2
b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKLQotICAgIFBy
b21pc2U8dm9pZD4gcmVxdWVzdFByZXNlbnQoc2VxdWVuY2U8VlJMYXllckluaXQ+IGxheWVycyk7
Ci0KLSAgICBQcm9taXNlPHZvaWQ+IGV4aXRQcmVzZW50KCk7Ci0KLSAgICBzZXF1ZW5jZTxWUkxh
eWVySW5pdD4gZ2V0TGF5ZXJzKCk7Ci0KLSAgICB2b2lkIHN1Ym1pdEZyYW1lKCk7Ci19OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjQ5Yjg0MTQzM2Q1YTUwYjYwZjQ4
N2NjZmY1NGEwOWJjZGQ0OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8VlJE
aXNwbGF5Q2FwYWJpbGl0aWVzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWUkRpc3BsYXlD
YXBhYmlsaXRpZXM+IGNyZWF0ZSh1bnNpZ25lZCBjYXBhYmlsaXR5RmxhZ3MpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUkRpc3BsYXlDYXBhYmlsaXRpZXMoY2FwYWJpbGl0
eUZsYWdzKSk7Ci0gICAgfQotCi0gICAgYm9vbCBoYXNQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9uOyB9Ci0gICAgYm9vbCBo
YXNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmls
aXR5RmxhZ09yaWVudGF0aW9uOyB9Ci0gICAgYm9vbCBoYXNFeHRlcm5hbERpc3BsYXkoKSBjb25z
dCB7IHJldHVybiBtX2ZsYWdzICYgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdFeHRlcm5hbERpc3Bs
YXk7IH0KLSAgICBib29sIGNhblByZXNlbnQoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgVlJE
aXNwbGF5Q2FwYWJpbGl0eUZsYWdQcmVzZW50OyB9Ci0gICAgdW5zaWduZWQgbWF4TGF5ZXJzKCkg
Y29uc3QgeyByZXR1cm4gY2FuUHJlc2VudCgpID8gMSA6IDA7IH0KLQotcHJpdmF0ZToKLSAgICBW
UkRpc3BsYXlDYXBhYmlsaXRpZXModW5zaWduZWQgY2FwYWJpbGl0eUZsYWdzKQotICAgICAgICA6
IG1fZmxhZ3MoY2FwYWJpbGl0eUZsYWdzKQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBt
X2ZsYWdzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmUzZTllZTlkOTY1ZDBkMmU4YWU0Y2VlMmJhM2RhZjAw
YTU5MTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZh
Y2UgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBoYXNQb3NpdGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNPcmllbnRh
dGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNFeHRlcm5hbERpc3BsYXk7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY2FuUHJlc2VudDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhMYXllcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDZjMDE3MTc5YzYzNzE2MzVlMTMzODMyYzE2NzNhYmM3NjM3NjIzYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50LmgiCi0KLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIKLSNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChWUkRpc3BsYXlFdmVudCk7Ci0KLVZSRGlzcGxheUV2ZW50OjpW
UkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKLSAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVy
LCBpc1RydXN0ZWQpCi0gICAgLCBtX2Rpc3BsYXkoaW5pdGlhbGl6ZXIuZGlzcGxheSkKLSAgICAs
IG1fcmVhc29uKGluaXRpYWxpemVyLnJlYXNvbikKLXsKLX0KLQotVlJEaXNwbGF5RXZlbnQ6OlZS
RGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIGNvbnN0IFJlZlB0cjxWUkRpc3Bs
YXk+JiBkaXNwbGF5LCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJiByZWFzb24pCi0g
ICAgOiBFdmVudChuYW1lLCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Ok5vKQotICAgICwg
bV9kaXNwbGF5KGRpc3BsYXkpCi0gICAgLCBtX3JlYXNvbihXVEZNb3ZlKHJlYXNvbikpCi17Ci19
Ci0KLVZSRGlzcGxheUV2ZW50Ojp+VlJEaXNwbGF5RXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLUV2ZW50
SW50ZXJmYWNlIFZSRGlzcGxheUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFZSRGlzcGxheUV2ZW50SW50ZXJmYWNlVHlwZTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTAwMmJmNDU3YzM5OTFhY2MyZDZlNGIw
MTAzNzFlMDYwOTY1YjUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50UmVhc29uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VlJEaXNwbGF5RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewotICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoVlJEaXNwbGF5RXZlbnQpOwotcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlJEaXNw
bGF5RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBSZWZQdHI8VlJE
aXNwbGF5PiYgZGlzcGxheSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYgcmVhc29u
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQodHlw
ZSwgZGlzcGxheSwgV1RGTW92ZShyZWFzb24pKSk7Ci0gICAgfQotCi0gICAgc3RydWN0IEluaXQg
OiBFdmVudEluaXQgewotICAgICAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5OwotICAgICAg
ICBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4gcmVhc29uOwotICAgIH07Ci0KLSAgICBz
dGF0aWMgUmVmPFZSRGlzcGxheUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6
Ok5vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgflZS
RGlzcGxheUV2ZW50KCk7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5KCkgY29uc3Qg
eyByZXR1cm4gbV9kaXNwbGF5OyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRS
ZWFzb24+JiByZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3JlYXNvbjsgfQotCi1wcml2YXRlOgot
ICAgIFZSRGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKLSAgICBWUkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgUmVmUHRy
PFZSRGlzcGxheT4mLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJik7Ci0KLSAgICAv
LyBFdmVudAotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBtX2Rpc3BsYXk7Ci0gICAgT3B0aW9uYWw8VlJE
aXNwbGF5RXZlbnRSZWFzb24+IG1fcmVhc29uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWViNzBiZWUyMjMwZTQ4YjE5ZGQ5YWM0YWNk
ZWE1ODEwYmJlZWIyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi1dIGRpY3Rpb25hcnkgVlJEaXNwbGF5RXZlbnRJbml0IDogRXZlbnRJ
bml0IHsKLSAgICByZXF1aXJlZCBWUkRpc3BsYXkgZGlzcGxheTsKLSAgICBWUkRpc3BsYXlFdmVu
dFJlYXNvbiByZWFzb247Ci19OwotCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAg
ICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgVlJEaXNwbGF5RXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpCi1dIGludGVyZmFjZSBWUkRpc3BsYXlFdmVudCA6IEV2ZW50IHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVlJEaXNwbGF5IGRpc3BsYXk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFZS
RGlzcGxheUV2ZW50UmVhc29uPyByZWFzb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YjAzMzZiZTM2NDU3OWJlNGU3MzZiMTk1MDJlNjAxMWEyZjJkNTcyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaAorKysgL2Rldi9udWxsCkBAIC0x
LDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWVudW0gY2xhc3MgVlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgIE1vdW50ZWQsCi0g
ICAgTmF2aWdhdGlvbiwKLSAgICBSZXF1ZXN0ZWQsCi0gICAgVW5tb3VudGVkCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheUV2ZW50UmVhc29uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
dnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYjg0MDM5ZDc0ODg3YWIwNTA0M2ZmYjA0MzRlNmYyN2U5MjA3MmU4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGVudW0g
VlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgICJtb3VudGVkIiwKLSAgICAibmF2aWdhdGlvbiIs
Ci0gICAgInJlcXVlc3RlZCIsCi0gICAgInVubW91bnRlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSRXllLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MmJiN2Y4MDI5
NGM5YjllMzhmYWJiMGUwNmZiOWI5ZTU0YWY4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBWUkV5ZSB7Ci0gICAgTGVmdCwK
LSAgICBSaWdodAotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ0ZWYw
NjljOTA5ZmI4ZjE1MTgzMzUwM2U4MzdhZTM0NjgxOTNkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLVsKLSAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotXSBlbnVtIFZSRXllIHsKLSAgICAibGVmdCIsCi0g
ICAgInJpZ2h0IgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIv
VlJFeWVQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmYTY2MjhjNmU1
ZWYxZmRmNjk2ZGU3MmM5MGRjYzZjMzE4ZmUyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVlJFeWVQYXJhbWV0ZXJzLmgiCi0KLSNpbmNs
dWRlICJWUkZpZWxkT2ZWaWV3LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJh
eUlubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUkV5ZVBhcmFtZXRlcnM6OlZS
RXllUGFyYW1ldGVycyhjb25zdCBGbG9hdFBvaW50M0QmIG9mZnNldCwgY29uc3QgVlJQbGF0Zm9y
bURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyYgZmllbGRPZlZpZXcsIGNvbnN0IFJlbmRlclNpemUm
IHJlbmRlclNpemUpCi0gICAgOiBtX2ZpZWxkT2ZWaWV3KFZSRmllbGRPZlZpZXc6OmNyZWF0ZShm
aWVsZE9mVmlldykpCi0gICAgLCBtX29mZnNldChvZmZzZXQpCi0gICAgLCBtX3JlbmRlclNpemUo
cmVuZGVyU2l6ZSkKLXsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4gVlJFeWVQYXJhbWV0ZXJzOjpv
ZmZzZXQoKSBjb25zdAotewotICAgIGF1dG8gb2Zmc2V0ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Myk7Ci0gICAgZmxvYXQqIG9mZnNldERhdGEgPSBvZmZzZXQtPmRhdGEoKTsKLSAgICBvZmZzZXRE
YXRhWzBdID0gbV9vZmZzZXQueCgpOwotICAgIG9mZnNldERhdGFbMV0gPSBtX29mZnNldC55KCk7
Ci0gICAgb2Zmc2V0RGF0YVsyXSA9IG1fb2Zmc2V0LnooKTsKLSAgICByZXR1cm4gb2Zmc2V0Owot
fQotCi1jb25zdCBWUkZpZWxkT2ZWaWV3JiBWUkV5ZVBhcmFtZXRlcnM6OmZpZWxkT2ZWaWV3KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9maWVsZE9mVmlldzsKLX0KLQotdW5zaWduZWQgVlJFeWVQ
YXJhbWV0ZXJzOjpyZW5kZXJXaWR0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyU2l6
ZS53aWR0aDsKLX0KLQotdW5zaWduZWQgVlJFeWVQYXJhbWV0ZXJzOjpyZW5kZXJIZWlnaHQoKSBj
b25zdAotewotICAgIHJldHVybiBtX3JlbmRlclNpemUuaGVpZ2h0OwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFt
ZXRlcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMwZDBmYmQ2NTRhMWQxZjE4
OGExZjQzOWQzMDMwODBmY2E2NDgyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVy
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKLSNpbmNsdWRlICJWUkZpZWxkT2ZWaWV3
LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzIDogcHVibGljIFJlZkNv
dW50ZWQ8VlJFeWVQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgUmVuZGVyU2l6ZSA9
IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6UmVuZGVyU2l6ZTsKLQotICAgIHN0YXRpYyBSZWY8VlJF
eWVQYXJhbWV0ZXJzPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZzZXQsIGNvbnN0IFZS
UGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmIGZpZWxkT2ZWaWV3LCBjb25zdCBSZW5k
ZXJTaXplJiByZW5kZXJTaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VlJFeWVQYXJhbWV0ZXJzKG9mZnNldCwgZmllbGRPZlZpZXcsIHJlbmRlclNpemUpKTsKLSAgICB9
Ci0KLSAgICBSZWY8RmxvYXQzMkFycmF5PiBvZmZzZXQoKSBjb25zdDsKLSAgICBjb25zdCBGbG9h
dFBvaW50M0QmIHJhd09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9Ci0KLSAgICBj
b25zdCBWUkZpZWxkT2ZWaWV3JiBmaWVsZE9mVmlldygpIGNvbnN0OwotCi0gICAgdW5zaWduZWQg
cmVuZGVyV2lkdGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCByZW5kZXJIZWlnaHQoKSBjb25zdDsK
LQotcHJpdmF0ZToKLSAgICBWUkV5ZVBhcmFtZXRlcnMoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZz
ZXQsIGNvbnN0IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmLCBjb25zdCBSZW5k
ZXJTaXplJik7Ci0KLSAgICBSZWY8VlJGaWVsZE9mVmlldz4gbV9maWVsZE9mVmlldzsKLSAgICBG
bG9hdFBvaW50M0QgbV9vZmZzZXQ7Ci0gICAgUmVuZGVyU2l6ZSBtX3JlbmRlclNpemU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNk
ZTk1NWExZWU5NzBmNGM5YzAyZmRhODAwZDlkM2E0YmY0ZDhlYzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2
ci9WUkV5ZVBhcmFtZXRlcnMuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgVlJFeWVQYXJhbWV0ZXJzIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IG9mZnNldDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWUkZpZWxkT2ZWaWV3IGZpZWxkT2ZWaWV3OyAvLyBGSVhNRTogW1NhbWVPYmplY3RdCi0KLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJXaWR0aDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJIZWlnaHQ7Ci19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTBhMzBhOTk3OTBkYTAwNGExNDU5ZTQ1M2JjZDMxMGI1M2VkYzZkMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXkuaCIKLQotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSRmllbGRPZlZpZXcgOiBwdWJs
aWMgUmVmQ291bnRlZDxWUkZpZWxkT2ZWaWV3PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkZpZWxkT2ZWaWV3PiBjcmVhdGUoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyBm
aWVsZE9mVmlldykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSRmllbGRP
ZlZpZXcoZmllbGRPZlZpZXcpKTsKLSAgICB9Ci0KLSAgICBkb3VibGUgdXBEZWdyZWVzKCkgY29u
c3QgeyByZXR1cm4gbV91cERlZ3JlZXM7IH07Ci0gICAgZG91YmxlIHJpZ2h0RGVncmVlcygpIGNv
bnN0IHsgcmV0dXJuIG1fcmlnaHREZWdyZWVzOyB9OwotICAgIGRvdWJsZSBkb3duRGVncmVlcygp
IGNvbnN0IHsgcmV0dXJuIG1fZG93bkRlZ3JlZXM7IH07Ci0gICAgZG91YmxlIGxlZnREZWdyZWVz
KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0RGVncmVlczsgfTsKLQotcHJpdmF0ZToKLSAgICBWUkZp
ZWxkT2ZWaWV3KFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgZmllbGRPZlZpZXcp
Ci0gICAgICAgIDogbV91cERlZ3JlZXMoZmllbGRPZlZpZXcudXBEZWdyZWVzKQotICAgICAgICAs
IG1fcmlnaHREZWdyZWVzKGZpZWxkT2ZWaWV3LnJpZ2h0RGVncmVlcykKLSAgICAgICAgLCBtX2Rv
d25EZWdyZWVzKGZpZWxkT2ZWaWV3LmRvd25EZWdyZWVzKQotICAgICAgICAsIG1fbGVmdERlZ3Jl
ZXMoZmllbGRPZlZpZXcubGVmdERlZ3JlZXMpCi0gICAgewotICAgIH0KLQotICAgIGRvdWJsZSBt
X3VwRGVncmVlczsKLSAgICBkb3VibGUgbV9yaWdodERlZ3JlZXM7Ci0gICAgZG91YmxlIG1fZG93
bkRlZ3JlZXM7Ci0gICAgZG91YmxlIG1fbGVmdERlZ3JlZXM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmll
bGRPZlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y0NDcwZTY0MmIxOWRlMmU1ODA5
OTJmYmUxYzA5OWI2NjcyZjUzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgVlJGaWVsZE9mVmlldyB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB1cERl
Z3JlZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSByaWdodERlZ3JlZXM7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkb3duRGVncmVlczsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgZG91YmxlIGxlZnREZWdyZWVzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NWUx
NDk0ZjUwMTNhNWNkYWQwMWU3YmQ4M2EzODYyMDdiMWIwYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0KLSNpbmNs
dWRlICJWUkV5ZVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgot
I2luY2x1ZGUgIlZSUG9zZS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJ
bmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVlJGcmFtZURhdGE6OlZSRnJhbWVE
YXRhKCkKLSAgICA6IG1fcG9zZShWUlBvc2U6OmNyZWF0ZSgpKQotewotfQotCi1zdGF0aWMgUmVm
PEZsb2F0MzJBcnJheT4gbWF0cml4VG9BcnJheShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4KQotewotICAgIGF1dG8gY29sdW1uTWFqb3JNYXRyaXggPSBtYXRyaXgudG9Db2x1bW5N
YWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoY29sdW1u
TWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpsZWZ0UHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0UHJvamVjdGlvbk1hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZS
RnJhbWVEYXRhOjpsZWZ0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0Vmlld01hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpyaWdodFByb2plY3Rpb25NYXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtYXRyaXhU
b0FycmF5KG1fcmlnaHRQcm9qZWN0aW9uTWF0cml4KTsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4g
VlJGcmFtZURhdGE6OnJpZ2h0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJp
eFRvQXJyYXkobV9yaWdodFZpZXdNYXRyaXgpOwotfQotCi1jb25zdCBWUlBvc2UmIFZSRnJhbWVE
YXRhOjpwb3NlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wb3NlOwotfQotCi1zdGF0aWMgVHJh
bnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlvbk1hdHJpeEZyb21GaWVsZE9mVmlldyhjb25zdCBW
UkZpZWxkT2ZWaWV3JiBmb3YsIGRvdWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcikKLXsK
LSAgICBkb3VibGUgdXBUYW4gPSB0YW4oZGVnMnJhZChmb3YudXBEZWdyZWVzKCkpKTsKLSAgICBk
b3VibGUgZG93blRhbiA9IHRhbihkZWcycmFkKGZvdi5kb3duRGVncmVlcygpKSk7Ci0gICAgZG91
YmxlIGxlZnRUYW4gPSB0YW4oZGVnMnJhZChmb3YubGVmdERlZ3JlZXMoKSkpOwotICAgIGRvdWJs
ZSByaWdodFRhbiA9IHRhbihkZWcycmFkKGZvdi5yaWdodERlZ3JlZXMoKSkpOwotCi0gICAgZG91
YmxlIHhTY2FsZSA9IDIgLyAobGVmdFRhbiArIHJpZ2h0VGFuKTsKLSAgICBkb3VibGUgeVNjYWxl
ID0gMiAvICh1cFRhbiArIGRvd25UYW4pOwotCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcHJv
amVjdGlvbk1hdHJpeDsKLSAgICBwcm9qZWN0aW9uTWF0cml4LnNldE0xMSh4U2NhbGUpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTIyKHlTY2FsZSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5z
ZXRNMzIoKHVwVGFuIC0gZG93blRhbikgKiB5U2NhbGUgKiAwLjUpOwotICAgIHByb2plY3Rpb25N
YXRyaXguc2V0TTMxKC0oKGxlZnRUYW4gLSByaWdodFRhbikgKiB4U2NhbGUgKiAwLjUpKTsKLSAg
ICBwcm9qZWN0aW9uTWF0cml4LnNldE0zMygoZGVwdGhOZWFyICsgZGVwdGhGYXIpIC8gKGRlcHRo
TmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNMzQoLTEpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTQzKCgyICogZGVwdGhGYXIgKiBkZXB0aE5lYXIpIC8gKGRl
cHRoTmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNNDQoMCk7Ci0K
LSAgICByZXR1cm4gcHJvamVjdGlvbk1hdHJpeDsKLX0KLQotLy8gaHR0cDovL3d3dy5ldWNsaWRl
YW5zcGFjZS5jb20vbWF0aHMvZ2VvbWV0cnkvcm90YXRpb25zL2NvbnZlcnNpb25zL3F1YXRlcm5p
b25Ub01hdHJpeC9pbmRleC5odG0KLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByb3RhdGlv
bk1hdHJpeEZyb21RdWF0ZXJuaW9uKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRl
cm5pb24mIHF1YXRlcm5pb24pCi17Ci0gICAgZG91YmxlIG1hZ25pdHVkZSA9IChxdWF0ZXJuaW9u
LnggKiBxdWF0ZXJuaW9uLngpICsgKHF1YXRlcm5pb24ueSAqIHF1YXRlcm5pb24ueSkgKyAocXVh
dGVybmlvbi56ICogcXVhdGVybmlvbi56KSArIChxdWF0ZXJuaW9uLncgKiBxdWF0ZXJuaW9uLncp
OwotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRlcm5pb24gbm9ybWFsaXplZFF1YXRl
cm5pb24ocXVhdGVybmlvbi54IC8gbWFnbml0dWRlLCBxdWF0ZXJuaW9uLnkgLyBtYWduaXR1ZGUs
IHF1YXRlcm5pb24ueiAvIG1hZ25pdHVkZSwgcXVhdGVybmlvbi53IC8gbWFnbml0dWRlKTsKLSAg
ICBkb3VibGUgeDIgPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5p
b24ueDsKLSAgICBkb3VibGUgeTIgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXpl
ZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgejIgPSBub3JtYWxpemVkUXVhdGVybmlvbi56ICog
bm9ybWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgdzIgPSBub3JtYWxpemVkUXVhdGVy
bmlvbi53ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBkb3VibGUgeHkgPSBub3JtYWxp
emVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgencg
PSBub3JtYWxpemVkUXVhdGVybmlvbi56ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBk
b3VibGUgeHogPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24u
ejsKLSAgICBkb3VibGUgeXcgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXplZFF1
YXRlcm5pb24udzsKLSAgICBkb3VibGUgeXogPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9y
bWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgeHcgPSBub3JtYWxpemVkUXVhdGVybmlv
bi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLQotICAgIHJldHVybiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgKLSAgICAgICAgeDIgLSB5MiAtIHoyICsgdzIsIDIuMCAqICh4eSAtIHp3KSwgMi4w
ICogKHh6ICsgeXcpLCAwLAotICAgICAgICAyLjAgKiAoeHkgKyB6dyksIC14MiArIHkyIC0gejIg
KyB3MiwgMi4wICogKHl6IC0geHcpLCAwLAotICAgICAgICAyLjAgKiAoeHogLSB5dyksIDIuMCAq
ICh5eiArIHh3KSwgLXgyIC0geTIgKyB6MiArIHcyLCAwLAotICAgICAgICAwLCAwLCAwLCAxKTsK
LX0KLQotc3RhdGljIHZvaWQgYXBwbHlIZWFkVG9FeWVUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgY29uc3QgRmxvYXRQb2ludDNEJiB0cmFuc2xhdGlvbikKLXsKLSAgICBt
YXRyaXguc2V0TTQxKG1hdHJpeC5tNDEoKSAtIHRyYW5zbGF0aW9uLngoKSk7Ci0gICAgbWF0cml4
LnNldE00MihtYXRyaXgubTQyKCkgLSB0cmFuc2xhdGlvbi55KCkpOwotICAgIG1hdHJpeC5zZXRN
NDMobWF0cml4Lm00MygpIC0gdHJhbnNsYXRpb24ueigpKTsKLX0KLQotdm9pZCBWUkZyYW1lRGF0
YTo6dXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5mbywgY29u
c3QgVlJFeWVQYXJhbWV0ZXJzJiBsZWZ0RXllLCBjb25zdCBWUkV5ZVBhcmFtZXRlcnMmIHJpZ2h0
RXllLCBkb3VibGUgZGVwdGhOZWFyLCBkb3VibGUgZGVwdGhGYXIpCi17Ci0gICAgbV9sZWZ0UHJv
amVjdGlvbk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcobGVmdEV5ZS5m
aWVsZE9mVmlldygpLCBkZXB0aE5lYXIsIGRlcHRoRmFyKTsKLSAgICBtX3JpZ2h0UHJvamVjdGlv
bk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcocmlnaHRFeWUuZmllbGRP
ZlZpZXcoKSwgZGVwdGhOZWFyLCBkZXB0aEZhcik7Ci0KLSAgICBtX3RpbWVzdGFtcCA9IHRyYWNr
aW5nSW5mby50aW1lc3RhbXA7Ci0gICAgbV9wb3NlLT51cGRhdGUodHJhY2tpbmdJbmZvKTsKLQot
ICAgIGF1dG8gcm90YXRpb25NYXRyaXggPSByb3RhdGlvbk1hdHJpeEZyb21RdWF0ZXJuaW9uKHRy
YWNraW5nSW5mby5vcmllbnRhdGlvbi52YWx1ZU9yKFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1
YXRlcm5pb24oMCwgMCwgMCwgMSkpKTsKLSAgICBGbG9hdFBvaW50M0QgcG9zaXRpb24gPSB0cmFj
a2luZ0luZm8ucG9zaXRpb24udmFsdWVPcihGbG9hdFBvaW50M0QoMCwgMCwgMCkpOwotICAgIHJv
dGF0aW9uTWF0cml4LnRyYW5zbGF0ZTNkKC1wb3NpdGlvbi54KCksIC1wb3NpdGlvbi55KCksIC1w
b3NpdGlvbi56KCkpOwotCi0gICAgbV9sZWZ0Vmlld01hdHJpeCA9IHJvdGF0aW9uTWF0cml4Owot
ICAgIGFwcGx5SGVhZFRvRXllVHJhbnNmb3JtKG1fbGVmdFZpZXdNYXRyaXgsIGxlZnRFeWUucmF3
T2Zmc2V0KCkpOwotCi0gICAgbV9yaWdodFZpZXdNYXRyaXggPSByb3RhdGlvbk1hdHJpeDsKLSAg
ICBhcHBseUhlYWRUb0V5ZVRyYW5zZm9ybShtX3JpZ2h0Vmlld01hdHJpeCwgcmlnaHRFeWUucmF3
T2Zmc2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVmM2JjN2FiNmE1ZGMxNjBlZjA3MDM4MmExMzUwMjY5NTk1NTE5NDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0
ZXJzOwotY2xhc3MgVlJQb3NlOwotc3RydWN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm87Ci0KLWNs
YXNzIFZSRnJhbWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8VlJGcmFtZURhdGE+IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFZSRnJhbWVEYXRhPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJGcmFtZURhdGEpOwotICAgIH0KLQotICAgIGRvdWJsZSB0
aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotCi0gICAgUmVmPEZsb2F0
MzJBcnJheT4gbGVmdFByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKLSAgICBSZWY8RmxvYXQzMkFy
cmF5PiBsZWZ0Vmlld01hdHJpeCgpIGNvbnN0OwotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmln
aHRQcm9qZWN0aW9uTWF0cml4KCkgY29uc3Q7Ci0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmlnaHRW
aWV3TWF0cml4KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBWUlBvc2UmIHBvc2UoKSBjb25zdDsKLQot
ICAgIHZvaWQgdXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mLCBjb25zdCBWUkV5
ZVBhcmFtZXRlcnMmIGxlZnRFeWUsIGNvbnN0IFZSRXllUGFyYW1ldGVycyYgcmlnaHRFeWUsIGRv
dWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcik7Ci0KLXByaXZhdGU6Ci0gICAgVlJGcmFt
ZURhdGEoKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcCB7IDAgfTsKLSAgICBSZWY8VlJQb3Nl
PiBtX3Bvc2U7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9sZWZ0UHJvamVjdGlvbk1hdHJp
eDsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3JpZ2h0UHJvamVjdGlvbk1hdHJpeDsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2xlZnRWaWV3TWF0cml4OwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fcmlnaHRWaWV3TWF0cml4OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZyYW1lRGF0YS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRhNGJkMjg2ZmJjNmYwZGM5MGE1N2M1ZDFkZTNmNTkz
Njg0NGVkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLXR5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNU
aW1lU3RhbXA7Ci0KLVsKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgQ29uc3RydWN0b3IKLV0gaW50ZXJmYWNlIFZSRnJhbWVE
YXRhIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lc3Rh
bXA7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IGxlZnRQcm9qZWN0aW9u
TWF0cml4OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbGVmdFZpZXdNYXRy
aXg7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0UHJvamVjdGlv
bk1hdHJpeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0Vmlld01h
dHJpeDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlBvc2UgcG9zZTsKLX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgzMzMxM2Y4ODY0NWI1ZWYyZmQ4MmIyZTAyOGExZDRjMjUxNDY4YWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFZSTGF5ZXJJbml0IHsKLSAgICBSZWZQdHI8
SFRNTENhbnZhc0VsZW1lbnQ+IHNvdXJjZTsKLSAgICBWZWN0b3I8ZmxvYXQ+IGxlZnRCb3VuZHM7
Ci0gICAgVmVjdG9yPGZsb2F0PiByaWdodEJvdW5kczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZTdkNjgwNjExZTlhMTgxZmFmODJmYzUwOTc5
NWRjNGZlY2MwZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKKysrIC9kZXYv
bnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiB0eXBlZGVmIChI
VE1MQ2FudmFzRWxlbWVudCBvciBPZmZzY3JlZW5DYW52YXMpIFZSU291cmNlOwotdHlwZWRlZiBI
VE1MQ2FudmFzRWxlbWVudCBWUlNvdXJjZTsKLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
VlIsCi0gICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLV0gZGljdGlvbmFyeSBWUkxheWVySW5pdCB7
Ci0gICAgVlJTb3VyY2U/IHNvdXJjZSA9IG51bGw7Ci0KLSAgICBzZXF1ZW5jZTxmbG9hdD4gbGVm
dEJvdW5kcyA9IFsgXTsKLSAgICBzZXF1ZW5jZTxmbG9hdD4gcmlnaHRCb3VuZHMgPSBbIF07Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5OWFmYzE0Mzk5M2Y3NzQ3MzI0Mjk4ZjI0NTkxN2UxZGRjMTFkNGVhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUlBvc2UuaCIK
LQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG9wdGlvbmFsRmxv
YXQzVG9KU0NBcnJheShjb25zdCBPcHRpb25hbDxWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9h
dDM+JiBkYXRhKQotewotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoZGF0YS0+ZGF0YSwgMyk7Ci19Ci0KLVJl
ZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6cG9zaXRpb24oKSBjb25zdAotewotICAgIGlmICgh
bV90cmFja2luZ0luZm8ucG9zaXRpb24pCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
YXV0byYgcG9zaXRpb24gPSAqbV90cmFja2luZ0luZm8ucG9zaXRpb247Ci0gICAgZmxvYXQgcG9z
aXRpb25EYXRhWzNdID0geyBwb3NpdGlvbi54KCksIHBvc2l0aW9uLnkoKSwgcG9zaXRpb24ueigp
IH07Ci0gICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHBvc2l0aW9uRGF0YSwgMyk7Ci19
Ci0KLVJlZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6bGluZWFyVmVsb2NpdHkoKSBjb25zdAot
ewotICAgIHJldHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8ubGlu
ZWFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6OmxpbmVhckFj
Y2VsZXJhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9KU0NBcnJh
eShtX3RyYWNraW5nSW5mby5saW5lYXJBY2NlbGVyYXRpb24pOwotfQotCi1SZWZQdHI8RmxvYXQz
MkFycmF5PiBWUlBvc2U6Om9yaWVudGF0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fdHJhY2tp
bmdJbmZvLm9yaWVudGF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8m
IG9yaWVudGF0aW9uID0gKm1fdHJhY2tpbmdJbmZvLm9yaWVudGF0aW9uOwotICAgIGZsb2F0IG9y
aWVudGF0aW9uRGF0YVs0XSA9IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50
YXRpb24ueiwgb3JpZW50YXRpb24udyB9OwotICAgIHJldHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0
ZShvcmllbnRhdGlvbkRhdGEsIDQpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6
OmFuZ3VsYXJWZWxvY2l0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9K
U0NBcnJheShtX3RyYWNraW5nSW5mby5hbmd1bGFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8Rmxv
YXQzMkFycmF5PiBWUlBvc2U6OmFuZ3VsYXJBY2NlbGVyYXRpb24oKSBjb25zdAotewotICAgIHJl
dHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8uYW5ndWxhckFjY2Vs
ZXJhdGlvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSUG9zZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzIzYzgzNzZj
ZTFhZjc3Njc1OTdkMTliOTJmZWE1YmU5N2Y4ZmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3Nl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxWUlBv
c2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZSUG9zZT4gY3JlYXRlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSUG9zZSk7Ci0gICAgfQotCi0gICAgc3RhdGlj
IFJlZjxWUlBvc2U+IGNyZWF0ZShjb25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2lu
Z0luZm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlBvc2UodHJhY2tp
bmdJbmZvKSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gcG9zaXRpb24oKSBj
b25zdDsKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBsaW5lYXJWZWxvY2l0eSgpIGNvbnN0Owot
ICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGxpbmVhckFjY2VsZXJhdGlvbigpIGNvbnN0OwotCi0g
ICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gb3JpZW50YXRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8
RmxvYXQzMkFycmF5PiBhbmd1bGFyVmVsb2NpdHkoKSBjb25zdDsKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiBhbmd1bGFyQWNjZWxlcmF0aW9uKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHVwZGF0ZShj
b25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2luZ0luZm8pIHsgbV90cmFja2luZ0lu
Zm8gPSB0cmFja2luZ0luZm87IH07Ci0KLXByaXZhdGU6Ci0gICAgVlJQb3NlKCkgPSBkZWZhdWx0
OwotCi0gICAgVlJQb3NlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5m
bykKLSAgICAgICAgOiBtX3RyYWNraW5nSW5mbyh0cmFja2luZ0luZm8pCi0gICAgewotICAgIH0K
LQotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gbV90cmFja2luZ0luZm87Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSUG9zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSUG9zZS5pZGwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNWEwYmU1Yjk3NjFmYzdkM2I3NWM1NzY2
NDY4YmU5MzYyNTk3NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKLV0gaW50ZXJmYWNlIFZSUG9zZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZs
b2F0MzJBcnJheT8gcG9zaXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gbGluZWFyVmVsb2NpdHk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8g
bGluZWFyQWNjZWxlcmF0aW9uOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gb3JpZW50YXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8gYW5n
dWxhclZlbG9jaXR5OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXk/IGFuZ3Vs
YXJBY2NlbGVyYXRpb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZl
NTczMjZjNTI0YTU3Njk3M2JjM2I2YTdjODY0ZDgxODgyMjU3My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0
ZXJzLmgiCi0KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUlN0YWdlUGFyYW1ldGVyczo6VlJTdGFnZVBhcmFtZXRl
cnMoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFNpemUmIHBsYXlBcmVhQm91bmRzKQotICAgIDogbV9wbGF5QXJlYUJvdW5k
cyhwbGF5QXJlYUJvdW5kcykKLSAgICAsIG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oc2l0
dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0pCi17Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSU3Rh
Z2VQYXJhbWV0ZXJzOjpzaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAg
YXV0byBjb2x1bW5NYWpvck1hdHJpeCA9IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0udG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Y29sdW1uTWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLWZsb2F0IFZSU3RhZ2VQYXJhbWV0
ZXJzOjpzaXplWCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheUFyZWFCb3VuZHMud2lkdGgo
KTsKLX0KLQotZmxvYXQgVlJTdGFnZVBhcmFtZXRlcnM6OnNpemVaKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wbGF5QXJlYUJvdW5kcy5oZWlnaHQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVy
cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE5NmI3YWMzNzUzZjc3MjQ5ODRl
OTJkZDNmOGExNDViZDkxOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKLQotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlN0YWdlUGFyYW1ldGVycyA6IHB1YmxpYyBSZWZD
b3VudGVkPFZSU3RhZ2VQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxW
UlN0YWdlUGFyYW1ldGVycz4gY3JlYXRlKGNvbnN0IE9wdGlvbmFsPFRyYW5zZm9ybWF0aW9uTWF0
cml4PiYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IE9wdGlvbmFsPEZsb2F0U2l6
ZT4mIHBsYXlBcmVhQm91bmRzKQotICAgIHsKLSAgICAgICAgaWYgKCFzaXR0aW5nVG9TdGFuZGlu
Z1RyYW5zZm9ybSB8fCAhcGxheUFyZWFCb3VuZHMpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlN0YWdlUGFyYW1ldGVycyhzaXR0
aW5nVG9TdGFuZGluZ1RyYW5zZm9ybS52YWx1ZSgpLCBwbGF5QXJlYUJvdW5kcy52YWx1ZSgpKSk7
Ci0gICAgfQotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zv
cm0oKSBjb25zdDsKLQotICAgIGZsb2F0IHNpemVYKCkgY29uc3Q7Ci0gICAgZmxvYXQgc2l6ZVoo
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBWUlN0YWdlUGFyYW1ldGVycyhjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0U2l6
ZSYgcGxheUFyZWFCb3VuZHMpOwotCi0gICAgRmxvYXRTaXplIG1fcGxheUFyZWFCb3VuZHM7Ci0g
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIzNzMxZTdiMDM3NzEwNWQwZjkyYmZjYzdlZDEzNDUwOWVkNWU4ZWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBWUlN0YWdlUGFyYW1ldGVycyB7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBzaXR0aW5nVG9TdGFuZGluZ1RyYW5z
Zm9ybTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzaXplWDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgc2l6ZVo7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmNjc1ODAxNGFi
NzI2N2IzZGM4MWUyZWYzZGEyMThlZTdkNzMwZjJkLi44YzY3NDRlZWYxZTU2MjMzYzdmYWVhYmRm
ZjFhZjE4MmUxYzE1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDEwLDE0ICs0MTAsNiBAQCBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVy
ZVZpZXcuY3BwCiBNb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuY3BwCiAKLU1vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHAK
LU1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKLU1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwCi1Nb2R1bGVzL3dlYnZy
L1ZSUG9zZS5jcHAKLU1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuY3BwCi0KIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApA
QCAtMjA2OCwxMSArMjA2MCw2IEBAIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAogcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCiAKLXBsYXRmb3JtL3ZyL1ZSTWFuYWdlci5jcHAKLXBsYXRm
b3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSLmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2Vy
T3BlblZSLmNwcAotCiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAogcGx1Z2lucy9ET01NaW1lVHlw
ZUFycmF5LmNwcAogcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBAIC0yODIwLDcgKzI4MDcsNiBAQCBK
U0RPTVdpbmRvd0ZldGNoLmNwcAogSlNET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBKU0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCi1K
U0RPTVdpbmRvd1dlYlZSLmNwcAogSlNEYXRhVHJhbnNmZXIuY3BwCiBKU0RhdGFUcmFuc2Zlckl0
ZW0uY3BwCiBKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtMzExNCw3ICszMTAwLDYgQEAg
SlNOYXZpZ2F0b3JTaGFyZS5jcHAKIEpTU2hhcmVEYXRhLmNwcAogSlNOYXZpZ2F0b3JTZXJ2aWNl
V29ya2VyLmNwcAogSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCi1KU05hdmlnYXRvcldlYlZSLmNw
cAogSlNOb2RlLmNwcAogSlNOb2RlRmlsdGVyLmNwcAogSlNOb2RlSXRlcmF0b3IuY3BwCkBAIC0z
NDUxLDE3ICszNDM2LDYgQEAgSlNVSUV2ZW50LmNwcAogSlNVSUV2ZW50SW5pdC5jcHAKIEpTVVJM
U2VhcmNoUGFyYW1zLmNwcAogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwCi1KU1ZS
RGlzcGxheS5jcHAKLUpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcAotSlNWUkRpc3BsYXlFdmVu
dC5jcHAKLUpTVlJEaXNwbGF5RXZlbnRSZWFzb24uY3BwCi1KU1ZSRXllLmNwcAotSlNWUkV5ZVBh
cmFtZXRlcnMuY3BwCi1KU1ZSRmllbGRPZlZpZXcuY3BwCi1KU1ZSRnJhbWVEYXRhLmNwcAotSlNW
UkxheWVySW5pdC5jcHAKLUpTVlJQb3NlLmNwcAotSlNWUlN0YWdlUGFyYW1ldGVycy5jcHAKIEpT
VmFsaWRpdHlTdGF0ZS5jcHAKIEpTVmlkZW9Db25maWd1cmF0aW9uLmNwcAogSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5jcHAKQEAgLTM1MzksMTEgKzM1MTMsOCBAQCBKU1hTTFRQcm9jZXNzb3IuY3Bw
CiBKU0dhbWVwYWQuY3BwCiBKU0dhbWVwYWRCdXR0b24uY3BwCiBKU0dhbWVwYWRFdmVudC5jcHAK
LUpTR2FtZXBhZFdlYlZSLmNwcAogSlNOYXZpZ2F0b3JHYW1lcGFkLmNwcAogCi1Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5jcHAKLQogI2VuZGlmCiAKICNpZiBFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGMzODZmNzMyNWQ2MWQzNjM2NDkzMzQwYjY1MmY0YTJmMTM5ZjVlMmMu
LmFkZjQ5NjkyNDFlZTA5YTkzMDE0MDhmZDNhMzgxYzk4MjEyNGE5M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY4MzgsNjMg
KzY4MzgsNiBAQAogCQkyREFGMzQzQTFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0
eU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25zdGFudFBy
b3BlcnR5TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBRjM0M0IxRUE3
RTBGMTAwMzgyQ0QzIC8qIENvbnN0YW50UHJvcGVydHlNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29uc3RhbnRQcm9wZXJ0eU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREQ1QTcyNjFFQkVFNDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25VbmRlcmxp
bmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQUQxRjU3NDdBMzAwRDFB
MzY1IC8qIERPTVdpbmRvd1dlYlZSLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01XaW5k
b3dXZWJWUi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0FFMUY1NzQ3
QTMwMEQxQTM2NSAvKiBHYW1lcGFkV2ViVlIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2FtZXBhZFdlYlZSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDQUYxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVwYWRXZWJWUi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHYW1lcGFkV2ViVlIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMkRERTFDQjAxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVwYWRXZWJWUi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2FtZXBhZFdlYlZSLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjExRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZS
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRvcldlYlZS
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjIxRjU3NDdBMzAwRDFB
MzY1IC8qIE5hdmlnYXRvcldlYlZSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5hdmlnYXRvcldlYlZSLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0Iz
MUY1NzQ3QTMwMEQxQTM2NSAvKiBOYXZpZ2F0b3JXZWJWUi5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTmF2aWdhdG9yV2ViVlIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RERFMUNCNDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSRGlzcGxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJEREUxQ0I1MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJEaXNwbGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTJEREUxQ0I2MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXkuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSRGlzcGxheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJEREUxQ0I4MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJEaXNwbGF5Q2FwYWJpbGl0
aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0I5MUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFZSRGlzcGxheUNhcGFiaWxpdGllcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTJEREUxQ0JBMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUkRpc3BsYXlFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0JCMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3Bs
YXlFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkRpc3BsYXlFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCQzFGNTc0N0EzMDBEMUEz
NjUgLyogVlJEaXNwbGF5RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSRGlzcGxh
eUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkQxRjU3NDdB
MzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50UmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZSRGlzcGxheUV2ZW50UmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJEREUxQ0JFMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudFJlYXNv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCRjFGNTc0N0EzMDBEMUEzNjUgLyog
VlJFeWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJFeWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzAxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRXll
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkV5ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTJEREUxQ0MxMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZVBhcmFtZXRlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlJFeWVQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzIxRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRXllUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWUkV5ZVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFD
QzMxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRXllUGFyYW1ldGVycy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gVlJFeWVQYXJhbWV0ZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDQzUxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRmllbGRPZlZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJGaWVsZE9mVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRERFMUNDNjFGNTc0N0EzMDBEMUEzNjUgLyogVlJGaWVsZE9mVmlldy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJGaWVsZE9mVmlldy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0M3MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkZyYW1lRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUkZyYW1lRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0M4MUY1NzQ3QTMwMEQxQTM2
NSAvKiBWUkZyYW1lRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkZy
YW1lRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNDOTFGNTc0N0Ez
MDBEMUEzNjUgLyogVlJGcmFtZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSRnJh
bWVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0ExRjU3NDdB
MzAwRDFBMzY1IC8qIFZSTGF5ZXJJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZSTGF5ZXJJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0NC
MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkxheWVySW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gVlJMYXllckluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUND
QzFGNTc0N0EzMDBEMUEzNjUgLyogVlJQb3NlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFZSUG9zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJE
REUxQ0NEMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVlJQb3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUx
Q0NFMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFZSUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0NGMUY1NzQ3
QTMwMEQxQTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBWUlN0YWdlUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTJEREUxQ0QwMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUlN0YWdlUGFyYW1ldGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNEMTFGNTc0N0EzMDBEMUEzNjUg
LyogVlJTdGFnZVBhcmFtZXRlcnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSU3RhZ2VQ
YXJhbWV0ZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDREQxRjU3
NEFBQjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVlJEaXNwbGF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDREUxRjU3NEFBQjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJEaXNwbGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJEREUxQ0RGMUY1NzRBRDEwMEQxQTM2NSAvKiBKU1ZSRmllbGRPZlZpZXcuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkZpZWxkT2ZWaWV3LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRTAxRjU3NEFEMTAwRDFBMzY1
IC8qIEpTVlJGaWVsZE9mVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZSRmllbGRPZlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRTUx
RjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRTYxRjU3NEJGRjAwRDFBMzY1IC8q
IEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTJEREUxQ0U3MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNFODFGNTc0QkZGMDBEMUEzNjUgLyog
SlNWUkRpc3BsYXlFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZS
RGlzcGxheUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0U5MUY1
NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50UmVhc29uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnRSZWFzb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNFQTFGNTc0QkZGMDBEMUEzNjUgLyogSlNW
UkRpc3BsYXlFdmVudFJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZSRGlzcGxheUV2ZW50UmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJE
REUxQ0VCMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJFeWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkyRERFMUNFQzFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkV5ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZSRXllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTJEREUxQ0VEMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZSRXllUGFyYW1ldGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VFMUY1NzRCRkYwMEQxQTM2NSAv
KiBKU1ZSRXllUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZSRXllUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNF
RjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkZyYW1lRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZSRnJhbWVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMkRERTFDRjAxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJGcmFtZURhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUkZyYW1lRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNGMTFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkxh
eWVySW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZSTGF5
ZXJJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRjIxRjU3NEJG
RjAwRDFBMzY1IC8qIEpTVlJMYXllckluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNWUkxheWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERF
MUNGMzFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUlBvc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNWUlBvc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkyRERFMUNGNDFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUlBvc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUlBvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMkRERTFDRjUxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUlN0YWdlUGFyYW1ldGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0Y2MUY1NzRCRkYwMEQx
QTM2NSAvKiBKU1ZSU3RhZ2VQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTVlJTdGFnZVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0IxRDg3M0U0NzAwMUQ2
NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVw
bGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY5NDEsNyArMTY4ODQsNiBAQAogCQkJCUZEQTE1RTdCMTJCMDNFMDQwMDNBNTgz
QSAvKiBXZWJBdWRpbyAqLywKIAkJCQk1N0Q4NDYyRjFGRUFGQjA1MDBDQTM2ODIgLyogV2ViQXV0
aE4gKi8sCiAJCQkJNURBNUUwRjkxMDJCOTUwNDAwMDg4Q0Y5IC8qIFdlYlNvY2tldHMgKi8sCi0J
CQkJMkRERTFDREMxRjU3NEE1NjAwRDFBMzY1IC8qIFdlYlZSICovLAogCQkJCUJDOTg1NDQzMENE
M0Q5RDAwMDA2OUJDMSAvKiBXaW5kb3cgKi8sCiAJCQkJQTgzQjc5MjIwQ0NCMDBGMDAwMEIwODI1
IC8qIFhNTCAqLywKIAkJCQlBODNCNzkwQzBDQ0FGRjgzMDAwQjA4MjUgLyogWFBhdGggKi8sCkBA
IC0xNzg4NCw3NyArMTc4MjYsNiBAQAogCQkJcGF0aCA9ICJnZXN0dXJlLXJlY29nbml6ZXJzIjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTJEREUxQ0FCMUY1NzQ3NTkwMEQx
QTM2NSAvKiB3ZWJ2ciAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJMkRERTFDQUQxRjU3NDdBMzAwRDFBMzY1IC8qIERPTVdpbmRvd1dlYlZSLmlkbCAqLywK
LQkJCQkyRERFMUNBRTFGNTc0N0EzMDBEMUEzNjUgLyogR2FtZXBhZFdlYlZSLmNwcCAqLywKLQkJ
CQkyRERFMUNBRjFGNTc0N0EzMDBEMUEzNjUgLyogR2FtZXBhZFdlYlZSLmggKi8sCi0JCQkJMkRE
RTFDQjAxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVwYWRXZWJWUi5pZGwgKi8sCi0JCQkJMkRERTFD
QjExRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZSLmNwcCAqLywKLQkJCQkyRERFMUNC
MjFGNTc0N0EzMDBEMUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuaCAqLywKLQkJCQkyRERFMUNCMzFG
NTc0N0EzMDBEMUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuaWRsICovLAotCQkJCTJEREUxQ0I0MUY1
NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXkuY3BwICovLAotCQkJCTJEREUxQ0I1MUY1NzQ3QTMw
MEQxQTM2NSAvKiBWUkRpc3BsYXkuaCAqLywKLQkJCQkyRERFMUNCNjFGNTc0N0EzMDBEMUEzNjUg
LyogVlJEaXNwbGF5LmlkbCAqLywKLQkJCQkyRERFMUNCODFGNTc0N0EzMDBEMUEzNjUgLyogVlJE
aXNwbGF5Q2FwYWJpbGl0aWVzLmggKi8sCi0JCQkJMkRERTFDQjkxRjU3NDdBMzAwRDFBMzY1IC8q
IFZSRGlzcGxheUNhcGFiaWxpdGllcy5pZGwgKi8sCi0JCQkJMkRERTFDQkExRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRGlzcGxheUV2ZW50LmNwcCAqLywKLQkJCQkyRERFMUNCQjFGNTc0N0EzMDBEMUEz
NjUgLyogVlJEaXNwbGF5RXZlbnQuaCAqLywKLQkJCQkyRERFMUNCQzFGNTc0N0EzMDBEMUEzNjUg
LyogVlJEaXNwbGF5RXZlbnQuaWRsICovLAotCQkJCTJEREUxQ0JEMUY1NzQ3QTMwMEQxQTM2NSAv
KiBWUkRpc3BsYXlFdmVudFJlYXNvbi5oICovLAotCQkJCTJEREUxQ0JFMUY1NzQ3QTMwMEQxQTM2
NSAvKiBWUkRpc3BsYXlFdmVudFJlYXNvbi5pZGwgKi8sCi0JCQkJMkRERTFDQkYxRjU3NDdBMzAw
RDFBMzY1IC8qIFZSRXllLmggKi8sCi0JCQkJMkRERTFDQzAxRjU3NDdBMzAwRDFBMzY1IC8qIFZS
RXllLmlkbCAqLywKLQkJCQkyRERFMUNDMTFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0
ZXJzLmNwcCAqLywKLQkJCQkyRERFMUNDMjFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0
ZXJzLmggKi8sCi0JCQkJMkRERTFDQzMxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRXllUGFyYW1ldGVy
cy5pZGwgKi8sCi0JCQkJMkRERTFDQzUxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRmllbGRPZlZpZXcu
aCAqLywKLQkJCQkyRERFMUNDNjFGNTc0N0EzMDBEMUEzNjUgLyogVlJGaWVsZE9mVmlldy5pZGwg
Ki8sCi0JCQkJMkRERTFDQzcxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRnJhbWVEYXRhLmNwcCAqLywK
LQkJCQkyRERFMUNDODFGNTc0N0EzMDBEMUEzNjUgLyogVlJGcmFtZURhdGEuaCAqLywKLQkJCQky
RERFMUNDOTFGNTc0N0EzMDBEMUEzNjUgLyogVlJGcmFtZURhdGEuaWRsICovLAotCQkJCTJEREUx
Q0NBMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkxheWVySW5pdC5oICovLAotCQkJCTJEREUxQ0NCMUY1
NzQ3QTMwMEQxQTM2NSAvKiBWUkxheWVySW5pdC5pZGwgKi8sCi0JCQkJMkRERTFDQ0MxRjU3NDdB
MzAwRDFBMzY1IC8qIFZSUG9zZS5jcHAgKi8sCi0JCQkJMkRERTFDQ0QxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSUG9zZS5oICovLAotCQkJCTJEREUxQ0NFMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2Uu
aWRsICovLAotCQkJCTJEREUxQ0NGMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVy
cy5jcHAgKi8sCi0JCQkJMkRERTFDRDAxRjU3NDdBMzAwRDFBMzY1IC8qIFZSU3RhZ2VQYXJhbWV0
ZXJzLmggKi8sCi0JCQkJMkRERTFDRDExRjU3NDdBMzAwRDFBMzY1IC8qIFZSU3RhZ2VQYXJhbWV0
ZXJzLmlkbCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gd2VidnI7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwotCQkyRERFMUNEQzFGNTc0QTU2MDBEMUEzNjUgLyogV2ViVlIgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTJEREUxQ0REMUY1NzRB
QUIwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheS5jcHAgKi8sCi0JCQkJMkRERTFDREUxRjU3NEFBQjAw
RDFBMzY1IC8qIEpTVlJEaXNwbGF5LmggKi8sCi0JCQkJMkRERTFDRTUxRjU3NEJGRjAwRDFBMzY1
IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcCAqLywKLQkJCQkyRERFMUNFNjFGNTc0QkZG
MDBEMUEzNjUgLyogSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaCAqLywKLQkJCQkyRERFMUNFNzFG
NTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlFdmVudC5jcHAgKi8sCi0JCQkJMkRERTFDRTgx
RjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnQuaCAqLywKLQkJCQkyRERFMUNFOTFG
NTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlFdmVudFJlYXNvbi5jcHAgKi8sCi0JCQkJMkRE
RTFDRUExRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRSZWFzb24uaCAqLywKLQkJ
CQkyRERFMUNFQjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkV5ZS5jcHAgKi8sCi0JCQkJMkRERTFD
RUMxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWUuaCAqLywKLQkJCQkyRERFMUNFRDFGNTc0QkZG
MDBEMUEzNjUgLyogSlNWUkV5ZVBhcmFtZXRlcnMuY3BwICovLAotCQkJCTJEREUxQ0VFMUY1NzRC
RkYwMEQxQTM2NSAvKiBKU1ZSRXllUGFyYW1ldGVycy5oICovLAotCQkJCTJEREUxQ0RGMUY1NzRB
RDEwMEQxQTM2NSAvKiBKU1ZSRmllbGRPZlZpZXcuY3BwICovLAotCQkJCTJEREUxQ0UwMUY1NzRB
RDEwMEQxQTM2NSAvKiBKU1ZSRmllbGRPZlZpZXcuaCAqLywKLQkJCQkyRERFMUNFRjFGNTc0QkZG
MDBEMUEzNjUgLyogSlNWUkZyYW1lRGF0YS5jcHAgKi8sCi0JCQkJMkRERTFDRjAxRjU3NEJGRjAw
RDFBMzY1IC8qIEpTVlJGcmFtZURhdGEuaCAqLywKLQkJCQkyRERFMUNGMTFGNTc0QkZGMDBEMUEz
NjUgLyogSlNWUkxheWVySW5pdC5jcHAgKi8sCi0JCQkJMkRERTFDRjIxRjU3NEJGRjAwRDFBMzY1
IC8qIEpTVlJMYXllckluaXQuaCAqLywKLQkJCQkyRERFMUNGMzFGNTc0QkZGMDBEMUEzNjUgLyog
SlNWUlBvc2UuY3BwICovLAotCQkJCTJEREUxQ0Y0MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSUG9z
ZS5oICovLAotCQkJCTJEREUxQ0Y1MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSU3RhZ2VQYXJhbWV0
ZXJzLmNwcCAqLywKLQkJCQkyRERFMUNGNjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUlN0YWdlUGFy
YW1ldGVycy5oICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJWUjsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07CiAJCTJFNDM0NjMxMEY1NDZBNjgwMEIwRjFCQSAvKiB3b3JrZXJzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIyMzk3LDcgKzIy
MjY4LDYgQEAKIAkJCQk5OTZFNTlEQTFERjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJpdmVyICovLAog
CQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJOTdBQUJDRjcx
NEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8sCi0JCQkJMkRERTFDQUIxRjU3NDc1OTAw
RDFBMzY1IC8qIHdlYnZyICovLAogCQkJKTsKIAkJCXBhdGggPSBNb2R1bGVzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAppbmRleCAyMjhjOGU5MTcxNzdkZjE5ZmE1NDI4Zjc1YmU5Y2I1ZTRm
YTllNjI3Li4xMjAzZDA3NDE5NjcwNjRkMzNmM2NjNmI4ODEzMWQxZTBlOGYwOGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0y
MjIsMTMgKzIyMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhUZXh0VHJhY2tD
dWUpIFwKICAgICBtYWNybyhVbmRvSXRlbSkgXAogICAgIG1hY3JvKFVuZG9NYW5hZ2VyKSBcCi0g
ICAgbWFjcm8oVlJEaXNwbGF5KSBcCi0gICAgbWFjcm8oVlJEaXNwbGF5Q2FwYWJpbGl0aWVzKSBc
Ci0gICAgbWFjcm8oVlJEaXNwbGF5RXZlbnQpIFwKLSAgICBtYWNybyhWUkV5ZVBhcmFtZXRlcnMp
IFwKLSAgICBtYWNybyhWUkZpZWxkT2ZWaWV3KSBcCi0gICAgbWFjcm8oVlJGcmFtZURhdGEpIFwK
LSAgICBtYWNybyhWUlN0YWdlUGFyYW1ldGVycykgXAogICAgIG1hY3JvKFZpc3VhbFZpZXdwb3J0
KSBcCiAgICAgbWFjcm8oV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdM
VmVydGV4QXJyYXlPYmplY3QpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggNzJjNmM4
MmM2YTY3MmI0Njg2MzY1Njk5ZmRhZGEwZTk5YzdhMTkwMC4uMTU3ZjMzMWMxYmE3M2MxMGQ1ZDMz
NDk2YWQyNWZlNjUzYTdjNTFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTgyLDcg
KzgyLDYgQEAgR2FtZXBhZEV2ZW50IGNvbmRpdGlvbmFsPUdBTUVQQUQKIE92ZXJjb25zdHJhaW5l
ZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYUVuY3J5cHRlZEV2ZW50
IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQogTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0
aW9uYWw9RU5DUllQVEVEX01FRElBCi1WUkRpc3BsYXlFdmVudAogUG9pbnRlckV2ZW50IGNvbmRp
dGlvbmFsPVBPSU5URVJfRVZFTlRTCiBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudCBjb25kaXRpb25h
bD1XRUJHUFUKIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50IGNvbmRpdGlvbmFsPVBJQ1RVUkVf
SU5fUElDVFVSRV9BUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmlu
ZGV4IGQ0OWIxYjA5YmQ5ODQ5M2E0ZjFjYmRkOTJkNGUxMzk0M2Q0NDU2MjMuLjgxZTdjYzlmMGI3
NjUwNTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNDgsNyArNDgsNiBAQCBTcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJ
REVPX1RSQUNLCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFj
a0xpc3QgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKLVZSRGlzcGxheQogVmlkZW9UcmFja0xpc3Qg
Y29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFZpc3VhbFZpZXdwb3J0CiBXZWJBbmltYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9m
ZWF0dXJlcy5qc29uCmluZGV4IDFhNWMxODk0OGVjODExMDlmM2Y2ZWQ3ODZkNzBlOGZlNGQwMjBk
M2UuLmJiMjY3NDQ0ZjExZjUxNmFjOGI2ZWMzN2EyMzcwNDJiYWFiZTQxODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMuanNvbgpAQCAtNzcwLDIyICs3NzAsNiBAQAogICAgICAgICAgICAgImVtYWlsIjogIndlYi1l
dmFuZ2VsaXN0QGFwcGxlLmNvbSIKICAgICAgICAgfQogICAgIH0sCi0gICAgewotICAgICAgICAi
bmFtZSI6ICJXZWJWUiIsCi0gICAgICAgICJzdGF0dXMiOiB7Ci0gICAgICAgICAgICAic3RhdHVz
IjogIkluIERldmVsb3BtZW50IiwKLSAgICAgICAgICAgICJlbmFibGVkLWJ5LWRlZmF1bHQiOiBm
YWxzZQotICAgICAgICB9LAotICAgICAgICAidXJsIjogImh0dHBzOi8vdzNjLmdpdGh1Yi5pby93
ZWJ2ci9zcGVjLzEuMS8iLAotICAgICAgICAia2V5d29yZHMiOiBbIldlYlZSLCBWUiJdLAotICAg
ICAgICAiY2F0ZWdvcnkiOiAiaHRtbCIsCi0gICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIEphdmFT
Y3JpcHQgQVBJIHByb3ZpZGluZyBhY2Nlc3MgdG8gVlIgZGV2aWNlcyB0byBhbGxvdyBkZXZlbG9w
ZXJzIHRvIGJ1aWxkIGNvbWZvcnRhYmxlIFZSIGV4cGVyaWVuY2VzLiIsCi0gICAgICAgICJjb250
YWN0IjogewotICAgICAgICAgICAgIm5hbWUiOiAiU2VyZ2lvIFZpbGxhciBTZW5pbiIsCi0gICAg
ICAgICAgICAidHdpdHRlciI6ICJAc3ZpbGxhcnNlbmluIiwKLSAgICAgICAgICAgICJlbWFpbCI6
ICJzdmlsbGFyQGlnYWxpYS5jb20iCi0gICAgICAgIH0KLSAgICB9LAogICAgIHsKICAgICAgICAg
Im5hbWUiOiAiV29ya2xldHMgTGV2ZWwgMSIsCiAgICAgICAgICJzdGF0dXMiOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDYyMTIxMGFhMDUz
ZWE1MWY5OTI4MDg5YWFkM2IzZjhhOTQ2YmRkNzYuLjJhYjdmNTE1OTBiNTIxOTg5NzExNzU4NDRl
NDgwZjE2NzQwYWIyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCkBAIC0xMzcsOSArMTM3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVj
dG9yQWRkaXRpb25zRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2luc3BlY3RvckFkZGl0aW9u
c0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGluc3BlY3RvckFkZGl0aW9uc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQ7IH0KIAotICAg
IHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fd2ViVlJFbmFibGVkID0g
aXNFbmFibGVkOyB9Ci0gICAgYm9vbCB3ZWJWUkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dl
YlZSRW5hYmxlZDsgfQotCiAgICAgdm9pZCBzZXRBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCA9
IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZDsgfQogCkBA
IC00MzIsNyArNDI5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNXZWJTb2NrZXRFbmFibGVk
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9pbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fd2ViVlJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWNjZXNzaWJpbGl0eU9i
amVjdE1vZGVsRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FyaWFSZWZsZWN0aW9uRW5h
YmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXRwRGVidWdNb2RlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZjdlNjViMTg5ZTE4MTEzYjgwOTcwMDAyNWExNjNmYjMwZjQ0ZWQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3ZyL1ZSTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNl
cnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
KgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUk1hbmFnZXIuaCIKLQot
I2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybU1hbmFn
ZXIuaCIKLQotI2lmIFVTRShPUEVOVlIpCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybU1hbmFnZXJPcGVu
VlIuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVZSTWFuYWdlciYgVlJNYW5h
Z2VyOjpzaW5nbGV0b24oKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWUk1hbmFnZXI+
IGluc3RhbmNlOwotICAgIHJldHVybiBpbnN0YW5jZTsKLX0KLQotVlJNYW5hZ2VyOjpWUk1hbmFn
ZXIoKQotewotI2lmIFVTRShPUEVOVlIpCi0gICAgbV9wbGF0Zm9ybU1hbmFnZXIgPSBWUlBsYXRm
b3JtTWFuYWdlck9wZW5WUjo6Y3JlYXRlKCk7Ci0jZW5kaWYKLX0KLQotVlJNYW5hZ2VyOjp+VlJN
YW5hZ2VyKCkKLXsKLSAgICBtX3BsYXRmb3JtTWFuYWdlciA9IG51bGxwdHI7Ci19Ci0KLU9wdGlv
bmFsPFZSTWFuYWdlcjo6VlJEaXNwbGF5c1ZlY3Rvcj4gVlJNYW5hZ2VyOjpnZXRWUkRpc3BsYXlz
KCkKLXsKLSAgICBpZiAoIW1fcGxhdGZvcm1NYW5hZ2VyKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotCi0gICAgYXV0byBkaXNwbGF5cyA9IG1fcGxhdGZvcm1NYW5hZ2VyLT5nZXRWUkRp
c3BsYXlzKCk7Ci0gICAgVlJEaXNwbGF5c0hhc2hNYXAgbmV3RGlzcGxheXM7Ci0gICAgZm9yIChh
dXRvJiBkaXNwbGF5IDogZGlzcGxheXMpIHsKLSAgICAgICAgQVNTRVJUKGRpc3BsYXkpOwotICAg
ICAgICBuZXdEaXNwbGF5cy5hZGQoZGlzcGxheS0+Z2V0RGlzcGxheUluZm8oKS5kaXNwbGF5SWRl
bnRpZmllcigpLCBkaXNwbGF5KTsKLQotICAgICAgICBWUlBsYXRmb3JtRGlzcGxheUluZm8gaW5m
byA9IGRpc3BsYXktPmdldERpc3BsYXlJbmZvKCk7Ci0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBt
X2Rpc3BsYXlzLmZpbmQoaW5mby5kaXNwbGF5SWRlbnRpZmllcigpKTsKLSAgICAgICAgaWYgKGl0
ZXJhdG9yID09IG1fZGlzcGxheXMuZW5kKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAg
ICAgICBkaXNwbGF5LT51cGRhdGVEaXNwbGF5SW5mbygpOwotICAgICAgICBWUlBsYXRmb3JtRGlz
cGxheUluZm8gbmV3SW5mbyA9IGRpc3BsYXktPmdldERpc3BsYXlJbmZvKCk7Ci0gICAgICAgIGlm
IChpbmZvLmlzQ29ubmVjdGVkKCkgIT0gbmV3SW5mby5pc0Nvbm5lY3RlZCgpKQotICAgICAgICAg
ICAgZGlzcGxheS0+bm90aWZ5VlJQbGF0Zm9ybURpc3BsYXlFdmVudChuZXdJbmZvLmlzQ29ubmVj
dGVkKCkgPyBWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6OkNvbm5lY3RlZCA6IFZSUGxhdGZvcm1E
aXNwbGF5OjpFdmVudDo6RGlzY29ubmVjdGVkKTsKLSAgICAgICAgaWYgKGluZm8uaXNNb3VudGVk
KCkgIT0gbmV3SW5mby5pc01vdW50ZWQoKSkKLSAgICAgICAgICAgIGRpc3BsYXktPm5vdGlmeVZS
UGxhdGZvcm1EaXNwbGF5RXZlbnQobmV3SW5mby5pc01vdW50ZWQoKSA/IFZSUGxhdGZvcm1EaXNw
bGF5OjpFdmVudDo6TW91bnRlZCA6IFZSUGxhdGZvcm1EaXNwbGF5OjpFdmVudDo6VW5tb3VudGVk
KTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8mIGl0ZXIgOiBtX2Rpc3BsYXlzKSB7Ci0gICAgICAg
IEFTU0VSVChpdGVyLnZhbHVlKTsKLSAgICAgICAgaWYgKCFuZXdEaXNwbGF5cy5jb250YWlucyhp
dGVyLmtleSkpCi0gICAgICAgICAgICBpdGVyLnZhbHVlLT5ub3RpZnlWUlBsYXRmb3JtRGlzcGxh
eUV2ZW50KFZSUGxhdGZvcm1EaXNwbGF5OjpFdmVudDo6RGlzY29ubmVjdGVkKTsKLSAgICB9Ci0K
LSAgICBtX2Rpc3BsYXlzID0gV1RGTW92ZShuZXdEaXNwbGF5cyk7Ci0gICAgcmV0dXJuIGRpc3Bs
YXlzOwotfQotCi19OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92
ci9WUk1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RmM2I5ZTkyZDVj
N2JjNTZlMWI3MjRlNjZiNGI3ZDkzOGJkMGYzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFnZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSUGxhdGZvcm1EaXNwbGF5OwotY2xhc3Mg
VlJQbGF0Zm9ybU1hbmFnZXI7Ci0KLWNsYXNzIFZSTWFuYWdlciBmaW5hbCB7Ci0gICAgZnJpZW5k
IGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8VlJNYW5hZ2VyPjsKLXB1YmxpYzoKLSAgICB1c2lu
ZyBWUkRpc3BsYXlzVmVjdG9yID0gVmVjdG9yPFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+PjsK
LQotICAgIH5WUk1hbmFnZXIoKTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWUk1hbmFn
ZXImIHNpbmdsZXRvbigpOwotCi0gICAgT3B0aW9uYWw8VlJEaXNwbGF5c1ZlY3Rvcj4gZ2V0VlJE
aXNwbGF5cygpOwotCi1wcml2YXRlOgotICAgIFZSTWFuYWdlcigpOwotCi0gICAgdXNpbmcgVlJE
aXNwbGF5c0hhc2hNYXAgPSBIYXNoTWFwPHVpbnQzMl90LCBXZWFrUHRyPFZSUGxhdGZvcm1EaXNw
bGF5Pj47Ci0gICAgVlJEaXNwbGF5c0hhc2hNYXAgbV9kaXNwbGF5czsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8VlJQbGF0Zm9ybU1hbmFnZXI+IG1fcGxhdGZvcm1NYW5hZ2VyOwotfTsKLQotfTsgLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Zy
L1ZSUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxh
dGZvcm1EaXNwbGF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMwYTczNGU5
MmYwOTcwNDUyYzBiMGQxODEzOWY5MjEzZWY1MmNhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRm
b3JtRGlzcGxheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IElnYWxpYSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi12b2lkIFZSUGxhdGZvcm1EaXNwbGF5OjpzZXRDbGllbnQoVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQqIGNsaWVudCkKLXsKLSAgICBBU1NFUlQoIWNsaWVudCB8fCAhbV9j
bGllbnQpOwotICAgIG1fY2xpZW50ID0gY2xpZW50OwotfQotCi12b2lkIFZSUGxhdGZvcm1EaXNw
bGF5Ojpub3RpZnlWUlBsYXRmb3JtRGlzcGxheUV2ZW50KEV2ZW50IGV2ZW50KQotewotICAgIGlm
ICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN3aXRjaCAoZXZlbnQpIHsKLSAg
ICBjYXNlIEV2ZW50OjpDb25uZWN0ZWQ6Ci0gICAgICAgIG1fY2xpZW50LT5wbGF0Zm9ybURpc3Bs
YXlDb25uZWN0ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFdmVudDo6RGlzY29ubmVj
dGVkOgotICAgICAgICBtX2NsaWVudC0+cGxhdGZvcm1EaXNwbGF5RGlzY29ubmVjdGVkKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXZlbnQ6Ok1vdW50ZWQ6Ci0gICAgICAgIG1fY2xpZW50
LT5wbGF0Zm9ybURpc3BsYXlNb3VudGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXZl
bnQ6OlVubW91bnRlZDoKLSAgICAgICAgbV9jbGllbnQtPnBsYXRmb3JtRGlzcGxheVVubW91bnRl
ZCgpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGQyNGMyYmFlMWI2MTgzOGRmZjc1ZmE1NDE1NjkyMmE3NWY3MThmOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5oCisrKyAvZGV2L251bGwKQEAgLTEs
MTgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhLCBTLkwuIEFsbCBy
aWdodCByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRQb2ludDNE
LmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKLSNpbmNsdWRlICJWUlBsYXRm
b3JtRGlzcGxheUNsaWVudC5oIgotCi0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVm
IHVuc2lnbmVkIFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnczsKLQotZW51bSBWUkRpc3BsYXlDYXBh
YmlsaXR5RmxhZyB7Ci0gICAgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdOb25lID0gMCwKLSAgICBW
UkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9uID0gMSA8PCAxLAotICAgIFZSRGlzcGxheUNh
cGFiaWxpdHlGbGFnT3JpZW50YXRpb24gPSAxIDw8IDIsCi0gICAgVlJEaXNwbGF5Q2FwYWJpbGl0
eUZsYWdFeHRlcm5hbERpc3BsYXkgPSAxIDw8IDMsCi0gICAgVlJEaXNwbGF5Q2FwYWJpbGl0eUZs
YWdQcmVzZW50ID0gMSA8PCA0Ci19OwotCi0vKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlz
IHRvIGVuY2Fwc3VsYXRlIGFsbCB0aGUgaW5mbyBhYm91dCB0aGUgZGlzcGxheSBpbiBhIHNpbmds
ZSBjbGFzcy9kYXRhCi0gKiBzdHJ1Y3R1cmUuIFRoaXMgd2F5IHdlIHdvdWxkbid0IGhhdmUgdG8g
cmVwbGljYXRlIGFsbCB0aGUgQVBJIGNhbGxzIG9mIFZSRGlzcGxheSBpbgotICogVlJQbGF0Zm9y
bURpc3BsYXkuIEFsc28gdGhlIGNsaWVudCBvZiB0aGlzIEFQSSB3b3VsZCBvbmx5IGhhdmUgdG8g
aXNzdWUgYSBzaW5nbGUgY2FsbCB0byBnZXQgYWxsCi0gKiB0aGUgaW5mbyBmcm9tIHRoZSBkaXNw
bGF5LiBOb3RlIHRoYXQgaXQncyBmYWlybHkgdW5saWtlbHkgdGhhdCBhIFZSIGFwcGxpY2F0aW9u
IHdvdWxkIG9ubHkKLSAqIHJlcXVpcmUganVzdCBhIGZldyBwaWVjZXMgb2YgaW5mb3JtYXRpb24g
ZnJvbSB0aGUgZGV2aWNlLgotKi8KLWNsYXNzIFZSUGxhdGZvcm1EaXNwbGF5SW5mbyB7Ci1wdWJs
aWM6Ci0gICAgY29uc3QgU3RyaW5nIGRpc3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5TmFtZTsgfQotICAgIHZvaWQgc2V0RGlzcGxheU5hbWUoU3RyaW5nJiYgZGlzcGxheU5hbWUp
IHsgbV9kaXNwbGF5TmFtZSA9IFdURk1vdmUoZGlzcGxheU5hbWUpOyB9Ci0KLSAgICBib29sIGlz
Q29ubmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nvbm5lY3RlZDsgfQotICAgIHZvaWQgc2V0
SXNDb25uZWN0ZWQoYm9vbCBpc0Nvbm5lY3RlZCkgeyBtX2lzQ29ubmVjdGVkID0gaXNDb25uZWN0
ZWQ7IH0KLQotICAgIGJvb2wgaXNNb3VudGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc01vdW50ZWQ7
IH0KLSAgICB2b2lkIHNldElzTW91bnRlZChib29sIGlzTW91bnRlZCkgeyBtX2lzTW91bnRlZCA9
IGlzTW91bnRlZDsgfQotCi0gICAgY29uc3QgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdzJiBjYXBh
YmlsaXR5RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdHlGbGFnczsgfQotICAgIHZv
aWQgc2V0Q2FwYWJpbGl0eUZsYWdzKGNvbnN0IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFncyYgZmxh
Z3MpIHsgbV9jYXBhYmlsaXR5RmxhZ3MgPSBmbGFnczsgfQotCi0gICAgdWludDMyX3QgZGlzcGxh
eUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJZGVudGlmaWVyOyB9Ci0gICAg
dm9pZCBzZXREaXNwbGF5SWRlbnRpZmllcih1aW50MzJfdCBkaXNwbGF5SWRlbnRpZmllcikgeyBt
X2Rpc3BsYXlJZGVudGlmaWVyID0gZGlzcGxheUlkZW50aWZpZXI7IH0KLQotICAgIGVudW0gRXll
IHsgRXllTGVmdCA9IDAsIEV5ZVJpZ2h0LCBOdW1FeWVzIH07Ci0gICAgY29uc3QgRmxvYXRQb2lu
dDNEJiBleWVUcmFuc2xhdGlvbihFeWUgZXllKSBjb25zdCB7IHJldHVybiBtX2V5ZVRyYW5zbGF0
aW9uW2V5ZV07IH0KLSAgICB2b2lkIHNldEV5ZVRyYW5zbGF0aW9uKEV5ZSBleWUsIGNvbnN0IEZs
b2F0UG9pbnQzRCYgdHJhbnNsYXRpb24pIHsgbV9leWVUcmFuc2xhdGlvbltleWVdID0gdHJhbnNs
YXRpb247IH0KLQotICAgIHN0cnVjdCBGaWVsZE9mVmlldyB7Ci0gICAgICAgIGRvdWJsZSB1cERl
Z3JlZXM7Ci0gICAgICAgIGRvdWJsZSBkb3duRGVncmVlczsKLSAgICAgICAgZG91YmxlIGxlZnRE
ZWdyZWVzOwotICAgICAgICBkb3VibGUgcmlnaHREZWdyZWVzOwotICAgIH07Ci0gICAgY29uc3Qg
RmllbGRPZlZpZXcmIGV5ZUZpZWxkT2ZWaWV3KEV5ZSBleWUpIGNvbnN0IHsgcmV0dXJuIG1fZXll
RmllbGRPZlZpZXdbZXllXTsgfQotICAgIHZvaWQgc2V0RXllRmllbGRPZlZpZXcoRXllIGV5ZSwg
Y29uc3QgRmllbGRPZlZpZXcmIGZpZWxkT2ZWaWV3KSB7IG1fZXllRmllbGRPZlZpZXdbZXllXSA9
IGZpZWxkT2ZWaWV3OyB9Ci0KLSAgICBzdHJ1Y3QgUmVuZGVyU2l6ZSB7Ci0gICAgICAgIHVuc2ln
bmVkIHdpZHRoOwotICAgICAgICB1bnNpZ25lZCBoZWlnaHQ7Ci0gICAgfTsKLSAgICBjb25zdCBS
ZW5kZXJTaXplJiByZW5kZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJTaXplOyB9Ci0g
ICAgdm9pZCBzZXRSZW5kZXJTaXplKGNvbnN0IFJlbmRlclNpemUmIHJlbmRlclNpemUpIHsgbV9y
ZW5kZXJTaXplID0gcmVuZGVyU2l6ZTsgfQotCi0gICAgdm9pZCBzZXRQbGF5QXJlYUJvdW5kcyhj
b25zdCBGbG9hdFNpemUmIHBsYXlBcmVhQm91bmRzKSB7IG1fcGxheUFyZWFCb3VuZHMgPSBwbGF5
QXJlYUJvdW5kczsgfQotICAgIGNvbnN0IE9wdGlvbmFsPEZsb2F0U2l6ZT4mIHBsYXlBcmVhQm91
bmRzKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5QXJlYUJvdW5kczsgfQotCi0gICAgdm9pZCBzZXRT
aXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtKSB7IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KLSAg
ICBjb25zdCBPcHRpb25hbDxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHNpdHRpbmdUb1N0YW5kaW5n
VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9zaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybTsg
fQotCi1wcml2YXRlOgotICAgIFN0cmluZyBtX2Rpc3BsYXlOYW1lOwotICAgIGJvb2wgbV9pc0Nv
bm5lY3RlZDsKLSAgICBib29sIG1faXNNb3VudGVkOwotICAgIFZSRGlzcGxheUNhcGFiaWxpdHlG
bGFncyBtX2NhcGFiaWxpdHlGbGFnczsKLSAgICB1aW50MzJfdCBtX2Rpc3BsYXlJZGVudGlmaWVy
OwotCi0gICAgRmxvYXRQb2ludDNEIG1fZXllVHJhbnNsYXRpb25bRXllOjpOdW1FeWVzXTsKLQot
ICAgIFJlbmRlclNpemUgbV9yZW5kZXJTaXplOwotICAgIEZpZWxkT2ZWaWV3IG1fZXllRmllbGRP
ZlZpZXdbRXllOjpOdW1FeWVzXTsKLQotICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9wbGF5QXJl
YUJvdW5kczsKLSAgICBPcHRpb25hbDxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gbV9zaXR0aW5nVG9T
dGFuZGluZ1RyYW5zZm9ybTsKLX07Ci0KLXN0cnVjdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvIHsK
LSAgICBzdHJ1Y3QgUXVhdGVybmlvbiB7Ci0gICAgICAgIFF1YXRlcm5pb24oKQotICAgICAgICAg
ICAgOiB4KDApLCB5KDApLCB6KDApLCB3KDEpIHsgfQotCi0gICAgICAgIFF1YXRlcm5pb24oZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdykKLSAgICAgICAgICAgIDogeCh4KSwgeSh5
KSwgeih6KSwgdyh3KSB7IH0KLQotICAgICAgICBRdWF0ZXJuaW9uJiBjb25qdWdhdGUoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB4ICo9IC0xOwotICAgICAgICAgICAgeSAqPSAtMTsKLSAgICAg
ICAgICAgIHogKj0gLTE7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQot
ICAgICAgICBRdWF0ZXJuaW9uJiBvcGVyYXRvciooZmxvYXQgZmFjdG9yKQotICAgICAgICB7Ci0g
ICAgICAgICAgICB4ICo9IGZhY3RvcjsKLSAgICAgICAgICAgIHkgKj0gZmFjdG9yOwotICAgICAg
ICAgICAgeiAqPSBmYWN0b3I7Ci0gICAgICAgICAgICB3ICo9IGZhY3RvcjsKLSAgICAgICAgICAg
IHJldHVybiAqdGhpczsKLSAgICAgICAgfQotICAgICAgICBmbG9hdCB4LCB5LCB6LCB3OwotICAg
IH07Ci0KLSAgICBzdHJ1Y3QgRmxvYXQzIHsKLSAgICAgICAgRmxvYXQzKGZsb2F0IGEsIGZsb2F0
IGIsIGZsb2F0IGMpCi0gICAgICAgICAgICA6IGRhdGEgeyBhLCBiLCBjIH0geyB9Ci0KLSAgICAg
ICAgZmxvYXQgZGF0YVszXTsKLSAgICB9OwotCi0gICAgdm9pZCBjbGVhcigpCi0gICAgewotICAg
ICAgICB0aW1lc3RhbXAgPSAwOwotICAgICAgICBwb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKLSAg
ICAgICAgb3JpZW50YXRpb24gPSBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIGFuZ3VsYXJBY2NlbGVy
YXRpb24gPSBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIGFuZ3VsYXJWZWxvY2l0eSA9IFdURjo6bnVs
bG9wdDsKLSAgICAgICAgbGluZWFyQWNjZWxlcmF0aW9uID0gV1RGOjpudWxsb3B0OwotICAgICAg
ICBsaW5lYXJWZWxvY2l0eSA9IFdURjo6bnVsbG9wdDsKLSAgICB9Ci0KLSAgICBPcHRpb25hbDxR
dWF0ZXJuaW9uPiBvcmllbnRhdGlvbjsKLSAgICBPcHRpb25hbDxGbG9hdFBvaW50M0Q+IHBvc2l0
aW9uOwotICAgIE9wdGlvbmFsPEZsb2F0Mz4gYW5ndWxhckFjY2VsZXJhdGlvbjsKLSAgICBPcHRp
b25hbDxGbG9hdDM+IGFuZ3VsYXJWZWxvY2l0eTsKLSAgICBPcHRpb25hbDxGbG9hdDM+IGxpbmVh
ckFjY2VsZXJhdGlvbjsKLSAgICBPcHRpb25hbDxGbG9hdDM+IGxpbmVhclZlbG9jaXR5OwotICAg
IGRvdWJsZSB0aW1lc3RhbXAgeyAwIH07Ci19OwotCi1jbGFzcyBWUlBsYXRmb3JtRGlzcGxheSA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4gewotcHVibGljOgotICAg
IHZpcnR1YWwgVlJQbGF0Zm9ybURpc3BsYXlJbmZvIGdldERpc3BsYXlJbmZvKCkgPSAwOwotICAg
IHZpcnR1YWwgVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyBnZXRUcmFja2luZ0luZm8oKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlJbmZvKCkgPSAwOwotICAgIHZpcnR1YWwgflZS
UGxhdGZvcm1EaXNwbGF5KCkgPSBkZWZhdWx0OwotCi0gICAgdm9pZCBzZXRDbGllbnQoVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQqKTsKLQotICAgIGVudW0gY2xhc3MgRXZlbnQgewotICAgICAgICBD
b25uZWN0ZWQsCi0gICAgICAgIERpc2Nvbm5lY3RlZCwKLSAgICAgICAgTW91bnRlZCwKLSAgICAg
ICAgVW5tb3VudGVkLAotICAgIH07Ci0KLSAgICB2b2lkIG5vdGlmeVZSUGxhdGZvcm1EaXNwbGF5
RXZlbnQoRXZlbnQpOwotCi1wcml2YXRlOgotICAgIFZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50KiBt
X2NsaWVudCB7IG51bGxwdHIgfTsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVhMTg5ZGM4M2VhNjgzMzA4ZjNhOGIx
ZDExZjYzOGI3YzdiZjAwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheUNsaWVu
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQgewot
cHVibGljOgotICAgIHZpcnR1YWwgflZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50KCkgeyB9Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHBsYXRmb3JtRGlzcGxheURpc2Nvbm5lY3RlZCgpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBwbGF0Zm9ybURpc3BsYXlNb3VudGVkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
RGlzcGxheVVubW91bnRlZCgpIHsgfQotfTsKLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZvcm1NYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtTWFuYWdlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGIyNGVkMGI2NWZlMjkxNDU3NzhkMWEzN2JkNDdkZWY2
ZmFlYjVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZvcm1NYW5hZ2VyLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5M
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlZSUGxh
dGZvcm1EaXNwbGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJEaXNwbGF5
OwotCi1jbGFzcyBWUlBsYXRmb3JtTWFuYWdlciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBWZWN0
b3I8V2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4+IGdldFZSRGlzcGxheXMoKSA9IDA7Ci0gICAg
dmlydHVhbCB+VlJQbGF0Zm9ybU1hbmFnZXIoKSA9IGRlZmF1bHQ7Ci19OwotCi19OyAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3Bl
bnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE1NjU4MzAyNzY3ZDlhMTE3ZTBlODJiOTY4MzVmOWZlYmE0NGE3YjEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxp
YSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaCIKLQotI2lmIFVTRShPUEVOVlIpCi0KLSNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdWludDMyX3QgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OnNfZGlzcGxheUlkZW50aWZpZXIg
PSAwOwotCi1WUlBsYXRmb3JtRGlzcGxheU9wZW5WUjo6VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIo
dnI6OklWUlN5c3RlbSogc3lzdGVtLCB2cjo6SVZSQ2hhcGVyb25lKiBjaGFwZXJvbmUsIHZyOjpJ
VlJDb21wb3NpdG9yKiBjb21wb3NpdG9yKQotICAgIDogbV9zeXN0ZW0oc3lzdGVtKQotICAgICwg
bV9jaGFwZXJvbmUoY2hhcGVyb25lKQotICAgICwgbV9jb21wb3NpdG9yKGNvbXBvc2l0b3IpCi17
Ci0gICAgbV9kaXNwbGF5SW5mby5zZXREaXNwbGF5SWRlbnRpZmllcigrK3NfZGlzcGxheUlkZW50
aWZpZXIpOwotICAgIG1fZGlzcGxheUluZm8uc2V0SXNDb25uZWN0ZWQobV9zeXN0ZW0tPklzVHJh
Y2tlZERldmljZUNvbm5lY3RlZCh2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQpKTsKLQot
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIk9wZW5WUiBITUQiKTsKLSAgICBjaGFyIEhNRE5hbWVbMTI4XTsKLSAgICBpZiAo
YXV0byBsZW5ndGggPSBtX3N5c3RlbS0+R2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHZy
OjprX3VuVHJhY2tlZERldmljZUluZGV4X0htZCwgdnI6OlByb3BfTWFudWZhY3R1cmVyTmFtZV9T
dHJpbmcsIEhNRE5hbWUsIDEyOCkpIHsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIiAo
Iik7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKEhNRE5hbWUsIGxlbmd0aCk7Ci0gICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgfQotICAgIG1fZGlzcGxheUluZm8u
c2V0RGlzcGxheU5hbWUoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICBtX2Rpc3BsYXlJ
bmZvLnNldElzTW91bnRlZChmYWxzZSk7Ci0gICAgLy8gRklYTUU6IFdlJ3JlIGFzc3VtaW5nIGFu
IEhUQyBWaXZlIEhNRCBoZXJlLiBHZXQgdGhpcyBpbmZvIGZyb20gT3BlblZSPy4KLSAgICBtX2Rp
c3BsYXlJbmZvLnNldENhcGFiaWxpdHlGbGFncyhWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ05vbmUg
fCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9uIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZs
YWdPcmllbnRhdGlvbiB8IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnRXh0ZXJuYWxEaXNwbGF5IHwg
VlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQcmVzZW50KTsKLQotICAgIG1fY29tcG9zaXRvci0+U2V0
VHJhY2tpbmdTcGFjZSh2cjo6VHJhY2tpbmdVbml2ZXJzZVNlYXRlZCk7Ci0KLSAgICB1cGRhdGVF
eWVQYXJhbWV0ZXJzKCk7Ci0gICAgdXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCk7Ci19Ci0KLVZSUGxh
dGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OmNv
bXB1dGVGaWVsZE9mVmlldyh2cjo6SG1kX0V5ZSBleWUpCi17Ci0gICAgZmxvYXQgbGVmdCwgcmln
aHQsIHRvcCwgYm90dG9tOwotICAgIC8vIE9wZW5WUiByZXR1cm5zIHRoZSB0YW5nZW50cyBvZiB0
aGUgaGFsZi1hbmdsZXMgZnJvbSB0aGUgY2VudGVyIHZpZXcgYXhpcy4KLSAgICBtX3N5c3RlbS0+
R2V0UHJvamVjdGlvblJhdyhzdGF0aWNfY2FzdDx2cjo6SG1kX0V5ZT4oZXllKSwgJmxlZnQsICZy
aWdodCwgJnRvcCwgJmJvdHRvbSk7Ci0gICAgcmV0dXJuIHsgLXJhZDJkZWcoYXRhbmYodG9wKSks
IHJhZDJkZWcoYXRhbmYoYm90dG9tKSksIC1yYWQyZGVnKGF0YW5mKGxlZnQpKSwgcmFkMmRlZyhh
dGFuZihyaWdodCkpIH07Ci19Ci0KLXZvaWQgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OnVwZGF0
ZUV5ZVBhcmFtZXRlcnMoKQotewotICAgIGZvciAodW5zaWduZWQgZXllID0gMDsgZXllIDwgVlJQ
bGF0Zm9ybURpc3BsYXlJbmZvOjpOdW1FeWVzOyArK2V5ZSkgewotICAgICAgICBhdXRvIHBsYXRm
b3JtRXllID0gc3RhdGljX2Nhc3Q8VlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWU+KGV5ZSk7Ci0g
ICAgICAgIG1fZGlzcGxheUluZm8uc2V0RXllRmllbGRPZlZpZXcocGxhdGZvcm1FeWUsIGNvbXB1
dGVGaWVsZE9mVmlldyhzdGF0aWNfY2FzdDx2cjo6SG1kX0V5ZT4oZXllKSkpOwotCi0gICAgICAg
IHZyOjpIbWRNYXRyaXgzNF90IGV5ZVRvSGVhZCA9IG1fc3lzdGVtLT5HZXRFeWVUb0hlYWRUcmFu
c2Zvcm0oc3RhdGljX2Nhc3Q8dnI6OkhtZF9FeWU+KGV5ZSkpOwotICAgICAgICBtX2Rpc3BsYXlJ
bmZvLnNldEV5ZVRyYW5zbGF0aW9uKHBsYXRmb3JtRXllLCB7IGV5ZVRvSGVhZC5tWzBdWzNdLCBl
eWVUb0hlYWQubVsxXVszXSwgZXllVG9IZWFkLm1bMl1bM10gfSk7Ci0gICAgfQotCi0gICAgdWlu
dDMyX3Qgd2lkdGg7Ci0gICAgdWludDMyX3QgaGVpZ2h0OwotICAgIG1fc3lzdGVtLT5HZXRSZWNv
bW1lbmRlZFJlbmRlclRhcmdldFNpemUoJndpZHRoLCAmaGVpZ2h0KTsKLSAgICBtX2Rpc3BsYXlJ
bmZvLnNldFJlbmRlclNpemUoeyB3aWR0aCwgaGVpZ2h0IH0pOwotfQotCi12b2lkIFZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSOjp1cGRhdGVTdGFnZVBhcmFtZXRlcnMoKQotewotICAgIGZsb2F0IHBs
YXlBcmVhV2lkdGggPSAxOwotICAgIGZsb2F0IHBsYXlBcmVhRGVwdGggPSAxOwotICAgIGlmICgh
bV9jaGFwZXJvbmUtPkdldFBsYXlBcmVhU2l6ZSgmcGxheUFyZWFXaWR0aCwgJnBsYXlBcmVhRGVw
dGgpKSB7Ci0gICAgICAgIC8vIEZhbGxiYWNrIHRvIHNlbnNpYmxlIHZhbHVlcywgMW14MW0gcGxh
eSBhcmVhIGFuZCAwLjc1bSBoaWdoIHNlYXRlZCBwb3NpdGlvbi4gV2UgZG8gYXMKLSAgICAgICAg
Ly8gRmlyZWZveCBkb2VzLgotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXg7Ci0g
ICAgICAgIG1hdHJpeC5zZXRNNDIoMC43NSk7Ci0gICAgICAgIG1fZGlzcGxheUluZm8uc2V0U2l0
dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oV1RGTW92ZShtYXRyaXgpKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICB2cjo6SG1kTWF0cml4MzRfdCB0cmFuc2Zvcm1NYXRyaXggPSBtX3N5c3RlbS0+R2V0
U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKLSAgICAgICAg
YXV0byBtYXRyaXggPSAgVHJhbnNmb3JtYXRpb25NYXRyaXgodHJhbnNmb3JtTWF0cml4Lm1bMF1b
MF0sIHRyYW5zZm9ybU1hdHJpeC5tWzFdWzBdLCB0cmFuc2Zvcm1NYXRyaXgubVsyXVswXSwgMCwK
LSAgICAgICAgICAgIHRyYW5zZm9ybU1hdHJpeC5tWzBdWzFdLCB0cmFuc2Zvcm1NYXRyaXgubVsx
XVsxXSwgdHJhbnNmb3JtTWF0cml4Lm1bMl1bMV0sIDAsCi0gICAgICAgICAgICB0cmFuc2Zvcm1N
YXRyaXgubVswXVsyXSwgdHJhbnNmb3JtTWF0cml4Lm1bMV1bMl0sIHRyYW5zZm9ybU1hdHJpeC5t
WzJdWzJdLCAwLAotICAgICAgICAgICAgdHJhbnNmb3JtTWF0cml4Lm1bMF1bM10sIHRyYW5zZm9y
bU1hdHJpeC5tWzFdWzNdLCB0cmFuc2Zvcm1NYXRyaXgubVsyXVszXSwgMSk7Ci0gICAgICAgIG1f
ZGlzcGxheUluZm8uc2V0U2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oV1RGTW92ZShtYXRyaXgp
KTsKLSAgICB9Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRQbGF5QXJlYUJvdW5kcyhGbG9hdFNpemUo
cGxheUFyZWFXaWR0aCwgcGxheUFyZWFEZXB0aCkpOwotfQotCi0vLyBGSVhNRTogd2UgbWlnaHQg
d2FudCB0byBnZW5lcmFsaXplIHRoaXMgZnVuY3Rpb24gZm9yIG90aGVyIGJhY2tlbmRzLgotc3Rh
dGljIFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRlcm5pb24gcm90YXRpb25NYXRyaXhUb1F1
YXRlcm5pb24oY29uc3QgZmxvYXQgKCZtYXRyaXgpWzNdWzRdKQotewotICAgIC8vIFNlZSBodHRw
czovL2QzY3czZGQydzMyeDJiLmNsb3VkZnJvbnQubmV0L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1
LzAxL21hdHJpeC10by1xdWF0LnBkZi4KLSAgICBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpRdWF0
ZXJuaW9uIHF1YXRlcm5pb247Ci0gICAgZmxvYXQgdHJhY2U7Ci0gICAgaWYgKG1hdHJpeFsyXVsy
XSA8IDApIHsKLSAgICAgICAgaWYgKG1hdHJpeFswXVswXSA+IG1hdHJpeFsxXVsxXSkgewotICAg
ICAgICAgICAgdHJhY2UgPSAxICsgbWF0cml4WzBdWzBdIC0gbWF0cml4WzFdWzFdIC0gbWF0cml4
WzJdWzJdOwotICAgICAgICAgICAgcXVhdGVybmlvbiA9IHsgdHJhY2UsIG1hdHJpeFswXVsxXStt
YXRyaXhbMV1bMF0sIG1hdHJpeFsyXVswXSttYXRyaXhbMF1bMl0sIG1hdHJpeFsxXVsyXSAtIG1h
dHJpeFsyXVsxXSB9OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdHJhY2UgPSAxIC0g
bWF0cml4WzBdWzBdICsgbWF0cml4WzFdWzFdIC0gbWF0cml4WzJdWzJdOwotICAgICAgICAgICAg
cXVhdGVybmlvbiA9IHsgbWF0cml4WzBdWzFdK21hdHJpeFsxXVswXSwgdHJhY2UsIG1hdHJpeFsx
XVsyXSttYXRyaXhbMl1bMV0sIG1hdHJpeFsyXVswXSAtIG1hdHJpeFswXVsyXSB9OwotICAgICAg
ICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1hdHJpeFswXVswXSA8IC1tYXRyaXhbMV1b
MV0pIHsKLSAgICAgICAgICAgIHRyYWNlID0gMSAtIG1hdHJpeFswXVswXSAtIG1hdHJpeFsxXVsx
XSArIG1hdHJpeFsyXVsyXTsKLSAgICAgICAgICAgIHF1YXRlcm5pb24gPSB7IG1hdHJpeFsyXVsw
XSttYXRyaXhbMF1bMl0sIG1hdHJpeFsxXVsyXSttYXRyaXhbMl1bMV0sIHRyYWNlICwgbWF0cml4
WzBdWzFdIC0gbWF0cml4WzFdWzBdIH07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0
cmFjZSA9IDEgKyBtYXRyaXhbMF1bMF0gKyBtYXRyaXhbMV1bMV0gKyBtYXRyaXhbMl1bMl07Ci0g
ICAgICAgICAgICBxdWF0ZXJuaW9uID0geyBtYXRyaXhbMV1bMl0gLSBtYXRyaXhbMl1bMV0sIG1h
dHJpeFsyXVswXSAtIG1hdHJpeFswXVsyXSwgbWF0cml4WzBdWzFdIC0gbWF0cml4WzFdWzBdLCB0
cmFjZSB9OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBxdWF0ZXJuaW9uICogKDAuNSAv
IHNxcnQodHJhY2UpKTsKLX0KLQotVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyBWUlBsYXRmb3JtRGlz
cGxheU9wZW5WUjo6Z2V0VHJhY2tpbmdJbmZvKCkKLXsKLSAgICB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCBwb3Nlc1t2cjo6a191bk1heFRyYWNrZWREZXZpY2VDb3VudF07Ci0KLSAgICBtX2NvbXBv
c2l0b3ItPldhaXRHZXRQb3NlcyhudWxscHRyLCAwLCBwb3NlcywgdnI6OmtfdW5NYXhUcmFja2Vk
RGV2aWNlQ291bnQpOwotCi0gICAgbV90cmFja2luZ0luZm8uY2xlYXIoKTsKLQotICAgIHZyOjpD
b21wb3NpdG9yX0ZyYW1lVGltaW5nIHRpbWluZzsKLSAgICB0aW1pbmcubV9uU2l6ZSA9IHNpemVv
Zih2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyk7Ci0gICAgbV9jb21wb3NpdG9yLT5HZXRGcmFt
ZVRpbWluZygmdGltaW5nKTsKLSAgICBtX3RyYWNraW5nSW5mby50aW1lc3RhbXAgPSB0aW1pbmcu
bV9mbFN5c3RlbVRpbWVJblNlY29uZHM7Ci0KLSAgICBpZiAoIXBvc2VzW3ZyOjprX3VuVHJhY2tl
ZERldmljZUluZGV4X0htZF0uYkRldmljZUlzQ29ubmVjdGVkCi0gICAgICAgIHx8ICFwb3Nlc1t2
cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWRdLmJQb3NlSXNWYWxpZAotICAgICAgICB8fCBw
b3Nlc1t2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWRdLmVUcmFja2luZ1Jlc3VsdCAhPSB2
cjo6VHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSykgewotICAgICAgICAvLyBGSVhNRTogSW5pdCBz
b21lIGRhdGEgbWF5YmU/Pz8uCi0gICAgICAgIHJldHVybiBtX3RyYWNraW5nSW5mbzsKLSAgICB9
Ci0KLSAgICBjb25zdCBhdXRvJiBITURQb3NlID0gcG9zZXNbdnI6OmtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kXTsKLSAgICBjb25zdCBhdXRvJiB0cmFuc2Zvcm0gPSBITURQb3NlLm1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgbV90cmFja2luZ0luZm8ub3JpZW50YXRpb24gPSByb3Rh
dGlvbk1hdHJpeFRvUXVhdGVybmlvbih0cmFuc2Zvcm0ubSk7Ci0gICAgbV90cmFja2luZ0luZm8u
b3JpZW50YXRpb24tPmNvbmp1Z2F0ZSgpOwotICAgIG1fdHJhY2tpbmdJbmZvLnBvc2l0aW9uID0g
RmxvYXRQb2ludDNEKHRyYW5zZm9ybS5tWzBdWzNdLCB0cmFuc2Zvcm0ubVsxXVszXSwgdHJhbnNm
b3JtLm1bMl1bM10pOwotICAgIG1fdHJhY2tpbmdJbmZvLmFuZ3VsYXJWZWxvY2l0eSA9IFZSUGxh
dGZvcm1UcmFja2luZ0luZm86OkZsb2F0MyhITURQb3NlLnZBbmd1bGFyVmVsb2NpdHkudlswXSwg
SE1EUG9zZS52QW5ndWxhclZlbG9jaXR5LnZbMV0sIEhNRFBvc2UudkFuZ3VsYXJWZWxvY2l0eS52
WzJdKTsKLSAgICBtX3RyYWNraW5nSW5mby5saW5lYXJWZWxvY2l0eSA9IFZSUGxhdGZvcm1UcmFj
a2luZ0luZm86OkZsb2F0MyhITURQb3NlLnZWZWxvY2l0eS52WzBdLCBITURQb3NlLnZWZWxvY2l0
eS52WzFdLCBITURQb3NlLnZWZWxvY2l0eS52WzJdKTsKLQotICAgIHJldHVybiBtX3RyYWNraW5n
SW5mbzsKLX0KLQotdm9pZCBWUlBsYXRmb3JtRGlzcGxheU9wZW5WUjo6dXBkYXRlRGlzcGxheUlu
Zm8oKQotewotICAgIGlmICghdnI6OlZSX0lzSG1kUHJlc2VudCgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB2cjo6VlJFdmVudF90IGV2ZW50OwotICAgIHdoaWxlIChtX3N5c3RlbSAmJiBtX3N5
c3RlbS0+UG9sbE5leHRFdmVudCgmZXZlbnQsIHNpemVvZihldmVudCkpKSB7Ci0gICAgICAgIHN3
aXRjaCAoZXZlbnQuZXZlbnRUeXBlKSB7Ci0gICAgICAgIGNhc2UgdnI6OlZSRXZlbnRfVHJhY2tl
ZERldmljZVVzZXJJbnRlcmFjdGlvblN0YXJ0ZWQ6Ci0gICAgICAgIGNhc2UgdnI6OlZSRXZlbnRf
VHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkOgotICAgICAgICAgICAgaWYgKGV2ZW50
LnRyYWNrZWREZXZpY2VJbmRleCA9PSB2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQpCi0g
ICAgICAgICAgICAgICAgbV9kaXNwbGF5SW5mby5zZXRJc01vdW50ZWQoZXZlbnQuZXZlbnRUeXBl
ID09IHZyOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID8gdHJ1
ZSA6IGZhbHNlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIHZyOjpFVlJFdmVu
dFR5cGU6OlZSRXZlbnRfVHJhY2tlZERldmljZUFjdGl2YXRlZDoKLSAgICAgICAgY2FzZSB2cjo6
RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFjdGl2YXRlZDoKLSAgICAgICAg
ICAgIGlmIChldmVudC50cmFja2VkRGV2aWNlSW5kZXggPT0gdnI6OmtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kKQotICAgICAgICAgICAgICAgIG1fZGlzcGxheUluZm8uc2V0SXNDb25uZWN0ZWQo
ZXZlbnQuZXZlbnRUeXBlID09IHZyOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgPyB0
cnVlIDogZmFsc2UpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgdnI6OkVWUkV2
ZW50VHlwZTo6VlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0OgotICAgICAgICBjYXNlIHZyOjpF
VlJFdmVudFR5cGU6OlZSRXZlbnRfUXVpdDoKLSAgICAgICAgY2FzZSB2cjo6RVZSRXZlbnRUeXBl
OjpWUkV2ZW50X1Byb2Nlc3NRdWl0OgotICAgICAgICBjYXNlIHZyOjpFVlJFdmVudFR5cGU6OlZS
RXZlbnRfUXVpdEFja25vd2xlZGdlZDoKLSAgICAgICAgY2FzZSB2cjo6RVZSRXZlbnRUeXBlOjpW
UkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQ6Ci0gICAgICAgICAgICAvLyBGSVhNRTogc2hv
dWxkIHdlIG5vdGlmeSB0aGUgcGxhdGZvcm0gbWFuYWdlciBhYm91dCB0aGlzIGFuZCBjYWxsIFZS
X1NodXRkb3duKCkuCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgIH0KLX0KLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVT
RShPUEVOVlIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIv
VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29w
ZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNzFiZDlmMGQ1ODljYzJmODM5YjA2N2MyM2VjOGNiNTE4MTA2OGQwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSwgUy5M
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFVTRShPUEVOVlIp
Ci0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi0jaW5jbHVkZSA8b3BlbnZyLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIg
OiBwdWJsaWMgVlJQbGF0Zm9ybURpc3BsYXkgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFZSUGxhdGZvcm1EaXNwbGF5T3BlblZSKHZyOjpJVlJT
eXN0ZW0qLCB2cjo6SVZSQ2hhcGVyb25lKiwgdnI6OklWUkNvbXBvc2l0b3IqKTsKLQotICAgIH5W
UlBsYXRmb3JtRGlzcGxheU9wZW5WUigpID0gZGVmYXVsdDsKLSAgICBWUlBsYXRmb3JtRGlzcGxh
eUluZm8gZ2V0RGlzcGxheUluZm8oKSBvdmVycmlkZSB7IHJldHVybiBtX2Rpc3BsYXlJbmZvOyB9
Ci0gICAgVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyBnZXRUcmFja2luZ0luZm8oKSBvdmVycmlkZTsK
LSAgICB2b2lkIHVwZGF0ZURpc3BsYXlJbmZvKCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAg
VlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyBjb21wdXRlRmllbGRPZlZpZXcodnI6
OkhtZF9FeWUpOwotICAgIHZvaWQgdXBkYXRlRXllUGFyYW1ldGVycygpOwotICAgIHZvaWQgdXBk
YXRlU3RhZ2VQYXJhbWV0ZXJzKCk7Ci0KLSAgICBzdGF0aWMgdWludDMyX3Qgc19kaXNwbGF5SWRl
bnRpZmllcjsKLQotICAgIHZyOjpJVlJTeXN0ZW0qIG1fc3lzdGVtOwotICAgIHZyOjpJVlJDaGFw
ZXJvbmUqIG1fY2hhcGVyb25lOwotICAgIHZyOjpJVlJDb21wb3NpdG9yKiBtX2NvbXBvc2l0b3I7
Ci0KLSAgICBWUlBsYXRmb3JtRGlzcGxheUluZm8gbV9kaXNwbGF5SW5mbzsKLSAgICBWUlBsYXRm
b3JtVHJhY2tpbmdJbmZvIG1fdHJhY2tpbmdJbmZvOwotfTsKLQotfTsgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFVTRShPUEVOVlIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdjZjcxMzdlMzNhYTU1YmY3ZTU4NWVlMTY0
ZTY3M2QzYWFlZWM2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJP
cGVuVlIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSLmgiCi0KLSNpbmNs
dWRlICJWUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5oIgotCi0jaWYgVVNFKE9QRU5WUikKLQotI2lu
Y2x1ZGUgIkpTVlJEaXNwbGF5LmgiCi0jaW5jbHVkZSAiVlJEaXNwbGF5LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSPiBW
UlBsYXRmb3JtTWFuYWdlck9wZW5WUjo6Y3JlYXRlKCkKLXsKLSAgICBpZiAoIXZyOjpWUl9Jc1J1
bnRpbWVJbnN0YWxsZWQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4g
bWFrZVVuaXF1ZTxWUlBsYXRmb3JtTWFuYWdlck9wZW5WUj4oKTsKLX0KLQotVlJQbGF0Zm9ybU1h
bmFnZXJPcGVuVlI6On5WUlBsYXRmb3JtTWFuYWdlck9wZW5WUigpCi17Ci0gICAgdnI6OlZSX1No
dXRkb3duKCk7Ci19Ci0KLWJvb2wgVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmluaXRPcGVuVlIo
KQotewotICAgIHZyOjpIbWRFcnJvciBlcnJvcjsKLSAgICBtX3N5c3RlbSA9IHZyOjpWUl9Jbml0
KCZlcnJvciwgdnI6OlZSQXBwbGljYXRpb25fU2NlbmUpOwotICAgIGlmIChlcnJvcikKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVZlY3RvcjxXZWFrUHRy
PFZSUGxhdGZvcm1EaXNwbGF5Pj4gVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmdldFZSRGlzcGxh
eXMoKQotewotICAgIC8vIFF1aWNrbHkgY2hlY2sgZm9yIEhNRHMuIE11Y2ggZmFzdGVyIHRoYW4g
aW5pdGlhbGl6aW5nIHRoZSB3aG9sZSBPcGVuVlIgQVBJLgotICAgIGlmICghdnI6OlZSX0lzSG1k
UHJlc2VudCgpKSB7Ci0gICAgICAgIG1fc3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICB9Ci0KLSAgICBpZiAoIW1fc3lzdGVtICYmICFpbml0T3BlblZSKCkpIHsKLSAg
ICAgICAgbV9zeXN0ZW0gPSBudWxscHRyOwotICAgICAgICB2cjo6VlJfU2h1dGRvd24oKTsKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICB2cjo6SG1kRXJyb3IgZXJyb3I7Ci0gICAg
dnI6OklWUkNoYXBlcm9uZSogY2hhcGVyb25lID0gc3RhdGljX2Nhc3Q8dnI6OklWUkNoYXBlcm9u
ZSo+KHZyOjpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKHZyOjpJVlJDaGFwZXJvbmVfVmVyc2lvbiwg
JmVycm9yKSk7Ci0gICAgaWYgKGVycm9yIHx8ICFjaGFwZXJvbmUpCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICB2cjo6SVZSQ29tcG9zaXRvciogY29tcG9zaXRvciA9IHN0YXRpY19jYXN0PHZy
OjpJVlJDb21wb3NpdG9yKj4odnI6OlZSX0dldEdlbmVyaWNJbnRlcmZhY2UodnI6OklWUkNvbXBv
c2l0b3JfVmVyc2lvbiwgJmVycm9yKSk7Ci0gICAgaWYgKGVycm9yIHx8ICFjb21wb3NpdG9yKQot
ICAgICAgICByZXR1cm4geyB9OwotCi0gICAgVmVjdG9yPFdlYWtQdHI8VlJQbGF0Zm9ybURpc3Bs
YXk+PiBkaXNwbGF5czsKLSAgICBpZiAoIW1fZGlzcGxheSkKLSAgICAgICAgbV9kaXNwbGF5ID0g
bWFrZVVuaXF1ZTxWUlBsYXRmb3JtRGlzcGxheU9wZW5WUj4obV9zeXN0ZW0sIGNoYXBlcm9uZSwg
Y29tcG9zaXRvcik7Ci0gICAgZGlzcGxheXMuYXBwZW5kKG1ha2VXZWFrUHRyKCptX2Rpc3BsYXkp
KTsKLSAgICByZXR1cm4gZGlzcGxheXM7Ci19Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBVU0UoT1BFTlZSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmE3ODIzYmM3Yjk1ZWQ0MGRjZWNkZjBmNTczM2UxNmQ4NDQ1YWE0
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgVVNF
KE9QRU5WUikKLQotI2luY2x1ZGUgIlZSUGxhdGZvcm1NYW5hZ2VyLmgiCi0KLSNpbmNsdWRlIDxv
cGVudnIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBsYXRmb3JtRGlzcGxh
eU9wZW5WUjsKLQotY2xhc3MgVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIgOiBwdWJsaWMgVlJQbGF0
Zm9ybU1hbmFnZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI+IGNyZWF0ZSgp
OwotICAgIGV4cGxpY2l0IFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSKCkgPSBkZWZhdWx0OwotCi0g
ICAgVmVjdG9yPFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+PiBnZXRWUkRpc3BsYXlzKCkgb3Zl
cnJpZGU7Ci0KLSAgICB+VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIoKTsKLXByaXZhdGU6Ci0gICAg
Ym9vbCBpbml0T3BlblZSKCk7Ci0KLSAgICB2cjo6SVZSU3lzdGVtKiBtX3N5c3RlbSB7IG51bGxw
dHIgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI+IG1fZGlz
cGxheTsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoT1BF
TlZSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXgg
YmIwOGY1YzY1YjUxNzJiMTc2ZDMzZWU1NDE4MmJmMDVmZTI2ZjM0My4uZDVkNjdmYTY5Zjc0NzM4
ZjUxY2U2Yzc0N2ZiOTZhMzU2NjQ5Zjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0xMjAsNyArMTIwLDYgQEAgSW50ZXJuYWxTZXR0aW5nczo6
QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQogI2lmIEVOQUJMRShXRUJHTDIpCiAg
ICAgLCBtX3dlYkdMMkVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJHTDJFbmFibGVkKCkpCiAjZW5kaWYKLSAgICAsIG1fd2ViVlJFbmFibGVkKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViVlJFbmFibGVkKCkpCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAsIG1fc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zY3JlZW5DYXB0dXJlRW5hYmxl
ZCgpKQogI2VuZGlmCkBAIC0yMjQsNyArMjIzLDYgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiAjaWYgRU5BQkxFKFdFQkdMMikK
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYkdMMkVu
YWJsZWQobV93ZWJHTDJFbmFibGVkKTsKICNlbmRpZgotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViVlJFbmFibGVkKG1fd2ViVlJFbmFibGVkKTsKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQobV9zZXRTY3JlZW5DYXB0dXJlRW5h
YmxlZCk7CiAjZW5kaWYKQEAgLTgxNiwxMSArODE0LDYgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRXZWJHUFVFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldFdlYlZSRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJWUkVuYWJsZWQoZW5hYmxl
ZCk7Ci19Ci0KIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDY3M2Q3OTA5NDIwOTVlNDBiMzIxMmRh
OGUyOTdiY2E2MmYxMDJkMjUuLjMxNmMzODgzOGY5ZmY1OTI4MDg0MzgyZTVlNDExNDIwNDA1MzQ0
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMjks
NyArMTI5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEluZGV4ZWREQldvcmtlcnNF
bmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbCk7CiAg
ICAgc3RhdGljIHZvaWQgc2V0V2ViR1BVRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgdm9pZCBz
ZXRXZWJWUkVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0UGljdHVyZUluUGljdHVy
ZUFQSUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2NyZWVuQ2FwdHVyZUVuYWJs
ZWQoYm9vbCk7CiAKQEAgLTIyMCw3ICsyMTksNiBAQCBwcml2YXRlOgogICAgICAgICAvLyBSdW50
aW1lIGVuYWJsZWQgc2V0dGluZ3MuCiAgICAgICAgIGJvb2wgbV9pbmRleGVkREJXb3JrZXJzRW5h
YmxlZDsKICAgICAgICAgYm9vbCBtX3dlYkdMMkVuYWJsZWQ7Ci0gICAgICAgIGJvb2wgbV93ZWJW
UkVuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDsKICAgICAg
ICAgCiAgICAgICAgIGJvb2wgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmls
aXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXgg
NDU5ZTk3NDExYjcwZDhhNzQwMjQ3YjZhNTc0NDZjZmVmZDU5ZDgzZi4uYTlkNDcxZDhmMzJlYmJi
MDQ2MmI0NTA4ZmMxMGZlZWU5OGMwNTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsCkBAIC05Niw3ICs5Niw2IEBAIGVudW0gRm9udExvYWRUaW1pbmdP
dmVycmlkZSB7ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiAgICAgdm9pZCBzZXRJbmRl
eGVkREJXb3JrZXJzRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViR0wy
RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViR1BVRW5hYmxlZChib29s
ZWFuIGVuYWJsZWQpOwotICAgIHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7
CiAgICAgdm9pZCBzZXRTY3JlZW5DYXB0dXJlRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogCiAg
ICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgdXNlckludGVyZmFjZURpcmVjdGlvblBv
bGljeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggYjQy
MTA5OGVlODFjMjNkMGIxMTFiZGVlNmNjY2U0ZjQyZWY3ZTAyYy4uZjNlNTE5ODFhN2VhMWU2M2Iy
ZWU1M2Y4ZGFiZmM1YjJkNjYzMTA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCkBAIC0xMzc2LDE1ICsxMzc2LDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdE1vZGVs
RW5hYmxlZDoKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogICB3ZWJjb3JlQmluZGluZzogUnVu
dGltZUVuYWJsZWRGZWF0dXJlcwogCi1XZWJWUkVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgZGVm
YXVsdFZhbHVlOiBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVECi0gIGh1bWFu
UmVhZGFibGVOYW1lOiAiV2ViVlIiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIldlYlZS
IE1vZHVsZSBzdXBwb3J0IgotICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cwotICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCi0gIGNvbmRpdGlvbjogUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCi0KIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
ZGVmYXVsdFZhbHVlOiBERUZBVUxUX1NFUlZFUl9USU1JTkdfRU5BQkxFRApkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZQppbmRleCA5MDRlMzc5YWNkODgxNTExOTNmYzI4NWI1YTFlNGM1NmNkNGQyYTRkLi5jNzJh
ODkyMDQ2NzVjMmQ2YjVjMTM5MzM1ODBiMDE4MTYzN2UyM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZQpAQCAtOTEsNyArOTEsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVS
ICJXaGV0aGVyIHRvIGVuYWJsZSBXUEUgcmVuZGVyaW5nIiBQVUJMSUMgTwogIyBQcml2YXRlIG9w
dGlvbnMgc3BlY2lmaWMgdG8gdGhlIEdUSyBwb3J0LiBDaGFuZ2luZyB0aGVzZSBvcHRpb25zIGlz
CiAjIGNvbXBsZXRlbHkgdW5zdXBwb3J0ZWQuIFRoZXkgYXJlIGludGVuZGVkIGZvciB1c2Ugb25s
eSBieSBXZWJLaXQgZGV2ZWxvcGVycy4KIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9BTkdMRV9X
RUJHTCAiV2hldGhlciB0byB1c2UgQU5HTEUgYXMgV2ViR0wgYmFja2VuZC4iIFBSSVZBVEUgT0ZG
KQotV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX09QRU5WUiAiV2hldGhlciB0byB1c2UgT3BlblZS
IGFzIFdlYlZSIGJhY2tlbmQuIiBQUklWQVRFIE9GRikKIAogIyBGSVhNRTogQ2FuIHdlIHVzZSBj
YWlyby1nbGVzdjIgdG8gYXZvaWQgdGhpcyBjb25mbGljdD8KIFdFQktJVF9PUFRJT05fQ09ORkxJ
Q1QoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyBFTkFCTEVfR0xFUzIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlCmluZGV4IDE0OWE1OTJjODkxZThiMzc1ZjQ0MWMxN2ZiNDIxMDk5ZTNjNDc3ZGMuLjVm
MDk2M2NjMWEzMjU1YjMxYzZhMmYxODZjMDdmZjMyMDRhMDQxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNt
YWtlCkBAIC03NSw3ICs3NSw2IEBAIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XT0ZGMiAiV2hl
dGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIgV2ViIEZvbnRzLiIKIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9XUEVfUVRfQVBJICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZv
ciB0aGUgUXQ1L1FNTCBwbHVnaW4iIFBVQkxJQyBPRkYpCiAKICMgUHJpdmF0ZSBvcHRpb25zIHNw
ZWNpZmljIHRvIHRoZSBXUEUgcG9ydC4KLVdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOVlIg
IldoZXRoZXIgdG8gdXNlIE9wZW5WUiBhcyBXZWJWUiBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiBX
RUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVBTUVSX0hPTEVQVU5DSCAiV2hldGhlciB0byBl
bmFibGUgR1N0cmVhbWVyIGhvbGVwdW5jaCIgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfRVhURVJOQUxfSE9MRVBVTkNIICJXaGV0aGVyIHRvIGVuYWJsZSBleHRlcm5hbCBo
b2xlcHVuY2giIFBSSVZBVEUgT0ZGKQogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VM
b2cKaW5kZXggMTY1NzQ4ZjUwZmE1Y2Y1YmNiYTAzOTQ2YWY4NmMyMTRlNzQzNmFiMi4uYjBmZmU2
ZGJmOWMxYTlmNzU3MGE2MjBkOGEyNTVkY2JhMDNjMzMxNyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTI0ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBXZWJWUiBm
cm9tIHRoZSB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmVkIFdlYlZSIGFuZCBPcGVuVlIgYnVpbGQgb3B0aW9ucyBmb3IgR1RLIGFuZCBX
UEUgcG9ydHMuCisKKyAgICAgICAgKiBTb3VyY2UvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2U6CisKIDIwMjAtMDEtMjIgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVh
ZEBzb255LmNvbT4KIAogICAgICAgICBbT3BlblNTTF0gQWRkIHN0dWJzIGFuZCBidWlsZCBmb3Ig
V2ViIENyeXB0bwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388690</attachid>
            <date>2020-01-24 07:54:27 -0800</date>
            <delta_ts>2020-01-27 01:38:49 -0800</delta_ts>
            <desc>Mac build fix</desc>
            <filename>bug-206739-20200124165258.patch</filename>
            <type>text/plain</type>
            <size>1389644</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYWYzNDBkOWY1
NmRlOTk1YzZlNjE1NWUwNjk1OTY0N2Q3OTQ5ZDRlOS4uZjU3ZWU2MWYzZWMwNDY5NjllODRmNjFk
MjRkNGQ4MjA1YjVlOThmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIw
LTAxLTI0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJlbW92ZSBXZWJWUiBmcm9tIHRoZSB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFzIFdlYlZSIGlzIGdvbmUgYW5kIHRoaXMg
aXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIG9wZW52ci9DTWFrZUxpc3RzLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvTElDRU5TRTogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvUkVBRE1FLm1kOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9SRUFETUUud2Via2l0
OiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2U6IFJlbW92
ZWQuCisgICAgICAgICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmg6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jczogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVu
dnIvaGVhZGVycy9vcGVudnJfYXBpLmpzb246IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyX2NhcGkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9v
cGVudnJfZHJpdmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3BhdGNoZXMvUGF0aF9X
cml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IFJlbW92ZWQuCisgICAg
ICAgICogb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2g6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIv
c3JjL0luZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9SRUFETUU6IFJl
bW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IFJlbW92ZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBvcGVudnIvc3JjL2pzb24vanNvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvanNvbmNwcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9vcGVudnJfYXBp
X3B1YmxpYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0
b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1v
bi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMv
dnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZy
L3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1
YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRv
b2xzX3B1YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vdnJw
YXRocmVnaXN0cnlfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBSZW1vdmVkLgorCiAyMDIwLTAxLTIxICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdHZPUyB2YWx1
ZXMgaW4gU1VQUE9SVEVEX1BMQVRGT1JNUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2NjY2NTU2MTVmZDdjZjQ5
Y2M5YjY2ZTY5MTc1Njc3NzgwZmMxMGQuLjYzMDkxMDhmOGY4MGZlMjM4ZDgxYjU4ZWQ3OWE3ZGM0
MWVhYzUzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAyMC0wMS0yNCAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2Vi
VlIgZnJvbSB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViVlIgMS4xIHdhcyBuZXZlciBjb21wbGV0ZWx5IGltcGxlbWVudGVkLCBpdCB3
YXMganVzdCBpbmNsdWRlZCBhcyBidWlsZCBvcHRpb24gb2YKKyAgICAgICAgV2ViS2l0R1RLIGFu
ZCBXUEUsIGFuZCBpdCB3YXMgbmV2ZXIgcmVsZWFzZWQgYnkgYW55IFdlYktpdCBwb3J0IGVpdGhl
ci4gVGhlcmUgYXJlIG5vIHBsYW5zCisgICAgICAgIHRvIHdvcmsgb24gaXQgYXMgaXQgaGFzIGJl
ZW4gcmVwbGFjZWQgYnkgdGhlIFdlYlhSIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJW
Ui5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBh
YmlsaXRpZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUNh
cGFiaWxpdGllcy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQu
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFz
b24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50UmVh
c29uLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRXllLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJzLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VidnIvVlJGaWVsZE9mVmlldy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
dnIvVlJGaWVsZE9mVmlldy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkZyYW1l
RGF0YS5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSUG9zZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUlBvc2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZS
UG9zZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRl
cnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBmZWF0dXJlcy5qc29uOgor
ICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViVlJFbmFibGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYlZSRW5hYmxlZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9WUk1hbmFnZXIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL3ZyL1ZSUGxhdGZvcm1NYW5hZ2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFu
YWdlck9wZW5WUi5oOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1
cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRXZWJWUkVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMjAtMDEtMjMgIFRha2FzaGkg
S29tb3JpICA8VGFrYXNoaS5Lb21vcmlAc29ueS5jb20+CiAKICAgICAgICAgS2V5ZWREZWNvZGVy
R2VuZXJpYyBjcmFzaGVzIHdoZW4gaXQgYWNjZXNzZXMgYSBkYXRhIHdpdGggZW1wdHkgc3RyaW5n
IGtleS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZTliYzcxZTM0MTg5N2U4MjgxZmYzYWQyMjhhODFkZjM1MTRlZGE3
Yy4uNTM0MzQzMDRkYTA1YTFiNTUyYjE1NTdhZGY2MTMwZTdjMzUwNTM5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMC0wMS0yNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2ViVlIgZnJvbSB0aGUgdHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbDogcmVtb3ZlZCBXZWJWUiBwcmVmZXJlbmNlLgorCiAyMDIwLTAxLTIzICBB
bGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10g
TmF2aWdhdGlvbiBnZXN0dXJlIGNyZWF0ZXMgQ1NTIG5vZGVzIGFuZCBkb2Vzbid0IHJlbW92ZSB0
aGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjJiMDU2YzdlY2U3NjI2OThjNjI4NTQzMzcxZWU0YzIwNThhYTZlNi4uMDg0
NGRmZjgwODg3YzFkMGZhMmU1NDA2OTMyNjIxNTQ5YjVhZjU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjEsMTMgKzIx
LDYgQEAgaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShUaGlyZFBh
cnR5L2d0ZXN0KQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0gICAgIyBPcGVuVlIgaXMg
Y29tcGlsZWQgd2l0aCAtc3RkbGliPWxpYmMrKyBhcyBkZWZhdWx0IGlmIENsYW5nIGlzIHVzZWQu
Ci0gICAgIyBEaXNhYmxlIFVTRV9MSUJDWFggbm90IHRvIHVzZSAtc3RkbGliPWxpYmMrKy4KLSAg
ICBvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9G
RikKLSAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvb3BlbnZyKQotZW5kaWYgKCkKLQog
aWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1l
KQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzYTdmOTBjZjg0YzIxZGE4NGQwYmE1ZmMyOGYxNGQ2
OGRhMmNmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvQ01ha2VMaXN0cy50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0jIFNldCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIENNYWtl
IGZvciB0aGlzIHByb2plY3QuCi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44KQot
Ci0jIFNldHVwIHNvbWUgb3B0aW9ucy4KLW9wdGlvbihCVUlMRF9TSEFSRUQgIkJ1aWxkcyB0aGUg
bGlicmFyeSBhcyBzaGFyZWQgbGlicmFyeSIgT0ZGKQotb3B0aW9uKFVTRV9MSUJDWFggIlVzZXMg
bGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPTikKLW9wdGlvbihVU0VfQ1VTVE9NX0xJQkNY
WCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLQotYWRkX2RlZmluaXRpb25zKCAtRFZSX0FQ
SV9QVUJMSUMgKQotCi0jIENoZWNrIGlmIDMyIG9yIDY0IGJpdCBzeXN0ZW0uCi1zZXQoU0laRU9G
X1ZPSURQICR7Q01BS0VfU0laRU9GX1ZPSURfUH0pCi1pZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVR
VUFMIDgpCi0gIHNldChQUk9DRVNTT1JfQVJDSCAiNjQiKQotZWxzZSgpCi0gIHNldChQUk9DRVNT
T1JfQVJDSCAiMzIiKQotZW5kaWYoKQotCi0jIEdldCBwbGF0Zm9ybS4KLWlmKFdJTjMyKQotICAg
ICAgIHNldChQTEFURk9STV9OQU1FICJ3aW4iKQotZWxzZWlmKFVOSVggQU5EIE5PVCBBUFBMRSkK
LSAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipMaW51eCIpCi0gICAgc2V0KFBMQVRG
T1JNX05BTUUgImxpbnV4IikKLSAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWCAtRFBPU0lYKQot
ICAgIGlmKFBST0NFU1NPUl9BUkNIIE1BVENIRVMgIjY0IikKLSAgICAgICAgYWRkX2RlZmluaXRp
b25zKC1ETElOVVg2NCkKLSAgICBlbmRpZigpCi0gIGVuZGlmKCkKLWVsc2VpZihBUFBMRSkKLSAg
aWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipEYXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVN
X05BTUUgTUFUQ0hFUyAiLipNYWNPUy4qIikKLSAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikK
LSAgICBhZGRfZGVmaW5pdGlvbnMoLURPU1ggLURQT1NJWCkKLSAgZW5kaWYoKQotZW5kaWYoKQot
Ci0jIEVuYWJsZSBzb21lIHByb3BlcnRpZXMuCi1pZihDTUFLRV9DT01QSUxFUl9JU19HTlVDQyBP
UiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKLSAgICAgICAjIEVuYWJsZSBj
KysxMSBhbmQgaGlkZSBzeW1ib2xzIHdoaWNoIHNob3VsZG4ndCBiZSB2aXNpYmxlCi0gICAgICAg
c2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEgLWZQSUMg
LWZ2aXNpYmlsaXR5PWhpZGRlbiIpCi0KLSAgICAgICAjIFNldCBjdXN0b20gbGliYysrIHVzYWdl
IGhlcmUKLSAgICAgICBpZihDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIiBBTkQg
VVNFX0xJQkNYWCkKLSAgICAgICAgICAgICAgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCi0gICAgICAg
ICAgICAgICAgICAgICBpZihCVUlMRF9TSEFSRUQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgZW5kaWYoKQotICAg
ICAgICAgICAgICAgICAgICAgc2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9
IC1ub3N0ZGluYysrIikKLSAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMo
ICR7TElCQ1hYX0lOQ0xVREV9ICR7TElCQ1hYX0FCSV9JTkNMVURFfSkKLSAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2UoU1RBVFVTICJVc2luZyBjdXN0b20gbGliYysrIikKLSAgICAgICAgICAg
ICAgZWxzZSgpCi0gICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NN
QUtFX0NYWF9GTEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZShTVEFUVVMgIlVzaW5nIGxpYmMrKyIpCi0gICAgICAgICAgICAgIGVuZGlmKCkKLSAgICAg
ICBlbmRpZigpCi1lbmRpZigpCi0KLWFkZF9zdWJkaXJlY3Rvcnkoc3JjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0xJQ0VOU0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4MzMzN2Q3ZmNiNzI2
ZDE0Y2MxMGY3ZGQyZmRhNjc5OWQ4YTEzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQorKysgL2Rl
di9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUNvcHlyaWdodCAoYykgMjAxNSwgVmFsdmUgQ29ycG9y
YXRpb24KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1h
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6Ci0KLTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLXRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yCi1vdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotCi0zLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKLXNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAot
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLURJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUubWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9SRUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1PcGVuVlIgU0RLCi0t
LS0KLQotT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0IGFsbG93cyBhY2Nlc3MgdG8g
VlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKLXZlbmRvcnMgd2l0aG91dCByZXF1aXJpbmcgdGhh
dCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ugb2YgdGhlIAotaGFyZHdhcmUg
dGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMgYW4gU0RLIHRoYXQgY29udGFp
bnMgdGhlIEFQSSAKLWFuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBpcyB1bmRlciBTdGVhbVZSIGlu
IFRvb2xzIG9uIFN0ZWFtLiAKLQotIyMjIERvY3VtZW50YXRpb24KLQotRG9jdW1lbnRhdGlvbiBm
b3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIgV2lraV0oaHR0cHM6Ly9naXRo
dWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURvY3VtZW50YXRpb24pCi0KLU1v
cmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNhbiBiZSBmb3VuZCBvbiBodHRw
Oi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYmI3NmVmMTZmMmVlYjNjNGI2Nzc5ZTFjM2Q5MGVi
ZTI0NTIwMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGlzIGlzIHRoZSBPcGVuVlIgbGlicmFyeSBmcm9tCi1odHRwczovL2dp
dGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIKLQotVXBzdHJlYW0gY29kZSBjYW4gYmUgdmll
d2VkIGF0Ci0gaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3RyZWUvbWFz
dGVyLwotCi1hbmQgY2xvbmVkIGJ5Ci0gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9WYWx2
ZVNvZnR3YXJlL29wZW52ci5naXQKLQotQ3VycmVudCB2ZXJzaW9uOiBbY29tbWl0IGViZGVhMTUy
ZjhhYWM3N2U5YTZkYjI5NjgyYjgxZDc2MjE1OWRmN2VdCi0KLXdoaWNoIGNvcnJlc3BvbmRzIHRv
IDEuMC4xMCByZWxlYXNlLgotCi1XZWJLaXQgY2hhbmdlczoKLSogcGF0Y2hlcy9jbWFrZS1idWls
ZC5wYXRjaDogc2NyaXB0IHVzZWQgdG8gYWxsb3cgb3BlbnZyIENNYWtlIGJ1aWxkIHRvIGJlCi1p
bnRlZ3JhdGVkIGludG8gV2ViS2l0IGJ1aWxkCi0qIHBhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZp
bGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IHN1cHByZXNzZXMgYQotY29tcGlsZXIgd2Fy
bmluZywgYnV0IG90aGVyd2lzZSBhbHJlYWR5IGFwcGxpZWQgdXBzdHJlYW0gaW4gMS4wLjEyCi0q
IFJlbW92ZWQgYmluLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMgaXQgaW5jbHVkZXMgcHJlY29t
cGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgbGliLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMg
aXQgaW5jbHVkZXMgcHJlY29tcGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgY29udHJvbGxlcl9j
YWxsb3V0cy8gZGlyZWN0b3J5LiBVbm5lZWRlZCBkb2NzCi0qIFJlbW92ZWQgc2FtcGxlcy8gZGly
ZWN0b3J5LgotKiBSZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2UgY2hlY2std2Vi
a2l0LXN0eWxlIGhhcHB5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rv
b2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4t
Y2xhbmcuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNmIwYWMwMTc1YTZl
MzRiNTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFu
Zy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotc2V0KENNQUtFX1NZU1RFTV9O
QU1FIExpbnV4KQotCi1zZXQoQ01BS0VfQ19DT01QSUxFUiBjbGFuZykKLXNldChDTUFLRV9DWFhf
Q09NUElMRVIgY2xhbmcrKykKLQotc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUFJPR1JB
TSBORVZFUikKLXNldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0xJQlJBUlkgT05MWSkKLXNl
dChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lOQ0xVREUgT05MWSkKLXNldChDTUFLRV9GSU5E
X1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0UgT05MWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NmU0OWE2YWM1
MzEwODBjNWY0MzAzZTVjMTVjZjkzZTExZmEyZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3Bl
bnZyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNzc3ICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0v
LyBvcGVudnIuaAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09
PT09PT09PS8vCi0vLyBEeW5hbWljYWxseSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IG1vZGlmeSB0
aGlzIGZpbGUgZGlyZWN0bHkuCi0KLSNpZm5kZWYgX09QRU5WUl9BUEkKLSNkZWZpbmUgX09QRU5W
Ul9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0jaWZuZGVm
IF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQotLy8gRm9y
d2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1Y3QgVmtE
ZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0YW5jZV9U
Owotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQg
cmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJRDNEMTJD
b21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkK
LQotdHlwZWRlZiB2b2lkKiBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgaW50MzJf
dCBnbEludF90OwotdHlwZWRlZiB1aW50MzJfdCBnbFVJbnRfdDsKLQotLy8gcmlnaHQtaGFuZGVk
IHN5c3RlbQotLy8gK3kgaXMgdXAKLS8vICt4IGlzIHRvIHRoZSByaWdodAotLy8gLXogaXMgZ29p
bmcgYXdheSBmcm9tIHlvdQotLy8gRGlzdGFuY2UgdW5pdCBpcyAgbWV0ZXJzCi1zdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIGZsb2F0IG1bM11bNF07Ci19OwotCi1zdHJ1Y3QgSG1kTWF0
cml4NDRfdAotewotICAgICAgIGZsb2F0IG1bNF1bNF07Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9y
M190Ci17Ci0gICAgICAgZmxvYXQgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3I0X3QKLXsK
LSAgICAgICBmbG9hdCB2WzRdOwotfTsKLQotc3RydWN0IEhtZFZlY3RvcjNkX3QKLXsKLSAgICAg
ICBkb3VibGUgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOwotfTsKLQotc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAgICAgIGRvdWJsZSB3
LCB4LCB5LCB6OwotfTsKLQotc3RydWN0IEhtZENvbG9yX3QKLXsKLSAgICAgICBmbG9hdCByLCBn
LCBiLCBhOwotfTsKLQotc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIEhtZFZlY3RvcjNfdCB2
Q29ybmVyc1sgNCBdOwotfTsKLQotc3RydWN0IEhtZFJlY3QyX3QKLXsKLSAgICAgICBIbWRWZWN0
b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX07Ci0K
LS8qKiBVc2VkIHRvIHJldHVybiB0aGUgcG9zdC1kaXN0b3J0aW9uIFVWcyBmb3IgZWFjaCBjb2xv
ciBjaGFubmVsLiAKLSogVVZzIHJhbmdlIGZyb20gMCB0byAxIHdpdGggMCwwIGluIHRoZSB1cHBl
ciBsZWZ0IGNvcm5lciBvZiB0aGUgCi0qIHNvdXJjZSByZW5kZXIgdGFyZ2V0LiBUaGUgMCwwIHRv
IDEsMSByYW5nZSBjb3ZlcnMgYSBzaW5nbGUgZXllLiAqLwotc3RydWN0IERpc3RvcnRpb25Db29y
ZGluYXRlc190Ci17Ci0gICAgICAgZmxvYXQgcmZSZWRbMl07Ci0gICAgICAgZmxvYXQgcmZHcmVl
blsyXTsKLSAgICAgICBmbG9hdCByZkJsdWVbMl07Ci19OwotCi1lbnVtIEVWUkV5ZQotewotICAg
ICAgIEV5ZV9MZWZ0ID0gMCwKLSAgICAgICBFeWVfUmlnaHQgPSAxCi19OwotCi1lbnVtIEVUZXh0
dXJlVHlwZQotewotICAgICAgIFRleHR1cmVUeXBlX0RpcmVjdFggPSAwLCAvLyBIYW5kbGUgaXMg
YW4gSUQzRDExVGV4dHVyZQotICAgICAgIFRleHR1cmVUeXBlX09wZW5HTCA9IDEsICAvLyBIYW5k
bGUgaXMgYW4gT3BlbkdMIHRleHR1cmUgbmFtZSBvciBhbiBPcGVuR0wgcmVuZGVyIGJ1ZmZlciBu
YW1lLCBkZXBlbmRpbmcgb24gc3VibWl0IGZsYWdzCi0gICAgICAgVGV4dHVyZVR5cGVfVnVsa2Fu
ID0gMiwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBhIFZSVnVsa2FuVGV4dHVyZURhdGFfdCBz
dHJ1Y3R1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLCAvLyBIYW5kbGUgaXMg
YSBtYWNPUyBjcm9zcy1wcm9jZXNzLXNoYXJhYmxlIElPU3VyZmFjZVJlZgotICAgICAgIFRleHR1
cmVUeXBlX0RpcmVjdFgxMiA9IDQsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBEM0QxMlRl
eHR1cmVEYXRhX3Qgc3RydWN0dXJlCi19OwotCi1lbnVtIEVDb2xvclNwYWNlCi17Ci0gICAgICAg
Q29sb3JTcGFjZV9BdXRvID0gMCwgICAgICAgLy8gQXNzdW1lcyAnZ2FtbWEnIGZvciA4LWJpdCBw
ZXIgY29tcG9uZW50IGZvcm1hdHMsIG90aGVyd2lzZSAnbGluZWFyJy4gIFRoaXMgbWlycm9ycyB0
aGUgRFhHSSBmb3JtYXRzIHdoaWNoIGhhdmUgX1NSR0IgdmFyaWFudHMuCi0gICAgICAgQ29sb3JT
cGFjZV9HYW1tYSA9IDEsICAgICAgIC8vIFRleHR1cmUgZGF0YSBjYW4gYmUgZGlzcGxheWVkIGRp
cmVjdGx5IG9uIHRoZSBkaXNwbGF5IHdpdGhvdXQgYW55IGNvbnZlcnNpb24gKGEuay5hLiBkaXNw
bGF5IG5hdGl2ZSBmb3JtYXQpLgotICAgICAgIENvbG9yU3BhY2VfTGluZWFyID0gMiwgICAgICAg
Ly8gU2FtZSBhcyBnYW1tYSBidXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgbGluZWFyIHJlcHJl
c2VudGF0aW9uIHVzaW5nIERYR0kncyBzUkdCIGNvbnZlcnNpb24gYWxnb3JpdGhtLgotfTsKLQot
c3RydWN0IFRleHR1cmVfdAotewotICAgICAgIHZvaWQqIGhhbmRsZTsgLy8gU2VlIEVUZXh0dXJl
VHlwZSBkZWZpbml0aW9uIGFib3ZlCi0gICAgICAgRVRleHR1cmVUeXBlIGVUeXBlOwotICAgICAg
IEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOwotfTsKLQotLy8gSGFuZGxlIHRvIGEgc2hhcmVkIHRl
eHR1cmUgKEhBTkRMRSBvbiBXaW5kb3dzIG9idGFpbmVkIHVzaW5nIE9wZW5TaGFyZWRSZXNvdXJj
ZSkuCi10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLSNkZWZpbmUgSU5W
QUxJRF9TSEFSRURfVEVYVFVSRV9IQU5ETEUgICAgICAgKCh2cjo6U2hhcmVkVGV4dHVyZUhhbmRs
ZV90KTApCi0KLWVudW0gRVRyYWNraW5nUmVzdWx0Ci17Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRf
VW5pbml0aWFsaXplZCAgICAgICAgICAgICAgICAgICAgID0gMSwKLQotICAgICAgIFRyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgICAgICAgPSAxMDAsCi0gICAgICAgVHJhY2tp
bmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSAgICAgICA9IDEwMSwKLQotICAgICAgIFRy
YWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAs
Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlICAgICAgICAgICAgICA9
IDIwMSwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgRHJpdmVySWRfdDsKLXN0YXRpYyBjb25zdCB1
aW50MzJfdCBrX25Ecml2ZXJOb25lID0gMHhGRkZGRkZGRjsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotCi0vKiogVXNlZCB0
byBwYXNzIGRldmljZSBJRHMgdG8gQVBJIGNhbGxzICovCi10eXBlZGVmIHVpbnQzMl90IFRyYWNr
ZWREZXZpY2VJbmRleF90Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kID0gMDsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmlj
ZUNvdW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRl
eE90aGVyID0gMHhGRkZGRkZGRTsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERl
dmljZUluZGV4SW52YWxpZCA9IDB4RkZGRkZGRkY7Ci0KLS8qKiBEZXNjcmliZXMgd2hhdCBraW5k
IG9mIG9iamVjdCBpcyBiZWluZyB0cmFja2VkIGF0IGEgZ2l2ZW4gSUQgKi8KLWVudW0gRVRyYWNr
ZWREZXZpY2VDbGFzcwotewotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIElEIHdhcyBub3QgdmFsaWQuCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX0hNRCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBIZWFkLU1vdW50ZWQgRGlzcGxheXMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfQ29udHJvbGxlciA9IDIsICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9s
bGVycwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAg
ICAgICAgICAvLyBHZW5lcmljIHRyYWNrZXJzLCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2Ft
ZXJhIGFuZCBiYXNlIHN0YXRpb25zIHRoYXQgc2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBv
aW50cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19EaXNwbGF5UmVkaXJlY3QgPSA1LCAgICAg
ICAgICAgICAgLy8gQWNjZXNzb3JpZXMgdGhhdCBhcmVuJ3QgbmVjZXNzYXJpbHkgdHJhY2tlZCB0
aGVtc2VsdmVzLCBidXQgbWF5IHJlZGlyZWN0IHZpZGVvIG91dHB1dCBmcm9tIG90aGVyIHRyYWNr
ZWQgZGV2aWNlcwotfTsKLQotCi0vKiogRGVzY3JpYmVzIHdoYXQgc3BlY2lmaWMgcm9sZSBhc3Nv
Y2lhdGVkIHdpdGggYSB0cmFja2VkIGRldmljZSAqLwotZW51bSBFVHJhY2tlZENvbnRyb2xsZXJS
b2xlCi17Ci0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxl
ciB0eXBlCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0gMSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQg
d2l0aCB0aGUgbGVmdCBoYW5kCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFu
ZCA9IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29j
aWF0ZWQgd2l0aCB0aGUgcmlnaHQgaGFuZAotfTsKLQotCi0vKiogZGVzY3JpYmVzIGEgc2luZ2xl
IHBvc2UgZm9yIGEgdHJhY2tlZCBvYmplY3QgKi8KLXN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOwotICAg
ICAgIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHZlbG9jaXR5IGluIHRyYWNrZXIgc3BhY2UgaW4gbS9zCi0gICAgICAgSG1kVmVjdG9yM190IHZB
bmd1bGFyVmVsb2NpdHk7ICAgICAgICAgICAgICAvLyBhbmd1bGFyIHZlbG9jaXR5IGluIHJhZGlh
bnMvcyAoPykKLSAgICAgICBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAg
IGJvb2wgYlBvc2VJc1ZhbGlkOwotCi0gICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVy
ZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgZm9yIHRoaXMgc3BvdCBpbiB0aGUgcG9zZSBhcnJheS4K
LSAgICAgICAvLyBJdCBjb3VsZCBnbyBmcm9tIHRydWUgdG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5w
bHVncyB0aGUgZGV2aWNlLgotICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOwotfTsKLQot
LyoqIElkZW50aWZpZXMgd2hpY2ggc3R5bGUgb2YgdHJhY2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNh
dGlvbiB3YW50cyB0byB1c2UKLSogZm9yIHRoZSBwb3NlcyBpdCBpcyByZXF1ZXN0aW5nICovCi1l
bnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgVHJhY2tpbmdVbml2ZXJzZVNl
YXRlZCA9IDAsICAgICAgICAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8g
dGhlIHNlYXRlZCB6ZXJvIHBvc2UKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAx
LCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNhZmUgYm91bmRz
IGNvbmZpZ3VyZWQgYnkgdGhlIHVzZXIKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5j
YWxpYnJhdGVkID0gMiwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBjb29yZGlu
YXRlIHN5c3RlbSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5p
ZmllZCBmb3IgZGV2aWNlcyBvZiB0aGUgc2FtZSBkcml2ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdh
bnQgdGhpcyBvbmUuCi19OwotCi0vLyBSZWZlcnMgdG8gYSBzaW5nbGUgY29udGFpbmVyIG9mIHBy
b3BlcnRpZXMKLXR5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKLXR5
cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7Ci0KLXN0YXRpYyBjb25zdCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOwot
Ci0vLyBVc2UgdGhlc2UgdGFncyB0byBzZXQvZ2V0IGNvbW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJv
cGVydGllcwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5
VGFnID0gMTsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0
eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blVpbnQ2NFByb3Bl
cnR5VGFnID0gMzsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuQm9vbFByb3Bl
cnR5VGFnID0gNDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJv
cGVydHlUYWcgPSA1OwotCi1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1h
dHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuSG1kTWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKLXN0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7Ci0K
LXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZl
ZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5W
UkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7Ci0KLQotLyoqIEVhY2ggZW50cnkgaW4gdGhp
cyBlbnVtIHJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQg
YQotKiB0cmFja2VkIGRldmljZS4gTWFueSBmaWVsZHMgYXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBF
VHJhY2tlZERldmljZUNsYXNzLiAqLwotZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5Ci17Ci0g
ICAgICAgUHJvcF9JbnZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDAsCi0KLSAgICAgICAvLyBnZW5lcmFsIHByb3BlcnRpZXMgdGhh
dCBhcHBseSB0byBhbGwgZGV2aWNlIGNsYXNzZXMKLSAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVt
TmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotICAgICAgIFBy
b3BfTW9kZWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAxLAotICAgICAgIFByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxO
YW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAzLAotICAg
ICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDA0LAotICAgICAgIFByb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDA1LAotICAgICAgIFByb3BfVHJhY2tpbmdGaXJtd2Fy
ZVZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA2LAotICAgICAgIFByb3Bf
SGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA3
LAotICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nICAgICAg
ID0gMTAwOCwKLSAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gMTAwOSwKLSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9v
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDEwLAotICAgICAgIFByb3Bf
RGV2aWNlSXNDaGFyZ2luZ19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMTEsCi0gICAgICAgUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gMTAxMiwgLy8gMCBpcyBlbXB0eSwgMSBpcyBmdWxsCi0gICAgICAgUHJv
cF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICA9IDEwMTMsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCAgICAgICAgICAgICAgICAg
ICAgID0gMTAxNCwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxNSwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVh
bFVwZGF0ZVVSTF9TdHJpbmcgICAgICAgICAgICAgID0gMTAxNiwKLSAgICAgICBQcm9wX0hhcmR3
YXJlUmV2aXNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNywKLSAg
ICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxOCwKLSAgICAgICBQcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxOSwKLSAgICAgICBQcm9wX1ZS
Q1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDIwLAotICAgICAgIFByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMiwKLSAgICAgICBQcm9w
X0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MjMsCi0gICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAg
ICAgPSAxMDI0LAotICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCAgICAg
ICAgICAgICAgICAgICAgID0gMTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVy
eVN0YXR1c19Cb29sICAgICAgICAgICAgICA9IDEwMjYsCi0gICAgICAgUHJvcF9EZXZpY2VDYW5Q
b3dlck9mZl9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjcsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgICAgICAgICAgICAg
ID0gMTAyOCwKLSAgICAgICBQcm9wX0RldmljZUNsYXNzX0ludDMyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDI5LAotICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jv
b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMw
LAotICAgICAgIFByb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgPSAx
MDMxLAotICAgICAgIFByb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sICAgICAg
PSAxMDMyLAotICAgICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAg
ICAgICAgICAgID0gMTAzMywKLSAgICAgICBQcm9wX1BhcmVudERyaXZlcl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNCwKLSAgICAgICBQcm9wX1Jlc291cmNl
Um9vdF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNSwKLQot
ICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFz
c19ITUQKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bo
b3RvbnNfRmxvYXQgICAgICAgICAgICAgID0gMjAwMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGcmVx
dWVuY3lfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwMiwKLSAg
ICAgICBQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAwMywKLSAgICAgICBQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDQsIAotICAgICAgIFByb3BfUHJldmlvdXNVbml2
ZXJzZUlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDUsIAotICAgICAg
IFByb3BfRGlzcGxheUZpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9
IDIwMDYsCi0gICAgICAgUHJvcF9Jc09uRGVza3RvcF9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDA3LAotICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA4LAotICAgICAgIFBy
b3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMDksCi0gICAgICAgUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDExLAotICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmluZyAgICAgICAgICAgICAgPSAyMDEyLAot
ICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgICAgICAgICAgICAgPSAyMDEz
LAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTUsCi0gICAgICAgUHJvcF9DYW1lcmFU
b0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAgICAgICAgICA9IDIwMTYsCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMTcsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ1Nj
YWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTksCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMjAsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAyMSwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIyLAotICAgICAg
IFByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjQsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVy
UmlnaHRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjUsCi0g
ICAgICAgUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjYsCi0gICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVEZXNj
cmlwdGlvbl9TdHJpbmcgICAgICAgICAgICAgID0gMjAyOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlG
UEdBVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI5LAotICAg
ICAgIFByb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgPSAy
MDMwLAotICAgICAgIFByb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzEsCi0gICAgICAgUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMzIsCi0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRp
YmlsaXR5TW9kZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgID0gMjAzMywKLSAgICAgICBQcm9w
X1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNCwKLSAg
ICAgICBQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzUsCi0gICAgICAgUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMzYsCi0gICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1v
ZGVfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzcsCi0gICAgICAgUHJvcF9E
aXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
OCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5l
bHNfSW50MzIgICAgICAgICAgICAgID0gMjA0MCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQxLAotICAgICAgIFBy
b3BfU2Vjb25kc0Zyb21QaG90b25zVG9WYmxhbmtfRmxvYXQgICAgICAgICAgICAgID0gMjA0MiwK
LSAgICAgICBQcm9wX0RyaXZlckRpcmVjdE1vZGVTZW5kc1ZzeW5jRXZlbnRzX0Jvb2wgICAgICAg
PSAyMDQzLAotICAgICAgIFByb3BfRGlzcGxheURlYnVnTW9kZV9Cb29sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwNDQsCi0gICAgICAgUHJvcF9HcmFwaGljc0FkYXB0ZXJM
dWlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDUsCi0gICAgICAgUHJv
cF9Ecml2ZXJQcm92aWRlZENoYXBlcm9uZVBhdGhfU3RyaW5nICAgICAgICAgICAgICA9IDIwNDgs
Ci0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2aWNl
Q2xhc3NfQ29udHJvbGxlcgotICAgICAgIFByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAwLAotICAgICAgIFByb3BfU3VwcG9ydGVkQnV0
dG9uc19VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAxLAotICAgICAgIFBy
b3BfQXhpczBUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDAyLCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5
cGUKLSAgICAgICBQcm9wX0F4aXMxVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwMywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMlR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDQsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczNUeXBlX0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA1LCAvLyBSZXR1
cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAgICBQcm9wX0F4
aXM0VHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwNiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0g
ICAgICAgUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDA3LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVHJhY2tlZENvbnRyb2xs
ZXJSb2xlCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2Vk
RGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDAsCi0gICAgICAgUHJvcF9G
aWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMSwK
LSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAg
ICAgID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCAg
ICAgICAgICAgICAgICAgICAgID0gNDAwMywKLSAgICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNaW5p
bXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2lu
Z1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA1LAotICAgICAgIFBy
b3BfTW9kZUxhYmVsX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNDAwNiwKLQotICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBmb3IgdXNl
ciBpbnRlcmZhY2UgbGlrZSBpY29ucyBuYW1lcwotICAgICAgIFByb3BfSWNvblBhdGhOYW1lX1N0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMCwgLy8g
REVQUkVDQVRFRC4gVmFsdWUgbm90IHJlZmVyZW5jZWQuIE5vdyBleHBlY3RlZCB0byBiZSBwYXJ0
IG9mIGljb24gcGF0aCBwcm9wZXJ0aWVzLgotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDAxLCAvLyB7ZHJpdmVy
fS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBh
bmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAgICAgICAgICAgID0g
NTAwMiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9T
dHJpbmcgICAgICAgPSA1MDAzLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5H
IGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0
cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJl
YWR5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8ge2RyaXZlcn0vaWNvbnMv
aWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9u
LCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyAgICAgICAgICAgICAgPSA1MDA1LCAv
LyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3Ig
R0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVy
cwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyAgICAgICAg
ICAgICAgICAgICAgID0gNTAwNiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBO
RyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNl
dHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8ge2RyaXZlcn0vaWNv
bnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0
aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9
IDUwMDgsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBp
Y29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBm
b3Igb3RoZXJzCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgYnkgaGVscGVy
cywgYnV0IGFyZSBvcGFxdWUgdG8gYXBwbGljYXRpb25zCi0gICAgICAgUHJvcF9EaXNwbGF5SGlk
ZGVuQXJlYV9CaW5hcnlfU3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAwLAot
ICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X0VuZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUxNTAsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1
ZSB0byBkcml2ZXJzCi0gICAgICAgUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMCwKLSAgICAgICBQcm9wX0luc3RhbGxQYXRo
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMSwK
LSAgICAgICBQcm9wX0hhc0Rpc3BsYXlDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDYwMDIsCi0gICAgICAgUHJvcF9IYXNDb250cm9sbGVyQ29tcG9uZW50X0Jvb2wg
ICAgICAgICAgICAgICAgICAgICA9IDYwMDMsCi0gICAgICAgUHJvcF9IYXNDYW1lcmFDb21wb25l
bnRfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDQsCi0gICAgICAgUHJvcF9I
YXNEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0gNjAwNSwKLSAg
ICAgICBQcm9wX0hhc1ZpcnR1YWxEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0g
NjAwNiwKLQotICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZGVi
dWcgZGF0YSBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFByb3BfVmVuZG9yU3BlY2lm
aWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgICAgICAgICAgICAgICA9IDEwMDAwLAotICAgICAgIFBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDk5
OSwKLX07Ci0KLS8qKiBObyBzdHJpbmcgcHJvcGVydHkgd2lsbCBldmVyIGJlIGxvbmdlciB0aGFu
IHRoaXMgbGVuZ3RoICovCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFByb3BlcnR5U3Ry
aW5nU2l6ZSA9IDMyICogMTAyNDsKLQotLyoqIFVzZWQgdG8gcmV0dXJuIGVycm9ycyB0aGF0IG9j
Y3VyIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLiAqLwotZW51bSBFVHJhY2tlZFByb3BlcnR5RXJy
b3IKLXsKLSAgICAgICBUcmFja2VkUHJvcF9TdWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25n
RGV2aWNlQ2xhc3MgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAgVHJhY2tlZFByb3Bf
QnVmZmVyVG9vU21hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQs
IC8vIERyaXZlciBoYXMgbm90IHNldCB0aGUgcHJvcGVydHkgKGFuZCBtYXkgbm90IGV2ZXIpLgot
ICAgICAgIFRyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1LAotICAgICAgIFRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciAgICAgICAg
ICAgICAgPSA2LAotICAgICAgIFRyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURldmljZSAg
ICAgICA9IDcsCi0gICAgICAgVHJhY2tlZFByb3BfU3RyaW5nRXhjZWVkc01heGltdW1MZW5ndGgg
ICAgICAgPSA4LAotICAgICAgIFRyYWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDksIC8vIFRoZSBwcm9wZXJ0eSB2YWx1ZSBpc24ndCBrbm93biB5
ZXQsIGJ1dCBpcyBleHBlY3RlZCBzb29uLiBDYWxsIGFnYWluIGxhdGVyLgotICAgICAgIFRyYWNr
ZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAg
IFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICA9IDExLAot
fTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udHJvbCB3aGF0IHBhcnQgb2Yg
dGhlIHByb3ZpZGVkIHRleHR1cmUgd2lsbCBiZSB1c2VkIGluIHRoZQotKiBmcmFtZSBidWZmZXIu
ICovCi1zdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QKLXsKLSAgICAgICBmbG9hdCB1TWluLCB2TWlu
OwotICAgICAgIGZsb2F0IHVNYXgsIHZNYXg7Ci19OwotCi0vKiogQWxsb3dzIHNwZWNpZnlpbmcg
cG9zZSB1c2VkIHRvIHJlbmRlciBwcm92aWRlZCBzY2VuZSB0ZXh0dXJlIChpZiBkaWZmZXJlbnQg
ZnJvbSB2YWx1ZSByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMpLiAqLwotc3RydWN0IFZSVGV4dHVy
ZVdpdGhQb3NlX3QgOiBwdWJsaWMgVGV4dHVyZV90Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBt
RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOyAvLyBBY3R1YWwgcG9zZSB1c2VkIHRvIHJlbmRlciBz
Y2VuZSB0ZXh0dXJlcy4KLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRy
b2wgaG93IHNjZW5lIHRleHR1cmVzIGFyZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yIHdoZW4gY2Fs
bGluZyBTdWJtaXQuICovCi1lbnVtIEVWUlN1Ym1pdEZsYWdzCi17Ci0gICAgICAgLy8gU2ltcGxl
IHJlbmRlciBwYXRoLiBBcHAgc3VibWl0cyByZW5kZXJlZCBsZWZ0IGFuZCByaWdodCBleWUgaW1h
Z2VzIHdpdGggbm8gbGVucyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24gYXBwbGllZC4KLSAgICAgICBT
dWJtaXRfRGVmYXVsdCA9IDB4MDAsCi0KLSAgICAgICAvLyBBcHAgc3VibWl0cyBmaW5hbCBsZWZ0
IGFuZCByaWdodCBleWUgaW1hZ2VzIHdpdGggbGVucyBkaXN0b3J0aW9uIGFscmVhZHkgYXBwbGll
ZCAobGVucyBkaXN0b3J0aW9uIG1ha2VzIHRoZSBpbWFnZXMgYXBwZWFyCi0gICAgICAgLy8gYmFy
cmVsIGRpc3RvcnRlZCB3aXRoIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYXBwbGll
ZCkuIFRoZSBhcHAgd291bGQgaGF2ZSB1c2VkIHRoZSBkYXRhIHJldHVybmVkIGJ5Ci0gICAgICAg
Ly8gdnI6OklWUlN5c3RlbTo6Q29tcHV0ZURpc3RvcnRpb24oKSB0byBhcHBseSB0aGUgY29ycmVj
dCBkaXN0b3J0aW9uIHRvIHRoZSByZW5kZXJlZCBpbWFnZXMgYmVmb3JlIGNhbGxpbmcgU3VibWl0
KCkuCi0gICAgICAgU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAweDAxLAot
Ci0gICAgICAgLy8gSWYgdGhlIHRleHR1cmUgcG9pbnRlciBwYXNzZWQgaW4gaXMgYWN0dWFsbHkg
YSByZW5kZXJidWZmZXIgKGUuZy4gZm9yIE1TQUEgaW4gT3BlbkdMKSB0aGVuIHNldCB0aGlzIGZs
YWcuCi0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMHgwMiwKLQotICAgICAgIC8vIERv
IG5vdCB1c2UKLSAgICAgICBTdWJtaXRfUmVzZXJ2ZWQgPSAweDA0LAotCi0gICAgICAgLy8gU2V0
IHRvIGluZGljYXRlIHRoYXQgcFRleHR1cmUgaXMgYSBwb2ludGVyIHRvIGEgVlJUZXh0dXJlV2l0
aFBvc2VfdC4KLSAgICAgICBTdWJtaXRfVGV4dHVyZVdpdGhQb3NlID0gMHgwOCwKLX07Ci0KLS8q
KiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJDb21wb3Np
dG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3JlIGRl
c3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFf
dAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0gICAgICAgVmtEZXZp
Y2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5c2ljYWxE
ZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAgICAgICBWa1F1ZXVl
X1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7Ci0gICAg
ICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1wbGVDb3Vu
dDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1cmVzIHRv
IElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0ZG93
biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1Y3QgRDNEMTJUZXh0
dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOwotICAgICAg
IElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1f
bk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gb3IgdHJh
Y2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJTdGF0ZV9VbmRlZmlu
ZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJTdGF0ZV9TZWFyY2hp
bmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKLSAgICAgICBWUlN0
YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKLSAgICAgICBW
UlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAotICAgICAg
IFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUgdHlwZXMgb2YgZXZl
bnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBtZWFuIGZv
ciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewotICAgICAgIFZSRXZl
bnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgICAg
ICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVk
ICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgICAgICAg
ICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9JcGRDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0Vu
dGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAgICAgICBWUkV2ZW50
X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKLSAgICAgICBWUkV2
ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAgICAgICBWUkV2ZW50
X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKLSAgICAgICBWUkV2
ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJF
dmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCi0g
ICAgICAgVlJFdmVudF9XaXJlbGVzc0Rpc2Nvbm5lY3QgICAgICAgICAgICAgICAgICAgICA9IDEx
MiwKLSAgICAgICBWUkV2ZW50X1dpcmVsZXNzUmVjb25uZWN0ICAgICAgICAgICAgICAgICAgICAg
PSAxMTMsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJFdmVu
dF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAg
VlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAv
LyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAg
IFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAx
LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8g
ZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJF
dmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
NSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEg
aXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0
dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVD
QVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAg
ICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVudF9T
Y2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBU
aGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3Ig
ZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290
IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5n
ZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAg
VlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAg
ICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24g
dG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZSRXZl
bnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRv
IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwg
dmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZh
dGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRE
ZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRU
aHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0
ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2Fz
dCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VMb2Fk
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92
ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZp
bmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUg
ZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVy
IGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVw
YWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZS
T3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFu
IG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0
Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZlbnRf
T3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
R3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0
dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5z
aG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcg
b3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNjcmVl
bnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBj
b21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90
VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5
IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJl
ZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRp
b24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2ZW50
X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQg
YnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hv
dCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hi
b2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQg
dGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZSRXZl
bnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAgICBW
UkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYw
MCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFj
dGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQg
ICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3
MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCi0K
LSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAg
ICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAg
ICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFu
Z2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdz
SGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVudF9B
dWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAgVlJF
dmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAotICAg
ICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEs
Ci0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1
MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4
NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAg
ICAgID0gODU1LAotICAgICAgIFZSRXZlbnRfRW5hYmxlSG9tZUFwcFNldHRpbmdzSGF2ZUNoYW5n
ZWQgPSA4NTYsCi0KLSAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA5MDAsCi0KLSAgICAgICBWUkV2ZW50X01DSW1hZ2VVcGRhdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkV2
ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCAgICAgICAgICAgICAgICAgICAgID0gMTEwMCwKLSAg
ICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgICAgICAgICAgICAgICAgICAgICA9
IDExMDEsCi0KLSAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEyMDAsCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENoYXJJbnB1
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDEsCi0gICAgICAgVlJFdmVudF9LZXli
b2FyZERvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMiwgLy8gU2Vu
dCB3aGVuIERPTkUgYnV0dG9uIGNsaWNrZWQgb24ga2V5Ym9hcmQKLQotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCAgICAgICAgICAgICAgPSAxMzAwLAotICAgICAg
IFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCAgICAgICAgICAgICAgPSAxMzAx
LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCAgICAg
ICA9IDEzMDIsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTMwMywKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTWlt
ZVR5cGVMb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNCwKLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAg
ICAgICBWUkV2ZW50X1Byb2Nlc3NDb25uZWN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTMwNiwKLSAgICAgICBWUkV2ZW50X1Byb2Nlc3NEaXNjb25uZWN0ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNywKLQotICAgICAgIFZSRXZlbnRfQ29t
cG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biAgICAgICAgICAgICAgPSAxNDAwLAotICAgICAgIFZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gICAgICAgICAgICAgID0gMTQwMSwK
LSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzU2hvd24gICAgICAgICAg
ICAgID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlk
ZGVuICAgICAgID0gMTQxMSwKLQotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdGFydFZp
ZGVvU3RyZWFtICA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRl
b1N0cmVhbSAgID0gMTUwMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRl
b1N0cmVhbSAgPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJm
YWNlICAgID0gMTU1MCwKLQotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0VuYWJsZUNh
cHR1cmUgICAgICAgPSAxNjAwLAotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2Fi
bGVDYXB0dXJlICAgICAgID0gMTYwMSwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9G
aWRlbGl0eUxldmVsICAgICAgID0gMTYwMiwKLQotICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfQ2xvc2VkICAgICAgICAgICAgICAgICAgICAgPSAxNjUwLAotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlDbG9zZVJlcXVlc3RlZCAgICAgICA9IDE2NTEsCi0gICAgICAgCi0gICAgICAg
Ly8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBldmVudHMgaW4gdGhpcyByZXNl
cnZlZCByZWdpb24KLSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0
ICAgICAgID0gMTAwMDAsCi0gICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9F
bmQgICAgICAgICAgICAgID0gMTk5OTksCi19OwotCi0KLS8qKiBMZXZlbCBvZiBIbWQgYWN0aXZp
dHkgKi8KLS8vIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IG1lYW5zIHRoZSBkZXZpY2UgaXMgaW4g
dGhlIHByb2Nlc3Mgb2YgdGltaW5nIG91dC4KLS8vIEluVXNlID0gKCBrX0VEZXZpY2VBY3Rpdml0
eUxldmVsX1VzZXJJbnRlcmFjdGlvbiB8fCBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRl
cmFjdGlvbl9UaW1lb3V0ICkKLS8vIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNlcyB0cmFuc2l0aW9ucyBmcm9tIFN0YW5kYnkg
LT4gVXNlckludGVyYWN0aW9uIG9yIElkbGUgLT4gVXNlckludGVyYWN0aW9uLgotLy8gVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNl
cyB0cmFuc2l0aW9ucyBmcm9tIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IC0+IElkbGUKLWVudW0g
RURldmljZUFjdGl2aXR5TGV2ZWwKLXsgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9Vbmtub3duID0gLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9J
ZGxlID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBh
Y3Rpdml0eSBmb3IgdGhlIGxhc3QgMTAgc2Vjb25kcwotICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
QWN0aXZpdHkgKG1vdmVtZW50IG9yIHByb3ggc2Vuc29yKSBpcyBoYXBwZW5pbmcgbm93ICAgICAg
IAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQg
PSAyLCAgICAgICAgICAgICAgLy8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDAuNSBzZWNvbmRz
Ci0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGxlIGZvciBhdCBsZWFzdCA1IHNlY29u
ZHMgKGNvbmZpZ3VyYWJsZSBpbiBTZXR0aW5ncyAtPiBQb3dlciBNYW5hZ2VtZW50KQotfTsKLQot
Ci0vKiogVlIgY29udHJvbGxlciBidXR0b24gYW5kIGF4aXMgSURzICovCi1lbnVtIEVWUkJ1dHRv
bklkCi17Ci0gICAgICAga19FQnV0dG9uX1N5c3RlbSAgICAgICAgICAgICAgICAgICAgID0gMCwK
LSAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ICAgICAgID0gMSwKLSAgICAgICBrX0VC
dXR0b25fR3JpcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfTGVmdCAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAgICBrX0VCdXR0b25f
RFBhZF9VcCAgICAgICAgICAgICAgICAgICAgID0gNCwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9S
aWdodCAgICAgICAgICAgICAgPSA1LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX0Rvd24gICAgICAg
ICAgICAgICAgICAgICA9IDYsCi0gICAgICAga19FQnV0dG9uX0EgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNywKLSAgICAgICAKLSAgICAgICBrX0VCdXR0b25fUHJveGltaXR5
U2Vuc29yICAgPSAzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzNCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM2LAotCi0gICAgICAgLy8gYWxpYXNlcyBmb3Igd2VsbCBrbm93biBjb250
cm9sbGVycwotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkICAgICAgID0ga19FQnV0
dG9uX0F4aXMwLAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgICAgICAgPSBrX0VC
dXR0b25fQXhpczEsCi0KLSAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgICAgICAgPSBr
X0VCdXR0b25fR3JpcCwKLQotICAgICAgIGtfRUJ1dHRvbl9NYXggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2NAotfTsKLQotaW5saW5lIHVpbnQ2NF90IEJ1dHRvbk1hc2tGcm9tSWQoIEVW
UkJ1dHRvbklkIGlkICkgeyByZXR1cm4gMXVsbCA8PCBpZDsgfQotCi0vKiogdXNlZCBmb3IgY29u
dHJvbGxlciBidXR0b24gZXZlbnRzICovCi1zdHJ1Y3QgVlJFdmVudF9Db250cm9sbGVyX3QKLXsK
LSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUkJ1dHRvbklkIGVudW0KLX07Ci0KLQotLyoq
IHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotZW51
bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIFZSTW91c2VCdXR0b25fTGVmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEsCi0gICAgICAgVlJNb3VzZUJ1dHRvbl9S
aWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDIsCi0gICAgICAg
VlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDQs
Ci19OwotCi0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkg
c3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4LCB5OyAv
LyBjby1vcmRzIGFyZSBpbiBHTCBzcGFjZSwgYm90dG9tIGxlZnQgb2YgdGhlIHRleHR1cmUgaXMg
MCwwCi0gICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJNb3VzZUJ1dHRvbiBlbnVtCi19Owot
Ci0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIHdoZWVsIHNjcm9sbCBpbiBvdmVybGF5IHNw
YWNlICovCi1zdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAotewotICAgICAgIGZsb2F0IHhkZWx0YSwg
eWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBmcmFjdGlvbiBvZiB0aGUgcGFkIHRyYXZlcnNlZCBzaW5j
ZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEgZnVsbCBzd2lwZQotICAgICAgIHVpbnQzMl90IHJlcGVh
dENvdW50OwotfTsKLQotLyoqIHdoZW4gaW4gbW91c2UgaW5wdXQgbW9kZSB5b3UgY2FuIHJlY2Vp
dmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBhZCwgdGhlc2UgZXZlbnRzIGFyZSBvbmx5IHNlbnQgaWYg
dGhlIHVzZXJzIGZpbmdlcgotICAgaXMgb24gdGhlIHRvdWNocGFkIChvciBqdXN0IHJlbGVhc2Vk
IGZyb20gaXQpIAotKiovCi1zdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdAotewotICAgICAg
IC8vIHRydWUgaWYgdGhlIHVzZXJzIGZpbmdlciBpcyBkZXRlY3RlZCBvbiB0aGUgdG91Y2ggcGFk
Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLQotICAgICAgIC8vIEhvdyBsb25nIHRoZSBmaW5n
ZXIgaGFzIGJlZW4gZG93biBpbiBzZWNvbmRzCi0gICAgICAgZmxvYXQgZmxTZWNvbmRzRmluZ2Vy
RG93bjsKLQotICAgICAgIC8vIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0aGUgc3RhcnRpbmcgZmlu
Z2VyIHBvc2l0aW9uIChzbyB5b3UgY2FuIGRvIHNvbWUgYmFzaWMgc3dpcGUgc3R1ZmYpCi0gICAg
ICAgZmxvYXQgZlZhbHVlWEZpcnN0OwotICAgICAgIGZsb2F0IGZWYWx1ZVlGaXJzdDsKLQotICAg
ICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBzYW1wbGVkIGNvb3JkaW5hdGUgd2l0aG91dCBkZWFkem9u
aW5nCi0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBmVmFsdWVZUmF3Owot
fTsKLQotLyoqIG5vdGlmaWNhdGlvbiByZWxhdGVkIGV2ZW50cy4gRGV0YWlscyB3aWxsIHN0aWxs
IGNoYW5nZSBhdCB0aGlzIHBvaW50ICovCi1zdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAot
ewotICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOwotICAgICAgIHVpbnQzMl90IG5vdGlmaWNh
dGlvbklkOwotfTsKLQotLyoqIFVzZWQgZm9yIGV2ZW50cyBhYm91dCBwcm9jZXNzZXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAotewotICAgICAgIHVpbnQzMl90IHBpZDsKLSAgICAgICB1
aW50MzJfdCBvbGRQaWQ7Ci0gICAgICAgYm9vbCBiRm9yY2VkOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9PdmVybGF5
X3QKLXsKLSAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9TdGF0dXNf
dAotewotICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRlOyAvLyBFVlJTdGF0ZSBlbnVtCi19Owot
Ci0vKiogVXNlZCBmb3Iga2V5Ym9hcmQgZXZlbnRzICoqLwotc3RydWN0IFZSRXZlbnRfS2V5Ym9h
cmRfdAotewotICAgICAgIGNoYXIgY05ld0lucHV0WzhdOyAgICAgICAvLyBVcCB0byAxMSBieXRl
cyBvZiBuZXcgaW5wdXQKLSAgICAgICB1aW50NjRfdCB1VXNlclZhbHVlOyAgICAgICAvLyBQb3Nz
aWJsZSBmbGFncyBhYm91dCB0aGUgbmV3IGlucHV0Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9JcGRf
dAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0NoYXBl
cm9uZV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKLSAgICAgICB1
aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Ci19OwotCi0vKiogTm90IGFjdHVhbGx5IHVzZWQg
Zm9yIGFueSBldmVudHMgKi8KLXN0cnVjdCBWUkV2ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1
aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWludDY0X3QgcmVzZXJ2ZWQxOwotfTsKLQotc3Ry
dWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRl
bGl0eUxldmVsOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Ci17
Ci0gICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9T
Y3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAgICAgdWludDMyX3Qg
dHlwZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Ci17Ci0gICAg
ICAgZmxvYXQgcHJvZ3Jlc3M7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5j
aF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IHVuQXJnc0hhbmRs
ZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fTsKLQotc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90
IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOyAvLyB2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlIGVudW0KLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKLXsKLSAgICAgICBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRhaW5lcjsKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3A7Ci19OwotCi0vKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1V
U1QgbWFudWFsbHkgdXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5ICovCi10eXBlZGVmIHVuaW9u
Ci17Ci0gICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOwotICAgICAgIFZSRXZlbnRf
Q29udHJvbGxlcl90IGNvbnRyb2xsZXI7Ci0gICAgICAgVlJFdmVudF9Nb3VzZV90IG1vdXNlOwot
ICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOwotICAgICAgIFZSRXZlbnRfUHJvY2Vzc190
IHByb2Nlc3M7Ci0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRpb247Ci0g
ICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1N0YXR1c190
IHN0YXR1czsKLSAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7Ci0gICAgICAgVlJF
dmVudF9JcGRfdCBpcGQ7Ci0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJvbmU7Ci0g
ICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7Ci0gICAgICAg
VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7Ci0gICAgICAgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKLSAgICAgICBWUkV2ZW50X1Nj
cmVlbnNob3RfdCBzY3JlZW5zaG90OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3Qgc2NyZWVuc2hvdFByb2dyZXNzOwotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hf
dCBhcHBsaWNhdGlvbkxhdW5jaDsKLSAgICAgICBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNl
X3QgY2FtZXJhU3VyZmFjZTsKLSAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QgbWVzc2Fn
ZU92ZXJsYXk7Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eV90IHByb3BlcnR5OwotfSBWUkV2ZW50
X0RhdGFfdDsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBv
biBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBhdGliaWxpdHkuIAotI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIg
dG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90Ci17Ci0gICAg
ICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAgICAgIFRyYWNr
ZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9hdCBldmVudEFn
ZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0
cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7
Ci19OwotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSNw
cmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0vKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRvIHRo
ZSBzdGVuY2lsIChvciBkZXB0aCkgYnVmZmVyIHRvIHBlcmZvcm0gCi0qIGVhcmx5IHN0ZW5jaWwg
KG9yIGRlcHRoKSBraWxscyBvZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0aGUg
SE1ELgotKiBUaGlzIG1lc2ggZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJlIGhp
ZGRlbiBhZnRlciBkaXN0b3J0aW9uLiAKLSoKLSogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92aWRl
IGEgdmlzaWJsZSBhcmVhIG1lc2ggcFZlcnRleERhdGEgd2lsbCBiZQotKiBOVUxMIGFuZCB1blRy
aWFuZ2xlQ291bnQgd2lsbCBiZSAwLiAqLwotc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsKLSAg
ICAgICBjb25zdCBIbWRWZWN0b3IyX3QgKnBWZXJ0ZXhEYXRhOwotICAgICAgIHVpbnQzMl90IHVu
VHJpYW5nbGVDb3VudDsKLX07Ci0KLQotZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCi17Ci0gICAg
ICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAotICAgICAgIGtfZUhpZGRlbkFyZWFN
ZXNoX0ludmVyc2UgPSAxLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwK
LQotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19OwotCi0KLS8qKiBJZGVudGlm
aWVzIHdoYXQga2luZCBvZiBheGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4uIFJl
YWQgdGhpcyB0eXBlIAotKiB3aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmljZUlu
ZGV4LCBQcm9wX0F4aXMwVHlwZV9JbnQzMiArIG4gKTsKLSovCi1lbnVtIEVWUkNvbnRyb2xsZXJB
eGlzVHlwZQotewotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAotICAgICAgIGtf
ZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkID0gMSwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19K
b3lzdGljayA9IDIsCi0gICAgICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8vIEFu
YWxvZyB0cmlnZ2VyIGRhdGEgaXMgaW4gdGhlIFggYXhpcwotfTsKLQotCi0vKiogY29udGFpbnMg
aW5mb3JtYXRpb24gYWJvdXQgb25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KLXN0cnVjdCBW
UkNvbnRyb2xsZXJBeGlzX3QKLXsKLSAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAtMS4w
IHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAgdG8g
MS4wIGZvciB0cmlnZ2VycyB3ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCi0gICAgICAgZmxvYXQg
eTsgLy8gUmFuZ2VzIGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFk
cy4gSXMgYWx3YXlzIDAuMCBmb3IgdHJpZ2dlcnMuCi19OwotCi0KLS8qKiB0aGUgbnVtYmVyIG9m
IGF4ZXMgaW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgKi8KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5h
bGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBh
dGliaWxpdHkuIAotI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogSG9sZHMg
YWxsIHRoZSBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLwot
c3RydWN0IFZSQ29udHJvbGxlclN0YXRlMDAxX3QKLXsKLSAgICAgICAvLyBJZiBwYWNrZXQgbnVt
IG1hdGNoZXMgdGhhdCBvbiB5b3VyIHByaW9yIGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3Rh
dGUgaGFzbid0IGJlZW4gY2hhbmdlZCBzaW5jZSAKLSAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBh
bmQgdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIGl0Ci0gICAgICAgdWludDMyX3QgdW5QYWNr
ZXROdW07Ci0KLSAgICAgICAvLyBiaXQgZmxhZ3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVz
ZSBCdXR0b25NYXNrRnJvbUlkIHRvIHR1cm4gYW4gSUQgaW50byBhIG1hc2sKLSAgICAgICB1aW50
NjRfdCB1bEJ1dHRvblByZXNzZWQ7Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOwot
Ci0gICAgICAgLy8gQXhpcyBkYXRhIGZvciB0aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMK
LSAgICAgICBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgXTsKLX07Ci0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLSNwcmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0KLXR5cGVkZWYgVlJDb250cm9sbGVy
U3RhdGUwMDFfdCBWUkNvbnRyb2xsZXJTdGF0ZV90OwotCi0KLS8qKiBkZXRlcm1pbmVzIGhvdyB0
byBwcm92aWRlIG91dHB1dCB0byB0aGUgYXBwbGljYXRpb24gb2YgdmFyaW91cyBldmVudCBwcm9j
ZXNzaW5nIGZ1bmN0aW9ucy4gKi8KLWVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX07Ci0KLQotCi0vKiogQ29sbGlzaW9u
IEJvdW5kcyBTdHlsZSAqLwotZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKLXsKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBDT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0lOVEVSTUVESUFURSwKLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NR
VUFSRVMsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCwKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUsCi0KLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0NPVU5UCi19OwotCi0vKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjdXN0b21pemUg
aG93IHRoZSBvdmVybGF5IGFwcGVhcnMgaW4gdGhlIGNvbXBvc2l0b3IgKi8KLXN0cnVjdCBDb21w
b3NpdG9yX092ZXJsYXlTZXR0aW5ncwotewotICAgICAgIHVpbnQzMl90IHNpemU7IC8vIHNpemVv
ZihDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncykKLSAgICAgICBib29sIGN1cnZlZCwgYW50aWFs
aWFzOwotICAgICAgIGZsb2F0IHNjYWxlLCBkaXN0YW5jZSwgYWxwaGE7Ci0gICAgICAgZmxvYXQg
dU9mZnNldCwgdk9mZnNldCwgdVNjYWxlLCB2U2NhbGU7Ci0gICAgICAgZmxvYXQgZ3JpZERpdnMs
IGdyaWRXaWR0aCwgZ3JpZFNjYWxlOwotICAgICAgIEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOwot
fTsKLQotLyoqIHVzZWQgdG8gcmVmZXIgdG8gYSBzaW5nbGUgVlIgb3ZlcmxheSAqLwotdHlwZWRl
ZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IFZST3ZlcmxheUhh
bmRsZV90IGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9IDA7Ci0KLS8qKiBFcnJvcnMgdGhhdCBj
YW4gb2NjdXIgYXJvdW5kIFZSIG92ZXJsYXlzICovCi1lbnVtIEVWUk92ZXJsYXlFcnJvcgotewot
ICAgICAgIFZST3ZlcmxheUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDAsCi0KLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSAg
ICAgICAgICAgICAgICAgICAgID0gMTAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZEhh
bmRsZSAgICAgICAgICAgICAgICAgICAgID0gMTEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUGVy
bWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTIsCi0gICAgICAgVlJPdmVybGF5
RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQgICAgICAgICAgICAgID0gMTMsIC8vIE5vIG1vcmUg
b3ZlcmxheXMgY291bGQgYmUgY3JlYXRlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBhbHJl
YWR5IGV4aXN0Ci0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdWaXNpYmlsaXR5VHlwZSAgICAg
ICAgICAgICAgPSAxNCwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlUb29Mb25nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTUsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKLSAgICAgICBWUk92ZXJsYXlFcnJv
cl9LZXlJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNywKLSAgICAg
ICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUgICAgICAgICAgICAgID0gMTgsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNrZWREZXZpY2UgICAgICAgICAgICAgID0g
MTksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciAgICAgICAgICAgICAg
ICAgICAgID0gMjAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVGh1bWJuYWlsQ2FudEJlRGVzdHJv
eWVkICAgICAgID0gMjEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCAgICAg
ICAgICAgICAgICAgICAgID0gMjIsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgID0gMjMsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxp
ZFRleHR1cmUgICAgICAgICAgICAgICAgICAgICA9IDI0LAotICAgICAgIFZST3ZlcmxheUVycm9y
X1VuYWJsZVRvTG9hZEZpbGUgICAgICAgICAgICAgICAgICAgICA9IDI1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlICAgICAgICAgICAgICA9IDI2LAotICAgICAg
IFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
NywKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMgICAgICAgPSAy
OSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9CYWRNYXNrUHJpbWl0aXZlICAgICAgICAgICAgICAg
ICAgICAgPSAzMCwKLX07Ci0KLS8qKiBlbnVtIHZhbHVlcyB0byBwYXNzIGluIHRvIFZSX0luaXQg
dG8gaWRlbnRpZnkgd2hldGhlciB0aGUgYXBwbGljYXRpb24gd2lsbCAKLSogZHJhdyBhIDNEIHNj
ZW5lLiAqLwotZW51bSBFVlJBcHBsaWNhdGlvblR5cGUKLXsKLSAgICAgICBWUkFwcGxpY2F0aW9u
X090aGVyID0gMCwgICAgICAgICAgICAgIC8vIFNvbWUgb3RoZXIga2luZCBvZiBhcHBsaWNhdGlv
biB0aGF0IGlzbid0IGNvdmVyZWQgYnkgdGhlIG90aGVyIGVudHJpZXMgCi0gICAgICAgVlJBcHBs
aWNhdGlvbl9TY2VuZSAgICAgICA9IDEsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiB3aWxs
IHN1Ym1pdCAzRCBmcmFtZXMgCi0gICAgICAgVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwgICAg
ICAgICAgICAgIC8vIEFwcGxpY2F0aW9uIG9ubHkgaW50ZXJhY3RzIHdpdGggb3ZlcmxheXMKLSAg
ICAgICBWUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLCAgICAgICAvLyBBcHBsaWNhdGlvbiBz
aG91bGQgbm90IHN0YXJ0IFN0ZWFtVlIgaWYgaXQncyBub3QgYWxyZWFkeSBydW5uaW5nLCBhbmQg
c2hvdWxkIG5vdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8ga2VlcCBpdCBydW5uaW5nIGlmIGV2ZXJ5dGhpbmcgZWxzZSBx
dWl0cy4KLSAgICAgICBWUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LCAgICAgICAgICAgICAgLy8g
SW5pdCBzaG91bGQgbm90IHRyeSB0byBsb2FkIGFueSBkcml2ZXJzLiBUaGUgYXBwbGljYXRpb24g
bmVlZHMgYWNjZXNzIHRvIHV0aWxpdHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludGVyZmFjZXMgKGxpa2UgSVZSU2V0
dGluZ3MgYW5kIElWUkFwcGxpY2F0aW9ucykgYnV0IG5vdCBoYXJkd2FyZS4KLSAgICAgICBWUkFw
cGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsICAgICAgIC8vIFJlc2VydmVkIGZvciB2cm1vbml0b3IK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LC8vIFJlc2VydmVkIGZvciBT
dGVhbQotICAgICAgIFZSQXBwbGljYXRpb25fQm9vdHN0cmFwcGVyID0gNywgLy8gU3RhcnQgdXAg
U3RlYW1WUgotCi0gICAgICAgVlJBcHBsaWNhdGlvbl9NYXgKLX07Ci0KLQotLyoqIGVycm9yIGNv
ZGVzIGZvciBmaXJtd2FyZSAqLwotZW51bSBFVlJGaXJtd2FyZUVycm9yCi17Ci0gICAgICAgVlJG
aXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIFZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0g
MSwKLSAgICAgICBWUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCi19OwotCi0KLS8qKiBlcnJvciBj
b2RlcyBmb3Igbm90aWZpY2F0aW9ucyAqLwotZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgotewot
ICAgICAgIFZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE5vdGlmaWNhdGlvbklkID0gMTAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfTm90aWZpY2F0aW9uUXVldWVGdWxsID0gMTAxLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgVlJOb3RpZmljYXRpb25F
cnJvcl9TeXN0ZW1XaXRoVXNlclZhbHVlQWxyZWFkeUV4aXN0cyA9IDEwMywKLX07Ci0KLQotLyoq
IGVycm9yIGNvZGVzIHJldHVybmVkIGJ5IFZyX0luaXQgKi8KLQotLy8gUGxlYXNlIGFkZCBhZGVx
dWF0ZSBlcnJvciBkZXNjcmlwdGlvbiB0byBodHRwczovL2RldmVsb3Blci52YWx2ZXNvZnR3YXJl
LmNvbS93L2luZGV4LnBocD90aXRsZT1DYXRlZ29yeTpTdGVhbVZSSGVscAotZW51bSBFVlJJbml0
RXJyb3IKLXsKLSAgICAgICBWUkluaXRFcnJvcl9Ob25lICAgICAgID0gMCwKLSAgICAgICBWUklu
aXRFcnJvcl9Vbmtub3duID0gMSwKLQotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0
aW9uTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgICAgICAgICA9IDEwMSwKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgICAgICAgICAgICAgICAg
ICAgICA9IDEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9GYWN0b3J5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAg
VlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTEwLAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUgICAgICAgICAgICAgID0gMTEzLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTQsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9SZXRyeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8gVXNlZCBp
bnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NiwgLy8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNpbGVudGx5IGV4aXQuIFRoZSB1
c2VyIGNhbmNlbGVkIGFwcCBzdGFydHVwCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVy
QXBwTGF1bmNoaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMTcsIAotICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTE4LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTksCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgICAgICAgICAgICAg
ID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0
b3IgICAgICAgICAgICAgID0gMTIyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxh
YmxlVG9VdGlsaXR5QXBwcyAgICAgICAgICAgICAgPSAxMjMsCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcm5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEyNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5v
dEZvdW5kUHJlc2VuY2VGYWlsZWQgICAgICAgICAgICAgICA9IDEyNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTI3LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgID0gMTI4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJX
YXRjaGRvZ05vdFN1cHBvcnRlZCAgICAgICA9IDEyOSwgCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICAgICAgICAgICAgICAgICAgICAgPSAxMzAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAgICAgICAgICAg
ICAgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyAgICAgICAgICAgICAgPSAxMzIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMzMsCi0gICAgICAgVlJJbml0RXJy
b3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgID0gMTM0LAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTM1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1
cEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTM2LAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfUmVib290aW5nQnVzeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzcs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMzgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVJl
Y292ZXJ5QnVzeSAgICAgICAgICAgICAgICAgICAgID0gMTM5LAotCi0KLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDAsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKLSAgICAgICBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIs
Ci0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDMsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZEluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDUsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDYsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X0NhbGlicmF0aW9uSW52YWxpZCAgICAgICAgICAgICAgICAgICAgID0gMjA3LAotICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9
IDIwOCwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgLy8gVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RG
b3VuZEFmdGVyRml4ID0gMjEwLCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyByZWFz
b25zCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgICAg
ICAgICAgICAgID0gMjExLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWly
cm9yZWQgICAgICAgICAgICAgICAgICAgICA9IDIxMiwKLQotICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwLAotICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0
RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDMsCi0gICAgICAg
VlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAzMDQsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9
IDMwNiwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVz
cG9uc2UgPSAzMDcsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11
bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCi0KLSAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDAsCi0gICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgICAgICAgPSA0MDEsCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlICAgICAg
ID0gNDAyLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQg
ICAgICAgICAgICAgID0gNDAzLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVu
c2hvdHNJbml0RmFpbGVkICAgICAgID0gNDA0LAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2UgICAgICAgICAgICAgID0gNDA1LAotCi0gICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lICAg
ICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAx
LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAgIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDEx
MDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRG
aXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwK
LSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVz
ZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAs
Ci0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRy
ZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25m
aWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJbml0
RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwK
LSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0gICAg
ICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVf
Q3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVtIEVW
UlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0gICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAot
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0g
MTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAg
ICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJh
bWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRP
ZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKLSAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEw
OCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAg
ICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdM
VGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRU
ZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9O
b0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVudW0g
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNh
bWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAgICAg
IFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAg
ICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9u
IHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2Vz
IHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3Rv
cnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxp
ZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdp
b25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWludDY0
X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJB
X0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0IENh
bWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0gICAg
ICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVzCi10
eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKLSNp
ZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJfSU5U
RVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5kaWYK
LQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRl
ZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9JTlRF
UkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQot
I2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vsc2UK
LSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5lIFZS
X0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBfSU5D
TFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4KLSMg
ZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIg
KSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNkZWZp
bmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIg
KQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQotI2Rl
ZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKLSNk
ZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCi0j
ZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFS
QU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJSQVlf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsi
ICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRS
KCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZSX0JV
RkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5U
RVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09VVF9T
VFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAj
Q09VTlRFUiAiOyIgKQotCi0vLyBpdnJzeXN0ZW0uaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUlN5c3RlbQotewotcHVibGljOgotCi0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBEaXNwbGF5IE1ldGhvZHMKLSAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBTdWdnZXN0
ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRpc3Rv
cnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UmVjb21tZW5kZWRS
ZW5kZXJUYXJnZXRTaXplKCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgLyoqIFRoZSBwcm9qZWN0aW9uIG1hdHJpeCBmb3IgdGhlIHNwZWNpZmll
ZCBleWUgKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDQ0X3QgR2V0UHJvamVjdGlvbk1hdHJp
eCggRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclogKSA9IDA7Ci0KLSAgICAg
ICAvKiogVGhlIGNvbXBvbmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHByb2plY3Rp
b24gbWF0cml4IGluIGNhc2UgeW91cgotICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRQ
cm9qZWN0aW9uUmF3KCBFVlJFeWUgZUV5ZSwgZmxvYXQgKnBmTGVmdCwgZmxvYXQgKnBmUmlnaHQs
IGZsb2F0ICpwZlRvcCwgZmxvYXQgKnBmQm90dG9tICkgPSAwOwotCi0gICAgICAgLyoqIEdldHMg
dGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlvbiBmdW5jdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBl
eWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZyb20gMCwwIGluIAotICAgICAgICogdGhlIHVwcGVy
IGxlZnQgb2YgdGhhdCBleWUncyB2aWV3cG9ydCBhbmQgMSwxIGluIHRoZSBsb3dlciByaWdodCBv
ZiB0aGF0IGV5ZSdzIHZpZXdwb3J0LgotICAgICAgICogUmV0dXJucyB0cnVlIGZvciBzdWNjZXNz
LiBPdGhlcndpc2UsIHJldHVybnMgZmFsc2UsIGFuZCBkaXN0b3J0aW9uIGNvb3JkaW5hdGVzIGFy
ZSBub3Qgc3VpdGFibGUuICovCi0gICAgICAgdmlydHVhbCBib29sIENvbXB1dGVEaXN0b3J0aW9u
KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWLCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNf
dCAqcERpc3RvcnRpb25Db29yZGluYXRlcyApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSB0cmFuc2Zvcm0gZnJvbSBleWUgc3BhY2UgdG8gdGhlIGhlYWQgc3BhY2UuIEV5ZSBzcGFjZSBp
cyB0aGUgcGVyLWV5ZSBmbGF2b3Igb2YgaGVhZAotICAgICAgICogc3BhY2UgdGhhdCBwcm92aWRl
cyBzdGVyZW8gZGlzcGFyaXR5LiBJbnN0ZWFkIG9mIE1vZGVsICogVmlldyAqIFByb2plY3Rpb24g
dGhlIHNlcXVlbmNlIGlzIE1vZGVsICogVmlldyAqIEV5ZV4tMSAqIFByb2plY3Rpb24uIAotICAg
ICAgICogTm9ybWFsbHkgVmlldyBhbmQgRXllXi0xIHdpbGwgYmUgbXVsdGlwbGllZCB0b2dldGhl
ciBhbmQgdHJlYXRlZCBhcyBWaWV3IGluIHlvdXIgYXBwbGljYXRpb24uIAotICAgICAgICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9ybSggRVZSRXll
IGVFeWUgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsYXBzZWQg
c2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZWNvcmRlZCB2c3luYyBldmVudC4gVGhpcyAKLSAgICAg
ICAqICAgICAgIHdpbGwgY29tZSBmcm9tIGEgdnN5bmMgdGltZXIgZXZlbnQgaW4gdGhlIHRpbWVy
IGlmIHBvc3NpYmxlIG9yIGZyb20gdGhlIGFwcGxpY2F0aW9uLXJlcG9ydGVkCi0gICAgICAgKiAg
IHRpbWUgaWYgdGhhdCBpcyBub3QgYXZhaWxhYmxlLiBJZiBubyB2c3luYyB0aW1lcyBhcmUgYXZh
aWxhYmxlIHRoZSBmdW5jdGlvbiB3aWxsIAotICAgICAgICogICByZXR1cm4gemVybyBmb3IgdnN5
bmMgdGltZSBhbmQgZnJhbWUgY291bnRlciBhbmQgcmV0dXJuIGZhbHNlIGZyb20gdGhlIG1ldGhv
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0VGltZVNpbmNlTGFzdFZzeW5jKCBmbG9hdCAq
cGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICpwdWxGcmFtZUNvdW50ZXIgKSA9IDA7
Ci0KLSAgICAgICAvKiogW0QzRDkgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIg
aW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIENyZWF0ZURldmljZSB0byBzZXQg
dXAgRDNEOSBpbiBzdWNoCi0gICAgICAgKiBhIHdheSB0aGF0IGl0IGNhbiBnbyBmdWxsIHNjcmVl
biBleGNsdXNpdmUgb24gdGhlIEhNRC4gUmV0dXJucyAtMSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Iu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0RDNEOUFkYXB0ZXJJbmRleCgp
ID0gMDsKLQotICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhl
IGFkYXB0ZXIgaW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVy
cyB0byBjcmVhdGUgdGhlIGRldmljZSAKLSAgICAgICAqIGFuZCBzd2FwIGNoYWluIGluIERYMTAg
YW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgaW5kZXggd2lsbCBiZSBzZXQgdG8gLTEu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91dHB1dEluZm8oIGludDMy
X3QgKnBuQWRhcHRlckluZGV4ICkgPSAwOwotICAgICAgIAotICAgICAgIC8qKgotICAgICAgICAq
IFJldHVybnMgcGxhdGZvcm0tIGFuZCB0ZXh0dXJlLXR5cGUgc3BlY2lmaWMgYWRhcHRlciBpZGVu
dGlmaWNhdGlvbiBzbyB0aGF0IGFwcGxpY2F0aW9ucyBhbmQgdGhlCi0gICAgICAgICogY29tcG9z
aXRvciBhcmUgY3JlYXRpbmcgdGV4dHVyZXMgYW5kIHN3YXAgY2hhaW5zIG9uIHRoZSBzYW1lIEdQ
VS4gSWYgYW4gZXJyb3Igb2NjdXJzIHRoZSBkZXZpY2UKLSAgICAgICAgKiB3aWxsIGJlIHNldCB0
byAwLgotICAgICAgICAqIHBJbnN0YW5jZSBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBp
cyByZXF1aXJlZCBvbmx5IHdoZW4gdGV4dHVyZVR5cGUgaXMgVGV4dHVyZVR5cGVfVnVsa2FuLgot
ICAgICAgICAqIFtEM0QxMC8xMS8xMiBPbmx5IChEM0Q5IE5vdCBTdXBwb3J0ZWQpXQotICAgICAg
ICAqICBSZXR1cm5zIHRoZSBhZGFwdGVyIExVSUQgdGhhdCBpZGVudGlmaWVzIHRoZSBHUFUgYXR0
YWNoZWQgdG8gdGhlIEhNRC4gVGhlIHVzZXIgc2hvdWxkCi0gICAgICAgICogIGVudW1lcmF0ZSBh
bGwgYWRhcHRlcnMgdXNpbmcgSURYR0lGYWN0b3J5OjpFbnVtQWRhcHRlcnMgYW5kIElEWEdJQWRh
cHRlcjo6R2V0RGVzYyB0byBmaW5kCi0gICAgICAgICogIHRoZSBhZGFwdGVyIHdpdGggdGhlIG1h
dGNoaW5nIExVSUQsIG9yIHVzZSBJRFhHSUZhY3Rvcnk0OjpFbnVtQWRhcHRlckJ5THVpZC4KLSAg
ICAgICAgKiAgVGhlIGRpc2NvdmVyZWQgSURYR0lBZGFwdGVyIHNob3VsZCBiZSB1c2VkIHRvIGNy
ZWF0ZSB0aGUgZGV2aWNlIGFuZCBzd2FwIGNoYWluLgotICAgICAgICAqIFtWdWxrYW4gT25seV0K
LSAgICAgICAgKiAgUmV0dXJucyB0aGUgVmtQaHlzaWNhbERldmljZSB0aGF0IHNob3VsZCBiZSB1
c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKiAgcEluc3RhbmNlIG11c3QgYmUgdGhl
IGluc3RhbmNlIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVzZSB0byBxdWVyeSBmb3IgdGhlIFZrUGh5
c2ljYWxEZXZpY2UuICBUaGUgYXBwbGljYXRpb24KLSAgICAgICAgKiAgbXVzdCBjcmVhdGUgdGhl
IFZrSW5zdGFuY2Ugd2l0aCBleHRlbnNpb25zIHJldHVybmVkIGJ5IElWUkNvbXBvc2l0b3I6Okdl
dFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkIGVuYWJsZWQuCi0gICAgICAgICogW21h
Y09TIE9ubHldCi0gICAgICAgICogIFJldHVybnMgYW4gaWQ8TVRMRGV2aWNlPiB0aGF0IHNob3Vs
ZCBiZSB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0T3V0cHV0RGV2aWNlKCB1aW50NjRfdCAqcG5EZXZpY2UsIEVUZXh0dXJlVHlwZSB0
ZXh0dXJlVHlwZSwgVmtJbnN0YW5jZV9UICpwSW5zdGFuY2UgPSBudWxscHRyICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
RGlzcGxheSBNb2RlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBVc2UgdG8gZGV0ZXJtaW5lIGlmIHRoZSBoZWFkc2V0
IGRpc3BsYXkgaXMgcGFydCBvZiB0aGUgZGVza3RvcCAoaS5lLiBleHRlbmRlZCkgb3IgaGlkZGVu
IChpLmUuIGRpcmVjdCBtb2RlKS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25E
ZXNrdG9wKCkgPSAwOwotCi0gICAgICAgLyoqIFNldCB0aGUgZGlzcGxheSB2aXNpYmlsaXR5ICh0
cnVlID0gZXh0ZW5kZWQsIGZhbHNlID0gZGlyZWN0IG1vZGUpLiAgUmV0dXJuIHZhbHVlIG9mIHRy
dWUgaW5kaWNhdGVzIHRoYXQgdGhlIGNoYW5nZSB3YXMgc3VjY2Vzc2Z1bC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoIGJvb2wgYklzVmlzaWJsZU9uRGVza3Rv
cCApID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgIC8vIFRyYWNraW5nIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBUaGUgcG9zZSB0aGF0IHRoZSB0cmFj
a2VyIHRoaW5rcyB0aGF0IHRoZSBITUQgd2lsbCBiZSBpbiBhdCB0aGUgc3BlY2lmaWVkIG51bWJl
ciBvZiBzZWNvbmRzIGludG8gdGhlIAotICAgICAgICogZnV0dXJlLiBQYXNzIDAgdG8gZ2V0IHRo
ZSBzdGF0ZSBhdCB0aGUgaW5zdGFudCB0aGUgbWV0aG9kIGlzIGNhbGxlZC4gTW9zdCBvZiB0aGUg
dGltZSB0aGUgYXBwbGljYXRpb24gc2hvdWxkCi0gICAgICAgKiBjYWxjdWxhdGUgdGhlIHRpbWUg
dW50aWwgdGhlIHBob3RvbnMgd2lsbCBiZSBlbWl0dGVkIGZyb20gdGhlIGRpc3BsYXkgYW5kIHBh
c3MgdGhhdCB0aW1lIGludG8gdGhlIG1ldGhvZC4KLSAgICAgICAqCi0gICAgICAgKiBUaGlzIGlz
IHJvdWdobHkgYW5hbG9nb3VzIHRvIHRoZSBpbnZlcnNlIG9mIHRoZSB2aWV3IG1hdHJpeCBpbiBt
b3N0IGFwcGxpY2F0aW9ucywgdGhvdWdoIAotICAgICAgICogbWFueSBnYW1lcyB3aWxsIG5lZWQg
dG8gZG8gc29tZSBhZGRpdGlvbmFsIHJvdGF0aW9uIG9yIHRyYW5zbGF0aW9uIG9uIHRvcCBvZiB0
aGUgcm90YXRpb24KLSAgICAgICAqIGFuZCB0cmFuc2xhdGlvbiBwcm92aWRlZCBieSB0aGUgaGVh
ZCBwb3NlLgotICAgICAgICoKLSAgICAgICAqIEZvciBkZXZpY2VzIHdoZXJlIGJQb3NlSXNWYWxp
ZCBpcyB0cnVlIHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBwb3NlIHRvIHBvc2l0aW9uIHRo
ZSBkZXZpY2UKLSAgICAgICAqIGluIHF1ZXN0aW9uLiBUaGUgcHJvdmlkZWQgYXJyYXkgY2FuIGJl
IGFueSBzaXplIHVwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQuIAotICAgICAgICoKLSAg
ICAgICAqIFNlYXRlZCBleHBlcmllbmNlcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIFRy
YWNraW5nVW5pdmVyc2VTZWF0ZWQgYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUKLSAgICAgICAq
IHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlLiBTdGFuZGluZyBleHBlcmllbmNlcyBzaG91bGQgY2Fs
bCB0aGlzIG1ldGhvZCB3aXRoIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyAKLSAgICAgICAqIGFu
ZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZlIHRvIHRoZSBDaGFwZXJvbmUgUGxheSBBcmVhLiBUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIHNob3VsZCAKLSAgICAgICAqIHByb2JhYmx5
IG5vdCBiZSB1c2VkIHVubGVzcyB0aGUgYXBwbGljYXRpb24gaXMgdGhlIENoYXBlcm9uZSBjYWxp
YnJhdGlvbiB0b29sIGl0c2VsZiwgYnV0IHdpbGwgcHJvdmlkZQotICAgICAgICogcG9zZXMgcmVs
YXRpdmUgdG8gdGhlIGhhcmR3YXJlLXNwZWNpZmljIGNvb3JkaW5hdGUgc3lzdGVtIGluIHRoZSBk
cml2ZXIuCi0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RGV2aWNlVG9BYnNvbHV0
ZVRyYWNraW5nUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBWUl9BUlJBWV9DT1VOVCh1blRyYWNrZWRE
ZXZpY2VQb3NlQXJyYXlDb3VudCkgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQ
b3NlQXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFNldHMgdGhlIHplcm8gcG9zZSBmb3IgdGhlIHNlYXRlZCB0cmFja2VyIGNv
b3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB5YXcgb2YgdGhlIEhN
RC4gQWZ0ZXIgCi0gICAgICAgKiBSZXNldFNlYXRlZFplcm9Qb3NlIGFsbCBHZXREZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmdQb3NlIGNhbGxzIHRoYXQgcGFzcyBUcmFja2luZ1VuaXZlcnNlU2VhdGVk
IGFzIHRoZSBvcmlnaW4gCi0gICAgICAgKiB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoaXMgbmV3IHpl
cm8gcG9zZS4gVGhlIG5ldyB6ZXJvIGNvb3JkaW5hdGUgc3lzdGVtIHdpbGwgbm90IGNoYW5nZSB0
aGUgZmFjdCB0aGF0IHRoZSBZIGF4aXMgCi0gICAgICAgKiBpcyB1cCBpbiB0aGUgcmVhbCB3b3Js
ZCwgc28gdGhlIG5leHQgcG9zZSByZXR1cm5lZCBmcm9tIEdldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UgYWZ0ZXIgYSBjYWxsIHRvIAotICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBt
YXkgbm90IGJlIGV4YWN0bHkgYW4gaWRlbnRpdHkgbWF0cml4LgotICAgICAgICoKLSAgICAgICAq
IE5PVEU6IFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSB1c2VyJ3MgcHJldmlvdXNseSBzYXZl
ZCBzZWF0ZWQgemVybyBwb3NlIGFuZCBzaG91bGQgb25seSBiZSBjYWxsZWQgYXMgdGhlIHJlc3Vs
dCBvZiBhIHVzZXIgYWN0aW9uLiAKLSAgICAgICAqIFVzZXJzIGFyZSBhbHNvIGFibGUgdG8gc2V0
IHRoZWlyIHNlYXRlZCB6ZXJvIHBvc2UgdmlhIHRoZSBPcGVuVlIgRGFzaGJvYXJkLgotICAgICAg
ICoqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZXNldFNlYXRlZFplcm9Qb3NlKCkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIHRoZSBzZWF0ZWQgemVybyBwb3Nl
IHRvIHRoZSBzdGFuZGluZyBhYnNvbHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzIAot
ICAgICAgICogYXBwbGljYXRpb25zIHRvIHJlcHJlc2VudCB0aGUgc2VhdGVkIG9yaWdpbiB0byB1
c2VkIG9yIHRyYW5zZm9ybSBvYmplY3QgcG9zaXRpb25zIGZyb20gb25lIGNvb3JkaW5hdGUKLSAg
ICAgICAqIHN5c3RlbSB0byB0aGUgb3RoZXIuIAotICAgICAgICoKLSAgICAgICAqIFRoZSBzZWF0
ZWQgb3JpZ2luIG1heSBvciBtYXkgbm90IGJlIGluc2lkZSB0aGUgUGxheSBBcmVhIG9yIENvbGxp
c2lvbiBCb3VuZHMgcmV0dXJuZWQgYnkgSVZSQ2hhcGVyb25lLiBJdHMgcG9zaXRpb24gCi0gICAg
ICAgKiBkZXBlbmRzIG9uIHdoYXQgdGhlIHVzZXIgaGFzIHNldCBmcm9tIHRoZSBEYXNoYm9hcmQg
c2V0dGluZ3MgYW5kIHByZXZpb3VzIGNhbGxzIHRvIFJlc2V0U2VhdGVkWmVyb1Bvc2UuICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5z
Zm9ybSBmcm9tIHRoZSB0cmFja2luZyBvcmlnaW4gdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRy
YWNraW5nIHN5c3RlbS4gVGhpcyBhbGxvd3MKLSAgICAgICAqIGFwcGxpY2F0aW9ucyB0byBjb252
ZXJ0IGZyb20gcmF3IHRyYWNraW5nIHNwYWNlIHRvIHRoZSBjYWxpYnJhdGVkIHN0YW5kaW5nIGNv
b3JkaW5hdGUgc3lzdGVtLiAqLwotICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKLQotICAgICAgIC8q
KiBHZXQgYSBzb3J0ZWQgYXJyYXkgb2YgZGV2aWNlIGluZGljZXMgb2YgYSBnaXZlbiBjbGFzcyBv
ZiB0cmFja2VkIGRldmljZXMgKGUuZy4gY29udHJvbGxlcnMpLiAgRGV2aWNlcyBhcmUgc29ydGVk
IHJpZ2h0IHRvIGxlZnQKLSAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgdHJhY2tl
ZCBkZXZpY2UgKGRlZmF1bHQ6IGhtZCAtLSBwYXNzIGluIC0xIGZvciBhYnNvbHV0ZSB0cmFja2lu
ZyBzcGFjZSkuICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGV2aWNlcwotICAgICAgICogaW4gdGhl
IGxpc3QsIG9yIHRoZSBzaXplIG9mIHRoZSBhcnJheSBuZWVkZWQgaWYgbm90IGxhcmdlIGVub3Vn
aC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRp
Y2VzT2ZDbGFzcyggRVRyYWNrZWREZXZpY2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBWUl9B
UlJBWV9DT1VOVCh1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQpIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tl
ZERldmljZUluZGV4QXJyYXlDb3VudCwgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRp
dmVUb1RyYWNrZWREZXZpY2VJbmRleCA9IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICkgPSAw
OwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIGxldmVsIG9mIGFjdGl2aXR5IG9uIHRoZSBkZXZp
Y2UuICovCi0gICAgICAgdmlydHVhbCBFRGV2aWNlQWN0aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2
aWNlQWN0aXZpdHlMZXZlbCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSWQgKSA9
IDA7Ci0KLSAgICAgICAvKiogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBhcHBseSB0aGUgc3BlY2lm
aWVkIHRyYW5zZm9ybSB0byB0aGUgc3BlY2lmaWVkIHBvc2UuCi0gICAgICAgKiAgIFRoaXMgcHJv
cGVybHkgdHJhbnNmb3JtcyBhbGwgcG9zZSBjb21wb25lbnRzLCBpbmNsdWRpbmcgdmVsb2NpdHkg
YW5kIGFuZ3VsYXIgdmVsb2NpdHkKLSAgICAgICAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBBcHBs
eVRyYW5zZm9ybSggVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIGNvbnN0IFRyYWNr
ZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSwgY29uc3QgSG1kTWF0cml4MzRfdCAq
cFRyYW5zZm9ybSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBkZXZpY2UgaW5kZXgg
YXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm9sZSwgZm9yIGV4YW1wbGUgdGhlIGxlZnQgaGFu
ZCBvciB0aGUgcmlnaHQgaGFuZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCBHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSggdnI6OkVUcmFj
a2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVy
bnMgdGhlIGNvbnRyb2xsZXIgdHlwZSBhc3NvY2lhdGVkIHdpdGggYSBkZXZpY2UgaW5kZXguICov
Ci0gICAgICAgdmlydHVhbCB2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSBHZXRDb250cm9sbGVy
Um9sZUZvclRyYWNrZWREZXZpY2VJbmRleCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2
aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBQcm9wZXJ0eSBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2
aWNlIGNsYXNzIG9mIGEgdHJhY2tlZCBkZXZpY2UuIElmIHRoZXJlIGhhcyBub3QgYmVlbiBhIGRl
dmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90Ci0gICAgICAgKiBzaW5jZSB0aGUgYXBwbGljYXRp
b24gc3RhcnRlZCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFRyYWNrZWREZXZpY2VfSW52YWxp
ZC4gRm9yIHByZXZpb3VzIGRldGVjdGVkCi0gICAgICAgKiBkZXZpY2VzIHRoZSBmdW5jdGlvbiB3
aWxsIHJldHVybiB0aGUgcHJldmlvdXNseSBvYnNlcnZlZCBkZXZpY2UgY2xhc3MuIAotICAgICAg
ICoKLSAgICAgICAqIFRvIGRldGVybWluZSB3aGljaCBkZXZpY2VzIGV4aXN0IG9uIHRoZSBzeXN0
ZW0sIGp1c3QgbG9vcCBmcm9tIDAgdG8ga191bk1heFRyYWNrZWREZXZpY2VDb3VudCBhbmQgY2hl
Y2sKLSAgICAgICAqIHRoZSBkZXZpY2UgY2xhc3MuIEV2ZXJ5IGRldmljZSB3aXRoIHNvbWV0aGlu
ZyBvdGhlciB0aGFuIFRyYWNrZWREZXZpY2VfSW52YWxpZCBpcyBhc3NvY2lhdGVkIHdpdGggYW4g
Ci0gICAgICAgKiBhY3R1YWwgdHJhY2tlZCBkZXZpY2UuICovCi0gICAgICAgdmlydHVhbCBFVHJh
Y2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZpY2VDbGFzcyggdnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QuICovCi0gICAgICAgdmly
dHVhbCBib29sIElzVHJhY2tlZERldmljZUNvbm5lY3RlZCggdnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgcHJv
cGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBp
cyBub3QgYSBib29sIHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8q
KiBSZXR1cm5zIGEgZmxvYXQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZh
bGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBmbG9hdCB0eXBlIHRoaXMgZnVuY3Rpb24gd2ls
bCByZXR1cm4gMC4gKi8KLSAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0VHJhY2tlZERldmlj
ZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBM
ICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgYW4gaW50IHByb3BlcnR5LiBJZiB0aGUgZGV2
aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgaW50IHR5cGUg
dGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwotICAgICAgIHZpcnR1YWwgaW50MzJfdCBH
ZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0
IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVy
dHkgaXMgbm90IGEgdWludDY0IHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwot
ICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgYSBtYXRyaXggcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXgg
aXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBtYXRyaXggdHlwZSwgdGhpcyBm
dW5jdGlvbiB3aWxsIHJldHVybiBpZGVudGl0eS4gKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJp
eDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJu
cyBhIHN0cmluZyBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCAKLSAg
ICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZwotICAgICAgICogbnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVm
ZmVycyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCi0gICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXpl
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0gICAgICAgLyoq
IHJldHVybnMgYSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJv
cGVydHkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZSAKLSAgICAgICAqIG9mIHRo
ZSBlcnJvciBlbnVtIHZhbHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KLSAgICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVycm9yICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gRXZlbnQgbWV0aG9kcwotICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlm
IHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRo
b2QgcmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVz
IG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0
RXZlbnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0
IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVu
dHMKLSAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIEZpbGxzIGluIHRoZSBwb3Nl
IG9mIHRoZSBhc3NvY2lhdGVkIHRyYWNrZWQgZGV2aWNlIGluIHRoZSBwcm92aWRlZCBwb3NlIHN0
cnVjdC4gCi0gICAgICAgKiBUaGlzIHBvc2Ugd2lsbCBhbHdheXMgYmUgb2xkZXIgdGhhbiB0aGUg
Y2FsbCB0byB0aGlzIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgdG8gcmVuZGVyIHRo
ZSBkZXZpY2UuIAotICAgICAgIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRl
cyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4
dEV2ZW50V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIFZSRXZlbnRf
dCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
KnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKLQotICAgICAgIC8qKiByZXR1cm5zIHRoZSBuYW1l
IG9mIGFuIEVWUkV2ZW50IGVudW0gdmFsdWUgKi8KLSAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIg
KkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSggRVZSRXZlbnRUeXBlIGVUeXBlICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
UmVuZGVyaW5nIGhlbHBlciBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaGlkZGVuIGFyZWEgbWVz
aCBmb3IgdGhlIGN1cnJlbnQgSE1ELiBUaGUgcGl4ZWxzIGNvdmVyZWQgYnkgdGhpcyBtZXNoIHdp
bGwgbmV2ZXIgYmUgc2VlbiBieSB0aGUgdXNlciBhZnRlciB0aGUgbGVucyBkaXN0b3J0aW9uIGlz
Ci0gICAgICAgKiBhcHBsaWVkIGJhc2VkIG9uIHZpc2liaWxpdHkgdG8gdGhlIHBhbmVscy4gSWYg
dGhpcyBITUQgZG9lcyBub3QgaGF2ZSBhIGhpZGRlbiBhcmVhIG1lc2gsIHRoZSB2ZXJ0ZXggZGF0
YSBhbmQgY291bnQgd2lsbCBiZSBOVUxMIGFuZCAwIHJlc3BlY3RpdmVseS4KLSAgICAgICAqIFRo
aXMgbWVzaCBpcyBtZWFudCB0byBiZSByZW5kZXJlZCBpbnRvIHRoZSBzdGVuY2lsIGJ1ZmZlciAo
b3IgaW50byB0aGUgZGVwdGggYnVmZmVyIHNldHRpbmcgbmVhcnopIGJlZm9yZSByZW5kZXJpbmcg
ZWFjaCBleWUncyB2aWV3LiAKLSAgICAgICAqIFRoaXMgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNl
IGJ5IGxldHRpbmcgdGhlIEdQVSBlYXJseS1yZWplY3QgcGl4ZWxzIHRoZSB1c2VyIHdpbGwgbmV2
ZXIgc2VlIGJlZm9yZSBydW5uaW5nIHRoZSBwaXhlbCBzaGFkZXIuCi0gICAgICAgKiBOT1RFOiBS
ZW5kZXIgdGhpcyBtZXNoIHdpdGggYmFja2ZhY2UgY3VsbGluZyBkaXNhYmxlZCBzaW5jZSB0aGUg
d2luZGluZyBvcmRlciBvZiB0aGUgdmVydGljZXMgY2FuIGJlIGRpZmZlcmVudCBwZXItSE1EIG9y
IHBlci1leWUuCi0gICAgICAgKiBTZXR0aW5nIHRoZSBiSW52ZXJzZSBhcmd1bWVudCB0byB0cnVl
IHdpbGwgcHJvZHVjZSB0aGUgdmlzaWJsZSBhcmVhIG1lc2ggdGhhdCBpcyBjb21tb25seSB1c2Vk
IGluIHBsYWNlIG9mIGZ1bGwtc2NyZWVuIHF1YWRzLiBUaGUgdmlzaWJsZSBhcmVhIG1lc2ggY292
ZXJzIGFsbCBvZiB0aGUgcGl4ZWxzIHRoZSBoaWRkZW4gYXJlYSBtZXNoIGRvZXMgbm90IGNvdmVy
LgotICAgICAgICogU2V0dGluZyB0aGUgYkxpbmVMb29wIGFyZ3VtZW50IHdpbGwgcmV0dXJuIGEg
bGluZSBsb29wIG9mIHZlcnRpY2VzIGluIEhpZGRlbkFyZWFNZXNoX3QtPnBWZXJ0ZXhEYXRhIHdp
dGggSGlkZGVuQXJlYU1lc2hfdC0+dW5UcmlhbmdsZUNvdW50IHNldCB0byB0aGUgbnVtYmVyIG9m
IHZlcnRpY2VzLgotICAgICAgICovCi0gICAgICAgdmlydHVhbCBIaWRkZW5BcmVhTWVzaF90IEdl
dEhpZGRlbkFyZWFNZXNoKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlID0g
a19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBDb250cm9sbGVyIG1ldGhvZHMK
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAg
IC8qKiBGaWxscyB0aGUgc3VwcGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGNvbnRyb2xsZXIuIFJldHVybnMgZmFsc2UgaWYgdGhlIGNvbnRyb2xsZXIgaW5kZXgKLSAg
ICAgICAqIGlzIGludmFsaWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbnRyb2xsZXJT
dGF0ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB2
cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250
cm9sbGVyU3RhdGVTaXplICkgPSAwOwotCi0gICAgICAgLyoqIGZpbGxzIHRoZSBzdXBwbGllZCBz
dHJ1Y3Qgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29udHJvbGxlciBhbmQgdGhlIHBy
b3ZpZGVkIHBvc2Ugd2l0aCB0aGUgcG9zZSBvZiAKLSAgICAgICAqIHRoZSBjb250cm9sbGVyIHdo
ZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgd2FzIHVwZGF0ZWQgbW9zdCByZWNlbnRseS4gVXNlIHRo
aXMgZm9ybSBpZiB5b3UgbmVlZCBhIHByZWNpc2UgY29udHJvbGxlcgotICAgICAgICogcG9zZSBh
cyBpbnB1dCB0byB5b3VyIGFwcGxpY2F0aW9uIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBvciByZWxl
YXNlcyBhIGJ1dHRvbi4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q29udHJvbGxlclN0YXRl
V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRl
X3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSwgVHJh
Y2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOwotCi0gICAgICAgLyoq
IFRyaWdnZXIgYSBzaW5nbGUgaGFwdGljIHB1bHNlIG9uIGEgY29udHJvbGxlci4gQWZ0ZXIgdGhp
cyBjYWxsIHRoZSBhcHBsaWNhdGlvbiBtYXkgbm90IHRyaWdnZXIgYW5vdGhlciBoYXB0aWMgcHVs
c2Ugb24gdGhpcyBjb250cm9sbGVyCi0gICAgICAgKiBhbmQgYXhpcyBjb21iaW5hdGlvbiBmb3Ig
NW1zLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBUcmlnZ2VySGFwdGljUHVsc2UoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMyX3QgdW5BeGlz
SWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyApID0gMDsKLQotICAgICAgIC8q
KiByZXR1cm5zIHRoZSBuYW1lIG9mIGFuIEVWUkJ1dHRvbklkIGVudW0gdmFsdWUgKi8KLSAgICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKCBFVlJCdXR0b25J
ZCBlQnV0dG9uSWQgKSA9IDA7Ci0KLSAgICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBF
VlJDb250cm9sbGVyQXhpc1R5cGUgZW51bSB2YWx1ZSAqLwotICAgICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKCBFVlJDb250cm9sbGVyQXhp
c1R5cGUgZUF4aXNUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9wZW5WUiB0aGF0IHRo
aXMgcHJvY2VzcyB3YW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIGNvbnRyb2xsZXIgYnV0dG9uIHN0
YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3aWxsIGJlIG5vdGlmaWVkIHRoYXQg
Ci0gICAgICAgKiB0aGV5IGhhdmUgbG9zdCBpbnB1dCBmb2N1cyB3aXRoIGEgVlJFdmVudF9JbnB1
dEZvY3VzQ2FwdHVyZWQgZXZlbnQuIFJldHVybnMgZmFsc2UgaWYgaW5wdXQgZm9jdXMgY291bGQg
bm90IGJlIGNhcHR1cmVkIGZvcgotICAgICAgICogc29tZSByZWFzb24uICovCi0gICAgICAgdmly
dHVhbCBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9w
ZW5WUiB0aGF0IHRoaXMgcHJvY2VzcyBubyBsb25nZXIgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0
byBidXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhlciBhcHBzIHdpbGwgYmUgbm90
aWZpZWQgCi0gICAgICAgKiB0aGF0IGlucHV0IGZvY3VzIGhhcyBiZWVuIHJlbGVhc2VkIHdpdGgg
YSBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCBldmVudC4gKi8KLSAgICAgICB2aXJ0dWFsIHZv
aWQgUmVsZWFzZUlucHV0Rm9jdXMoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IGlucHV0IGZvY3VzIGlzIGNhcHR1cmVkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCkgPSAwOwot
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
Ly8gRGVidWcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgLyoqIFNlbmRzIGEgcmVxdWVzdCB0byB0aGUgZHJpdmVyIGZvciB0
aGUgc3BlY2lmaWVkIGRldmljZSBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIFRoZSBtYXhpbXVt
IHJlc3BvbnNlIHNpemUgaXMgMzJrLAotICAgICAgICogYnV0IHRoaXMgbWV0aG9kIGNhbiBiZSBj
YWxsZWQgd2l0aCBhIHNtYWxsZXIgYnVmZmVyLiBJZiB0aGUgcmVzcG9uc2UgZXhjZWVkcyB0aGUg
c2l6ZSBvZiB0aGUgYnVmZmVyLCBpdCBpcyB0cnVuY2F0ZWQuIAotICAgICAgICogVGhlIHNpemUg
b2YgdGhlIHJlc3BvbnNlIGluY2x1ZGluZyBpdHMgdGVybWluYXRpbmcgbnVsbCBpcyByZXR1cm5l
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IERyaXZlckRlYnVnUmVxdWVzdCggdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaFJlcXVlc3Qs
IGNoYXIgKnBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSAp
ID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIEZpcm13YXJlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAKLSAgICAgICAvKiogUGVyZm9ybXMgdGhlIGFjdHVh
bCBmaXJtd2FyZSB1cGRhdGUgaWYgYXBwbGljYWJsZS4gCi0gICAgICAgICogVGhlIGZvbGxvd2lu
ZyBldmVudHMgd2lsbCBiZSBzZW50LCBpZiBWUkZpcm13YXJlRXJyb3JfTm9uZSB3YXMgcmV0dXJu
ZWQ6IFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkLCBWUkV2ZW50X0Zpcm13YXJlVXBkYXRl
RmluaXNoZWQgCi0gICAgICAgICogVXNlIHRoZSBwcm9wZXJ0aWVzIFByb3BfRmlybXdhcmVfVXBk
YXRlQXZhaWxhYmxlX0Jvb2wsIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wsIGFuZCBQ
cm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcKLSAgICAgICAgKiB0byBmaWd1cmUg
b3VyIHdoZXRoZXIgYSBmaXJtd2FyZSB1cGRhdGUgaXMgYXZhaWxhYmxlLCBhbmQgdG8gZmlndXJl
IG91dCB3aGV0aGVyIGl0cyBhIG1hbnVhbCB1cGRhdGUgCi0gICAgICAgICogUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIHNob3VsZCBwb2ludCB0byBhbiBVUkwgZGVzY3JpYmlu
ZyB0aGUgbWFudWFsIHVwZGF0ZSBwcm9jZXNzICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSRmly
bXdhcmVFcnJvciBQZXJmb3JtRmlybXdhcmVVcGRhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4ICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gQXBwbGljYXRpb24gbGlmZSBjeWNsZSBtZXRob2Rz
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAg
ICAvKiogQ2FsbCB0aGlzIHRvIGFja25vd2xlZGdlIHRvIHRoZSBzeXN0ZW0gdGhhdCBWUkV2ZW50
X1F1aXQgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHRoYXQgdGhlIHByb2Nlc3MgaXMgZXhpdGluZy4K
LSAgICAgICAqIFRoaXMgZXh0ZW5kcyB0aGUgdGltZW91dCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBr
aWxsZWQuICovCi0gICAgICAgdmlydHVhbCB2b2lkIEFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCkg
PSAwOwotCi0gICAgICAgLyoqIENhbGwgdGhpcyB0byB0ZWxsIHRoZSBzeXN0ZW0gdGhhdCB0aGUg
dXNlciBpcyBiZWluZyBwcm9tcHRlZCB0byBzYXZlIGRhdGEuIFRoaXMKLSAgICAgICAqIGhhbHRz
IHRoZSB0aW1lb3V0IGFuZCBkaXNtaXNzZXMgdGhlIGRhc2hib2FyZCAoaWYgaXQgd2FzIHVwKS4g
QXBwbGljYXRpb25zIHNob3VsZCBiZSBzdXJlIHRvIGFjdHVhbGx5IAotICAgICAgICogcHJvbXB0
IHRoZSB1c2VyIHRvIHNhdmUgYW5kIHRoZW4gZXhpdCBhZnRlcndhcmQsIG90aGVyd2lzZSB0aGUg
dXNlciB3aWxsIGJlIGxlZnQgaW4gYSBjb25mdXNpbmcgc3RhdGUuICovCi0gICAgICAgdmlydHVh
bCB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkgPSAwOwotCi19OwotCi1zdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3RlbV8wMTciOwot
Ci19Ci0KLQotLy8gaXZyYXBwbGljYXRpb25zLmgKLW5hbWVzcGFjZSB2cgotewotCi0gICAgICAg
LyoqIFVzZWQgZm9yIGFsbCBlcnJvcnMgcmVwb3J0ZWQgYnkgdGhlIElWUkFwcGxpY2F0aW9ucyBp
bnRlcmZhY2UgKi8KLSAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwgICAgICAgLy8g
T25seSBvbmUgYXBwbGljYXRpb24gY2FuIHVzZSBhbnkgZ2l2ZW4ga2V5Ci0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0ID0gMTAxLCAgICAgICAgICAgICAgICAgICAg
IC8vIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYSBtYW5pZmVzdAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwgICAgICAg
ICAgICAgICAgICAgICAvLyBObyBhcHBsaWNhdGlvbiBpcyBydW5uaW5nCi0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24gPSAxMDQsICAgICAgIC8vIHRoZSBh
cHBsaWNhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX0lQQ0ZhaWxlZCA9IDEwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW4g
SVBDIGZhaWx1cmUgY2F1c2VkIHRoZSByZXF1ZXN0IHRvIGZhaWwKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsIAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0gMTA3LAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkID0gMTA5LCAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoZSBwcm9jZXNzIGRpZG4ndCBzdGFydAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsIC8vIHRo
ZSBzeXN0ZW0gd2FzIGFscmVhZHkgc3RhcnRpbmcgdGhlIHNhbWUgYXBwbGljYXRpb24KLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsICAgICAg
ICAgICAgICAvLyBUaGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIGEgZGlmZmVyZW50IGFw
cGxpY2F0aW9uCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlv
blF1aXR0aW5nID0gMTEyLCAKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5z
aXRpb25BYm9ydGVkID0gMTEzLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSXNU
ZW1wbGF0ZSA9IDExNCwgLy8gZXJyb3Igd2hlbiB5b3UgdHJ5IHRvIGNhbGwgTGF1bmNoQXBwbGlj
YXRpb24oKSBvbiBhIHRlbXBsYXRlIHR5cGUgYXBwICh1c2UgTGF1bmNoVGVtcGxhdGVBcHBsaWNh
dGlvbikKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1N0ZWFtVlJJc0V4aXRpbmcg
PSAxMTUsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxs
ID0gMjAwLCAgICAgICAgICAgICAgLy8gVGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxs
IHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRhdGEKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX1Byb3BlcnR5Tm90U2V0ID0gMjAxLCAgICAgICAgICAgICAgLy8gVGhlIHJlcXVlc3RlZCBw
cm9wZXJ0eSB3YXMgbm90IHNldAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5r
bm93blByb3BlcnR5ID0gMjAyLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwMywKLSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVt
IGxlbmd0aCBvZiBhbiBhcHBsaWNhdGlvbiBrZXkgKi8KLSAgICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4OwotCi0gICAgICAgLyoqIHRo
ZXNlIGFyZSB0aGUgcHJvcGVydGllcyBhdmFpbGFibGUgb24gYXBwbGljYXRpb25zLiAqLwotICAg
ICAgIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotICAgICAgIHsKLSAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMCwKLQotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlw
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgICAgICAgPSAxMiwKLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgPSAxMywKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0Fy
Z3VtZW50c19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDE0LAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDE1LAotCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlv
bl9TdHJpbmcgICAgICAgICAgICAgID0gNTAsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9OZXdzVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTEsCi0gICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nICAgICAgICAgICAg
ICAgICAgICAgPSA1MiwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJj
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MywKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wgICAgICAgPSA2
MCwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCAg
ICAgICAgICAgICAgICAgICAgID0gNjEsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0luc3RhbmNlZF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MiwKLSAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW50ZXJuYWxfQm9vbCAgICAgICAgICAgICAg
ICAgICAgID0gNjMsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9XYW50c0Nv
bXBvc2l0b3JQYXVzZUluU3RhbmRieV9Cb29sID0gNjQsCi0KLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCAgICAgICAgICAgICAgPSA3MCwK
LSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZXNlIGFyZSBzdGF0ZXMgdGhlIHNjZW5lIGFwcGxp
Y2F0aW9uIHN0YXJ0dXAgcHJvY2VzcyB3aWxsIGdvIHRocm91Z2guICovCi0gICAgICAgZW51bSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvblRyYW5zaXRpb25fTm9uZSA9IDAsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVu
Y2hlZCA9IDIwLAotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaEtleTsKLSAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqcGNoVmFsdWU7Ci0gICAgICAgfTsKLQotICAgICAgIC8qKiBDdXJyZW50
bHkgcmVjb2duaXplZCBtaW1lIHR5cGVzICovCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwICAgICAgICAgICAgICA9ICJ2ci9ob21lIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVy
ICAgICAgID0gInZyL2dhbWVfdGhlYXRlciI7Ci0KLSAgICAgICBjbGFzcyBJVlJBcHBsaWNhdGlv
bnMKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLSAgQXBwbGljYXRpb24gbWFuYWdlbWVudCAgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAg
ICAgICAgICAgICAgLyoqIEFkZHMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgdG8gdGhlIGxpc3Qg
dG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBhcHBsaWNhdGlvbnMu
IAotICAgICAgICAgICAgICAqIFRlbXBvcmFyeSBtYW5pZmVzdHMgYXJlIG5vdCBhdXRvbWF0aWNh
bGx5IGxvYWRlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
QWRkQXBwbGljYXRpb25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVz
dEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkgPSBmYWxzZSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmVtb3ZlcyBhbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCBmcm9tIHRoZSBsaXN0IHRvIGxv
YWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBwbGljYXRpb25zLiAqLwot
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUmVtb3ZlQXBwbGljYXRp
b25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW4gYXBwbGljYXRpb24g
aXMgaW5zdGFsbGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0FwcGxpY2F0aW9u
SW5zdGFsbGVkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBs
aXN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25Db3Vu
dCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBzcGVj
aWZpZWQgYXBwbGljYXRpb24uIFRoZSBpbmRleCBpcyBhdCBsZWFzdCAwIGFuZCBpcyBsZXNzIHRo
YW4gdGhlIHJldHVybiAKLSAgICAgICAgICAgICAgKiB2YWx1ZSBvZiBHZXRBcHBsaWNhdGlvbkNv
dW50KCkuIFRoZSBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGtfdW5NYXhBcHBsaWNhdGlvbktl
eUxlbmd0aCBpbiBvcmRlciB0byAKLSAgICAgICAgICAgICAgKiBmaXQgdGhlIGtleS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5
QnlJbmRleCggdWludDMyX3QgdW5BcHBsaWNhdGlvbkluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBhcHBsaWNhdGlvbiBmb3Ig
dGhlIHNwZWNpZmllZCBQcm9jZXNzIElkLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCAK
LSAgICAgICAgICAgICAgKiBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8g
Zml0IHRoZSBrZXkuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9uLiBUaGUgZXhpc3Rpbmcg
c2NlbmUgYXBwbGljYXRpb24gd2lsbCBleGl0IGFuZCB0aGVuIHRoZSBuZXcgYXBwbGljYXRpb24g
d2lsbCBzdGFydC4KLSAgICAgICAgICAgICAgKiBUaGlzIGNhbGwgaXMgbm90IHZhbGlkIGZvciBk
YXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbnMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbiggY29uc3QgY2hhciAqcGNoQXBw
S2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyBhbiBpbnN0YW5jZSBvZiBh
biBhcHBsaWNhdGlvbiBvZiB0eXBlIHRlbXBsYXRlLCB3aXRoIGl0cyBhcHAga2V5IGJlaW5nIHBj
aE5ld0FwcEtleSAod2hpY2ggbXVzdCBiZSB1bmlxdWUpIGFuZCBvcHRpb25hbGx5IG92ZXJyaWRl
IHNlY3Rpb25zCi0gICAgICAgICAgICAgICogZnJvbSB0aGUgbWFuaWZlc3QgZmlsZSB2aWEgQXBw
T3ZlcnJpZGVLZXlzX3QKLSAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBF
VlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24oIGNvbnN0IGNoYXIg
KnBjaFRlbXBsYXRlQXBwS2V5LCBjb25zdCBjaGFyICpwY2hOZXdBcHBLZXksIFZSX0FSUkFZX0NP
VU5UKCB1bktleXMgKSBjb25zdCBBcHBPdmVycmlkZUtleXNfdCAqcEtleXMsIHVpbnQzMl90IHVu
S2V5cyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogbGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9u
IGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtaW1lIHR5cGUgYW5kIHBhc3NlcyBpdCB0
aGUgb3B0aW9uIGFyZ3MsIHR5cGljYWxseSB0aGUgZmlsZW5hbWUgb3Igb2JqZWN0IG5hbWUgb2Yg
dGhlIGl0ZW0gYmVpbmcgbGF1bmNoZWQgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
QXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZSggY29uc3QgY2hh
ciAqcGNoTWltZVR5cGUsIGNvbnN0IGNoYXIgKnBjaEFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIExhdW5jaGVzIHRoZSBkYXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbiBpZiBpdCBp
cyBub3QgYWxyZWFkeSBydW5uaW5nLiBUaGlzIGNhbGwgaXMgb25seSB2YWxpZCBmb3IgCi0gICAg
ICAgICAgICAgICogZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSgg
Y29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBDYW5jZWwg
YSBwZW5kaW5nIGxhdW5jaCBmb3IgYW4gYXBwbGljYXRpb24gKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIElkZW50aWZpZXMgYSBydW5uaW5nIGFwcGxpY2F0
aW9uLiBPcGVuVlIgY2FuJ3QgYWx3YXlzIHRlbGwgd2hpY2ggcHJvY2VzcyBzdGFydGVkIGluIHJl
c3BvbnNlCi0gICAgICAgICAgICAgICogdG8gYSBVUkwuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGEg
VVJMIGhhbmRsZXIgKG9yIHRoZSBwcm9jZXNzIGl0c2VsZikgdG8gaWRlbnRpZnkgdGhlIGFwcCBr
ZXkgCi0gICAgICAgICAgICAgICogZm9yIHRoZSBub3cgcnVubmluZyBhcHBsaWNhdGlvbi4gUGFz
c2luZyBhIHByb2Nlc3MgSUQgb2YgMCBpZGVudGlmaWVzIHRoZSBjYWxsaW5nIHByb2Nlc3MuIAot
ICAgICAgICAgICAgICAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IGJlIG9uZSB0aGF0J3Mga25vd24g
dG8gdGhlIHN5c3RlbSB2aWEgYSBjYWxsIHRvIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QuICovCi0g
ICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBJZGVudGlmeUFwcGxpY2F0
aW9uKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElEIGZvciBhbiBhcHBsaWNh
dGlvbi4gUmV0dXJuIDAgaWYgdGhlIGFwcGxpY2F0aW9uIHdhcyBub3QgZm91bmQgb3IgaXMgbm90
IHJ1bm5pbmcuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRp
b25Qcm9jZXNzSWQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb25zIGVycm9yICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJv
bUVudW0oIEVWUkFwcGxpY2F0aW9uRXJyb3IgZXJyb3IgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzICAtLS0tLS0tLS0tLS0t
LS0gLy8KLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHZhbHVlIGZvciBhbiBhcHBsaWNh
dGlvbiBwcm9wZXJ0eS4gVGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplIHRvIGZpdCB0aGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBFVlJBcHBs
aWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFByb3Bl
cnR5VmFsdWVCdWZmZXIsIHVpbnQzMl90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBw
bGljYXRpb25FcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgYSBib29sIHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0
dXJucyBmYWxzZSBpbiBhbGwgZXJyb3IgY2FzZXMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBF
VlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50
NjQgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBSZXR1cm5zIDAgaW4gYWxsIGVy
cm9yIGNhc2VzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldEFwcGxpY2F0
aW9uUHJvcGVydHlVaW50NjQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhcHBsaWNhdGlvbiBhdXRvLWxh
dW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCByZXR1
cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29s
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGlj
YXRpb25BdXRvTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFwcGxpY2F0aW9uIGF1dG8tbGF1
bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIHJldHVy
biB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wu
ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2go
IGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQWRkcyB0
aGlzIG1pbWUtdHlwZSB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhp
cyBhcHBsaWNhdGlvbiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29uc3QgY2hhciAqcGNoQXBwS2V5
LCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0
dXJuIHRoZSBhcHAga2V5IHRoYXQgd2lsbCBvcGVuIHRoaXMgbWltZSB0eXBlICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29u
c3QgY2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlCdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbGlzdCBv
ZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgY29tbWEtZGVsaW1p
dGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlcyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBjaGFyICpwY2hNaW1lVHlwZXNCdWZm
ZXIsIHVpbnQzMl90IHVuTWltZVR5cGVzQnVmZmVyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXQgdGhlIGxpc3Qgb2YgYXBwLWtleXMgdGhhdCBzdXBwb3J0IHRoaXMgbWltZSB0eXBlLCBj
b21tYS1kZWxpbWl0ZWQsIHRoZSByZXR1cm4gdmFsdWUgaXMgbnVtYmVyIG9mIGJ5dGVzIHlvdSBu
ZWVkIHRvIHJldHVybiB0aGUgZnVsbCBzdHJpbmcgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKCBjb25zdCBjaGFyICpw
Y2hNaW1lVHlwZSwgY2hhciAqcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0
IHRoZSBhcmdzIGxpc3QgZnJvbSBhbiBhcHAgbGF1bmNoIHRoYXQgaGFkIHRoZSBwcm9jZXNzIGFs
cmVhZHkgcnVubmluZywgeW91IGNhbGwgdGhpcyB3aGVuIHlvdSBnZXQgYSBWUkV2ZW50X0FwcGxp
Y2F0aW9uTWltZVR5cGVMb2FkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMoIHVpbnQzMl90IHVuSGFuZGxlLCBjaGFyICpwY2hB
cmdzLCB1aW50MzJfdCB1bkFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tICBUcmFuc2l0aW9uIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGFwcCBrZXkgZm9yIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGlz
IHN0YXJ0aW5nIHVwICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRTdGFydGluZ0FwcGxpY2F0aW9uKCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90
IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNpdGlvblN0YXRlKCkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGVycm9ycyB0aGF0IHdvdWxkIHByZXZlbnQgdGhl
IHNwZWNpZmllZCBhcHBsaWNhdGlvbiBmcm9tIGxhdW5jaGluZyBpbW1lZGlhdGVseS4gQ2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uIHdpbGwKLSAgICAgICAgICAgICAgKiBjYXVzZSB0aGUgY3VycmVudCBz
Y2VuZSBhcHBsaWNhdGlvbiB0byBxdWl0LCBzbyBvbmx5IGNhbGwgaXQgd2hlbiB5b3UgYXJlIGFj
dHVhbGx5IGFib3V0IHRvIGxhdW5jaCBzb21ldGhpbmcgZWxzZS4KLSAgICAgICAgICAgICAgKiBX
aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGRvIGFib3V0IHRoZXNlIGZhaWx1cmVzIGRlcGVuZHMgb24g
dGhlIGZhaWx1cmU6Ci0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBw
bGljYXRpb25RdWl0dGluZyAtIEFuIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHRvbGQg
dG8gcXVpdC4gV2FpdCBmb3IgYSBWUkV2ZW50X1Byb2Nlc3NRdWl0Ci0gICAgICAgICAgICAgICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0cnkgYWdh
aW4uCi0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJl
YWR5U3RhcnRpbmcgLSBUaGlzIGFwcGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMg
aXMgYSBwZXJtYW5lbnQgZmFpbHVyZS4KLSAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25F
cnJvcl9MYXVuY2hJblByb2dyZXNzICAgICAgICAgICAgIC0gQSBkaWZmZXJlbnQgYXBwbGljYXRp
b24gaXMgYWxyZWFkeSBzdGFydGluZy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgotICAg
ICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgICAgICAgICAgICAgICAgICAg
LSBHbyBhaGVhZCBhbmQgbGF1bmNoLiBFdmVyeXRoaW5nIGlzIGNsZWFyLgotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUGVyZm9ybUFw
cGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb24gdHJh
bnNpdGlvbiBzdGF0ZSAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25UcmFu
c2l0aW9uU3RhdGUgc3RhdGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgb3V0Z29pbmcgc2NlbmUgYXBwIGhhcyByZXF1ZXN0ZWQgYSBzYXZlIHByb21wdCBi
ZWZvcmUgZXhpdGluZyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNRdWl0VXNlclBy
b21wdFJlcXVlc3RlZCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogU3RhcnRzIGEgc3VicHJv
Y2VzcyB3aXRoaW4gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24uIFRoaXMKLSAgICAgICAgICAgICAg
KiBzdXBwcmVzc2VzIGFsbCBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIFVJIGFuZCBhdXRvbWF0aWNh
bGx5IGlkZW50aWZpZXMgdGhlIG5ldyBleGVjdXRhYmxlIAotICAgICAgICAgICAgICAqIGFzIHBh
cnQgb2YgdGhlIHNhbWUgYXBwbGljYXRpb24uIE9uIHN1Y2Nlc3MgdGhlIGNhbGxpbmcgcHJvY2Vz
cyBzaG91bGQgZXhpdCBpbW1lZGlhdGVseS4gCi0gICAgICAgICAgICAgICogSWYgd29ya2luZyBk
aXJlY3RvcnkgaXMgTlVMTCBvciAiIiB0aGUgZGlyZWN0b3J5IHBvcnRpb24gb2YgdGhlIGJpbmFy
eSBwYXRoIHdpbGwgYmUgCi0gICAgICAgICAgICAgICogdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoSW50ZXJu
YWxQcm9jZXNzKCBjb25zdCBjaGFyICpwY2hCaW5hcnlQYXRoLCBjb25zdCBjaGFyICpwY2hBcmd1
bWVudHMsIGNvbnN0IGNoYXIgKnBjaFdvcmtpbmdEaXJlY3RvcnkgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgc2NlbmUgcHJvY2VzcyBJRCBhY2NvcmRpbmcg
dG8gdGhlIGFwcGxpY2F0aW9uIHN5c3RlbS4gQSBzY2VuZSBwcm9jZXNzIHdpbGwgZ2V0IHNjZW5l
Ci0gICAgICAgICAgICAgICogZm9jdXMgb25jZSBpdCBzdGFydHMgcmVuZGVyaW5nLCBidXQgaXQg
d2lsbCBhcHBlYXIgaGVyZSBvbmNlIGl0IGNhbGxzIFZSX0luaXQgd2l0aCB0aGUgU2NlbmUgYXBw
bGljYXRpb24KLSAgICAgICAgICAgICAgKiB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCgpID0gMDsKLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9
ICJJVlJBcHBsaWNhdGlvbnNfMDA2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQotLy8gaXZyc2V0
dGluZ3MuaAotbmFtZXNwYWNlIHZyCi17Ci0gICAgICAgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi0g
ICAgICAgewotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAsCi0gICAgICAg
ICAgICAgIFZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAotICAgICAgICAgICAgICBWUlNl
dHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQgPSAyLAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJy
b3JfUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5n
SGFzTm9EZWZhdWx0ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBzZXR0aW5n
IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxlIGFuZCBoYXMg
bm90IGJlZW4gc2V0Ci0gICAgICAgfTsKLQotICAgICAgIC8vIFRoZSBtYXhpbXVtIGxlbmd0aCBv
ZiBhIHNldHRpbmdzIGtleQotICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4U2V0
dGluZ3NLZXlMZW5ndGggPSAxMjg7Ci0KLSAgICAgICBjbGFzcyBJVlJTZXR0aW5ncwotICAgICAg
IHsKLSAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBvY2N1cnJlZCAo
Zm9yY2Ugb3Igc2V0dGluZ3MgZGlydHkpCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTeW5j
KCBib29sIGJGb3JjZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0
ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCggY29uc3QgY2hh
ciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBF
VlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RmxvYXQo
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBmbG9h
dCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZhbHVlLCBFVlJT
ZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICAv
LyBVc2VycyBvZiB0aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBkZWZhdWx0IGlu
IGRlZmF1bHQudnJzZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBkaXJlY3RvcnkK
LSAgICAgICAgICAgICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBkcml2ZXJfeHh4
IGRpcmVjdG9yeS4gT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2UsIDAsIDAuMCBv
ciAiIgotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3QgY2hhciAqcGNo
U2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBl
RXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0
SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAg
ICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3Qg
Y2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBjb25zdCBjaGFy
ICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5nc0Vycm9yICpw
ZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVt
b3ZlU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVL
ZXlJblNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRp
bmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAg
ICB9OwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIHN0ZWFtdnIga2V5cwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZWN0aW9uID0g
InN0ZWFtdnIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3Jj
ZWREcml2ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlE
ZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rl
YnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0g
ImRpc3BsYXlEZWJ1Z1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9B
bGxBcHBzX0Jvb2w9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2
ZWwiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JUERf
RmxvYXQgPSAiaXBkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlv
bl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWlnaHRfRmxv
YXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJw
bGF5QXJlYUNvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9
ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRW
aWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiA9ICJkaXJlY3RN
b2RlRWRpZFBpZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0
RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dl
ck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nl
c19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX1N1cGVyc2FtcGxlU2NhbGVfRmxvYXQgPSAic3VwZXJzYW1w
bGVTY2FsZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXBy
b2plY3Rpb25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25f
Qm9vbCA9ICJmb3JjZVJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZh
ZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93TWlycm9y
Vmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JW
aWV3R2VvbWV0cnkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21E
YXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9FbmFibGVIb21lQXBwID0gImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50
MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8i
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JcGRPZmZz
ZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfQWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZ19Cb29sID0gImFsbG93U3Vw
ZXJzYW1wbGVGaWx0ZXJpbmciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9FbmFibGVMaW51eFZ1bGthbkFzeW5jX0Jvb2wgPSAiZW5hYmxlTGludXhWdWxr
YW5Bc3luYyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbGln
aHRob3VzZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdo
dGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlzYWJs
ZWltdSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9u
RGVidWdfSW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9
ICJwcmltYXJ5YmFzZXN0YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotCi0gICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIG51bGwga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VyaWFsTnVtYmVy
X1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndp
bmRvd1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5k
b3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3
aW5kb3dIZWlnaHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVs
bF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWNvbmRz
RnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVl
bmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVuY3kiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIC8vIHVzZXIgaW50ZXJmYWNlIGtleXMKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJm
YWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZh
Y2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNPblRvcCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9U
cmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3Rz
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBub3RpZmljYXRpb24ga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlm
aWNhdGlvbnMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZp
Y2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOwotCi0gICAgICAgLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGtleWJvYXJkIGtleXMKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfVHV0b3Jp
YWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENvbXBsZXRpb25zIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWCA9ICJTY2FsZVgiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNjYWxl
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZz
ZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TbW9v
dGhpbmcgPSAiU21vb3RoaW5nIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwZXJmIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlJbkhN
RF9Cb29sID0gIndhcm5JbkhNRCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fybk9ubHlPbmNlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9Cb29s
ID0gImFsbG93VGltaW5nU3RvcmUiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfVGVzdERhdGFfRmxv
YXQgPSAicGVyZlRlc3REYXRhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1BlcmZfTGludXhHUFVQcm9maWxpbmdfQm9vbCA9ICJsaW51eEdQVVByb2ZpbGluZyI7Ci0K
LSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29sbGlzaW9uIGJvdW5k
cyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0dy
b3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0Nl
bnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFj
ZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19D
b2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2FtZXJh
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVD
YW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JD
b2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0lu
dDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFC
b3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1t
YUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQz
MiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBsYXli
YWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlv
X09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0
cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQbGF5
YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRp
b19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhE
TUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBwb3dl
ciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhpdCI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVu
c1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVvdXRf
RmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9
ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0b0xh
dW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1Bvd2VyX1BhdXNlQ29tcG9zaXRvck9uU3RhbmRieV9Cb29sID0gInBhdXNlQ29t
cG9zaXRvck9uU3RhbmRieSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAg
ICAgLy8gZGFzaGJvYXJkIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5h
YmxlRGFzaGJvYXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rh
c2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbW9kZWwgc2tpbiBrZXlzCi0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9tb2RlbHNraW5fU2VjdGlvbiA9ICJtb2RlbHNraW5z
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkcml2ZXIga2V5
cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNrZWQgaW4gYW55IGRyaXZlcl88bmFtZT4gc2VjdGlvbgot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29s
ID0gImVuYWJsZSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLS8vIGl2cmNoYXBlcm9uZS5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotZW51bSBDaGFwZXJv
bmVDYWxpYnJhdGlvblN0YXRlCi17Ci0gICAgICAgLy8gT0shCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9PSyA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhcGVyb25lIGlzIGZ1bGx5IGNhbGlicmF0
ZWQgYW5kIHdvcmtpbmcgY29ycmVjdGx5Ci0KLSAgICAgICAvLyBXYXJuaW5ncwotICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyA9IDEwMCwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQgPSAxMDEsICAg
ICAgIC8vIEEgYmFzZSBzdGF0aW9uIHRoaW5rcyB0aGF0IGl0IG1pZ2h0IGhhdmUgbW92ZWQKLSAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVk
ID0gMTAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBsZXNzIGJhc2Ugc3RhdGlv
bnMgdGhhbiB3aGVuIGNhbGlicmF0ZWQKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywgICAgICAgICAgICAgIC8vIFNlYXRl
ZCBib3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNraW5n
IGNlbnRlcgotCi0gICAgICAgLy8gRXJyb3JzCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9FcnJvciA9IDIwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFRoZSBVbml2ZXJzZUlEIGlzIGludmFsaWQKLSAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIw
MSwgICAgICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBoYXNuJ3QgYmUgY2FsaWJyYXRlZCBm
b3IgYXQgbGVhc3Qgb25lIG9mIHRoZSBiYXNlIHN0YXRpb25zCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLCAgICAgICAgICAg
ICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBpcyBjYWxpYnJhdGVkLCBidXQgYmFzZSBzdGF0
aW9ucyBkaXNhZ3JlZSBvbiB0aGUgdHJhY2tpbmcgc3BhY2UKLSAgICAgICBDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCA9IDIwMywgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gUGxheSBBcmVhIGhhc24ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBj
dXJyZW50IHRyYWNraW5nIGNlbnRlcgotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVf
RXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9IDIwNCwgICAgICAgICAgICAgIC8vIENvbGxp
c2lvbiBCb3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNr
aW5nIGNlbnRlcgotfTsKLQotCi0vKiogSElHSCBMRVZFTCBUUkFDS0lORyBTUEFDRSBBU1NVTVBU
SU9OUzoKLSogMCwwLDAgaXMgdGhlIHByZWZlcnJlZCBzdGFuZGluZyBhcmVhIGNlbnRlci4KLSog
MFkgaXMgdGhlIGZsb29yIGhlaWdodC4KLSogLVogaXMgdGhlIHByZWZlcnJlZCBmb3J3YXJkIGZh
Y2luZyBkaXJlY3Rpb24uICovCi1jbGFzcyBJVlJDaGFwZXJvbmUKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgQ2hhcGVyb25lIGNhbGlicmF0aW9uLiBU
aGlzIHN0YXRlIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgZHVyaW5nIGEgc2Vzc2lvbiBkdWUgdG8g
cGh5c2ljYWwgYmFzZSBzdGF0aW9uIGNoYW5nZXMuICoqLwotICAgICAgIHZpcnR1YWwgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkgPSAwOwotCi0gICAgICAg
LyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBkZXB0aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJs
eSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBhbmQgWi4gCi0gICAgICAgKiBUcmFja2luZyBzcGFj
ZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICoqLwotICAg
ICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpw
U2l6ZVogKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25z
IG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKS4KLSAgICAgICAq
IENvcm5lcnMgYXJlIGluIGNvdW50ZXItY2xvY2t3aXNlIG9yZGVyLgotICAgICAgICogU3RhbmRp
bmcgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLgotICAgICAg
ICogSXQncyBhIHJlY3RhbmdsZS4KLSAgICAgICAqIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRo
ZSBYIGF4aXMgYW5kIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBaIGF4aXMuCi0gICAgICAg
KiBIZWlnaHQgb2YgZXZlcnkgY29ybmVyIGlzIDBZIChvbiB0aGUgZmxvb3IpLiAqKi8KLSAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFSZWN0KCBIbWRRdWFkX3QgKnJlY3QgKSA9IDA7Ci0K
LSAgICAgICAvKiogUmVsb2FkIENoYXBlcm9uZSBkYXRhIGZyb20gdGhlIC52cmNoYXAgZmlsZSBv
biBkaXNrLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRJbmZvKCB2b2lkICkgPSAwOwot
Ci0gICAgICAgLyoqIE9wdGlvbmFsbHkgZ2l2ZSB0aGUgY2hhcGVyb25lIHN5c3RlbSBhIGhpdCBh
Ym91dCB0aGUgY29sb3IgYW5kIGJyaWdodG5lc3MgaW4gdGhlIHNjZW5lICoqLwotICAgICAgIHZp
cnR1YWwgdm9pZCBTZXRTY2VuZUNvbG9yKCBIbWRDb2xvcl90IGNvbG9yICkgPSAwOwotCi0gICAg
ICAgLyoqIEdldCB0aGUgY3VycmVudCBjaGFwZXJvbmUgYm91bmRzIGRyYXcgY29sb3IgYW5kIGJy
aWdodG5lc3MgKiovCi0gICAgICAgdmlydHVhbCB2b2lkIEdldEJvdW5kc0NvbG9yKCBIbWRDb2xv
cl90ICpwT3V0cHV0Q29sb3JBcnJheSwgaW50IG5OdW1PdXRwdXRDb2xvcnMsIGZsb2F0IGZsQ29s
bGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLCBIbWRDb2xvcl90ICpwT3V0cHV0Q2FtZXJhQ29sb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJvdW5kcyBhcmUgc2hv
d2luZyByaWdodCBub3cgKiovCi0gICAgICAgdmlydHVhbCBib29sIEFyZUJvdW5kc1Zpc2libGUo
KSA9IDA7Ci0KLSAgICAgICAvKiogRm9yY2UgdGhlIGJvdW5kcyB0byBzaG93LCBtb3N0bHkgZm9y
IHV0aWxpdGllcyAqKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKCBi
b29sIGJGb3JjZSApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hh
cGVyb25lX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotfQotCi0vLyBpdnJjaGFwZXJvbmVzZXR1cC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotZW51
bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQotewotICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX0xp
dmUgPSAxLCAgICAgICAgICAgICAgLy8gVGhlIGxpdmUgY2hhcGVyb25lIGNvbmZpZywgdXNlZCBi
eSBtb3N0IGFwcGxpY2F0aW9ucyBhbmQgZ2FtZXMKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmls
ZV9UZW1wID0gMiwgICAgICAgICAgICAgIC8vIFRoZSB0ZW1wb3JhcnkgY2hhcGVyb25lIGNvbmZp
ZywgdXNlZCB0byBsaXZlLXByZXZpZXcgY29sbGlzaW9uIGJvdW5kcyBpbiByb29tIHNldHVwCi19
OwotCi1lbnVtIEVDaGFwZXJvbmVJbXBvcnRGbGFncwotewotICAgICAgIEVDaGFwZXJvbmVJbXBv
cnRfQm91bmRzT25seSA9IDB4MDAwMSwKLX07Ci0KLS8qKiBNYW5hZ2VzIHRoZSB3b3JraW5nIGNv
cHkgb2YgdGhlIGNoYXBlcm9uZSBpbmZvLiBCeSBkZWZhdWx0IHRoaXMgd2lsbCBiZSB0aGUgc2Ft
ZSBhcyB0aGUgCi0qIGxpdmUgY29weS4gQW55IGNoYW5nZXMgbWFkZSB3aXRoIHRoaXMgaW50ZXJm
YWNlIHdpbGwgc3RheSBpbiB0aGUgd29ya2luZyBjb3B5IHVudGlsIAotKiBDb21taXRXb3JraW5n
Q29weSgpIGlzIGNhbGxlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIHdvcmtpbmcgY29weSBhbmQgdGhl
IGxpdmUgY29weSB3aWxsIGJlIAotKiB0aGUgc2FtZSBhZ2Fpbi4gKi8KLWNsYXNzIElWUkNoYXBl
cm9uZVNldHVwCi17Ci1wdWJsaWM6Ci0KLSAgICAgICAvKiogU2F2ZXMgdGhlIGN1cnJlbnQgd29y
a2luZyBjb3B5IHRvIGRpc2sgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgQ29tbWl0V29ya2luZ0Nv
cHkoIEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV2ZXJ0cyB0aGUgd29ya2luZyBjb3B5IHRvIG1hdGNoIHRoZSBsaXZlIGNoYXBlcm9uZSBjYWxp
YnJhdGlvbi4KLSAgICAgICAqIFRvIG1vZGlmeSBleGlzdGluZyBkYXRhIHRoaXMgTVVTVCBiZSBk
byBXSElMRSBnZXR0aW5nIGEgbm9uLWVycm9yIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdHVzLgot
ICAgICAgICogT25seSBhZnRlciB0aGlzIHNob3VsZCB5b3UgZG8gZ2V0cyBhbmQgc2V0cyBvbiB0
aGUgZXhpc3RpbmcgZGF0YS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUmV2ZXJ0V29ya2luZ0Nv
cHkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRlcHRoIG9mIHRo
ZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFuZCBaIGZyb20g
dGhlIHdvcmtpbmcgY29weS4KLSAgICAgICAqIFRyYWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDAp
IGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgKnBTaXplWCwgZmxvYXQgKnBTaXplWiApID0g
MDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSA0IGNvcm5lciBwb3NpdGlvbnMgb2YgdGhlIFBs
YXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGZyb20gdGhlIHdvcmtpbmcgY29w
eS4KLSAgICAgICAqIENvcm5lcnMgYXJlIGluIGNsb2Nrd2lzZSBvcmRlci4KLSAgICAgICAqIFRy
YWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJl
YS4KLSAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCi0gICAgICAgKiAyIHNpZGVzIGFyZSBwYXJh
bGxlbCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlz
LgotICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4g
KiovCi0gICAgICAgdmlydHVhbCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVJlY3QoIEhtZFF1YWRf
dCAqcmVjdCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMg
aWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8gbnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMg
Ci0gICAgICAgKiBpbnRvIHRoZSBidWZmZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQgZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRf
dCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMgaWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8g
bnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMgCi0gICAgICAgKiBpbnRvIHRoZSBidWZm
ZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVhZHNDb3VudCkg
SG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFJldHVybnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24gZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgc3Rh
bmRpbmcgb3JpZ2luIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4
MzRfdCAqcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBTZXRzIHRoZSBQbGF5IEFyZWEgaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgc2l6ZVgsIGZsb2F0
IHNpemVaICkgPSAwOwotCi0gICAgICAgLyoqIFNldHMgdGhlIENvbGxpc2lvbiBCb3VuZHMgaW4g
dGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ0NvbGxp
c2lvbkJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1kUXVhZF90ICpw
UXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAgIC8qKiBT
ZXRzIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKCBjb25zdCBIbWRNYXRyaXgzNF90ICpwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSApID0gMDsKLQotICAgICAgIC8qKiBTZXRzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcg
cG9zaXRpb24gaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4
MzRfdCAqcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBUZWFyIGV2ZXJ5dGhpbmcgZG93biBhbmQgcmVsb2FkIGl0IGZyb20gdGhlIGZpbGUg
b24gZGlzayAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRGcm9tRGlzayggRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBw
cmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZl
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blRhZ0Nv
dW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwgdWludDMyX3QgdW5UYWdDb3VudCApID0gMDsKLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9PVVRf
QVJSQVlfQ09VTlQocHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1aW50MzJfdCAq
cHVuVGFnQ291bnQgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIGJvb2wgU2V0V29ya2luZ1BoeXNp
Y2FsQm91bmRzSW5mbyggVlJfQVJSQVlfQ09VTlQodW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBR
dWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50ICkgPSAwOwotICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVh
ZHNDb3VudCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50
ICkgPSAwOwotCi0gICAgICAgdmlydHVhbCBib29sIEV4cG9ydExpdmVUb0J1ZmZlciggVlJfT1VU
X1NUUklORygpIGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90ICpwbkJ1ZmZlckxlbmd0aCApID0gMDsK
LSAgICAgICB2aXJ0dWFsIGJvb2wgSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyggY29uc3QgY2hh
ciAqcEJ1ZmZlciwgdWludDMyX3QgbkltcG9ydEZsYWdzICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9u
ZVNldHVwXzAwNSI7Ci0KLQotfQotCi0vLyBpdnJjb21wb3NpdG9yLmgKLW5hbWVzcGFjZSB2cgot
ewotCi0jcHJhZ21hIHBhY2soIHB1c2gsIDggKQotCi0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3Vy
IHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgKi8KLWVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0g
ICAgICAgVlJDb21wb3NpdG9yRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMCwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJv
cl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkNvbXBv
c2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyAgICAgICAgICAgICAgICAgICAgID0gMTAxLAotICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uICAg
ICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlICAgICAgID0gMTA0LAotICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVV
c2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfU2hh
cmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgPSAxMDYsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCAgICAgICAgICAgICAgICAgICAgID0gMTA4LAot
ICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRCb3VuZHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDksCi19OwotCi1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVwcm9q
ZWN0aW9uUmVhc29uX0NwdSA9IDB4MDE7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVw
cm9qZWN0aW9uUmVhc29uX0dwdSA9IDB4MDI7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3Jf
UmVwcm9qZWN0aW9uQXN5bmMgICAgICA9IDB4MDQ7ICAgICAgIC8vIFRoaXMgZmxhZyBpbmRpY2F0
ZXMgdGhlIGFzeW5jIHJlcHJvamVjdGlvbiBtb2RlIGlzIGFjdGl2ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBkb2VzIG5vdCBpbmRpY2F0
ZSBpZiByZXByb2plY3Rpb24gYWN0dWFsbHkgaGFwcGVuZWQgb3Igbm90LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBSZXByb2plY3Rp
b25SZWFzb24gZmxhZ3MgYWJvdmUgdG8gY2hlY2sgaWYgcmVwcm9qZWN0aW9uCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXMgYWN0dWFsbHkgYXBw
bGllZCAoaS5lLiBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQpLgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtRnJhbWVQcmVzZW50cyA+IDEgYWxz
byBpbmRpY2F0ZXMgdGhlIHNjZW5lIHRleHR1cmUgd2FzIHJldXNlZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhbHNvIHRoZSBudW1iZXIg
b2YgdGltZXMgdGhhdCBpdCB3YXMgcHJlc2VudGVkIGluIHRvdGFsLgotCi0vKiogUHJvdmlkZXMg
YSBzaW5nbGUgZnJhbWUncyB0aW1pbmcgaW5mb3JtYXRpb24gdG8gdGhlIGFwcCAqLwotc3RydWN0
IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcKLXsKLSAgICAgICB1aW50MzJfdCBtX25TaXplOyAvLyBT
ZXQgdG8gc2l6ZW9mKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICkKLSAgICAgICB1aW50MzJfdCBt
X25GcmFtZUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIG51
bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVzZW50ZWQKLSAgICAgICB1aW50MzJfdCBt
X25OdW1NaXNQcmVzZW50ZWQ7IC8vIG51bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVz
ZW50ZWQgb24gYSB2c3luYyBvdGhlciB0aGFuIGl0IHdhcyBvcmlnaW5hbGx5IHByZWRpY3RlZCB0
bwotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIG51bWJlciBvZiBhZGRp
dGlvbmFsIHRpbWVzIHByZXZpb3VzIGZyYW1lIHdhcyBzY2FubmVkIG91dAotICAgICAgIHVpbnQz
Ml90IG1fblJlcHJvamVjdGlvbkZsYWdzOwotCi0gICAgICAgLyoqIEFic29sdXRlIHRpbWUgcmVm
ZXJlbmNlIGZvciBjb21wYXJpbmcgZnJhbWVzLiAgVGhpcyBhbGlnbnMgd2l0aCB0aGUgdnN5bmMg
dGhhdCBydW5uaW5nIHN0YXJ0IGlzIHJlbGF0aXZlIHRvLiAqLwotICAgICAgIGRvdWJsZSBtX2Zs
U3lzdGVtVGltZUluU2Vjb25kczsKLQotICAgICAgIC8qKiBUaGVzZSB0aW1lcyBtYXkgaW5jbHVk
ZSB3b3JrIGZyb20gb3RoZXIgcHJvY2Vzc2VzIGR1ZSB0byBPUyBzY2hlZHVsaW5nLgotICAgICAg
ICogVGhlIGZld2VyIHBhY2tldHMgb2Ygd29yayB0aGVzZSBhcmUgYnJva2VuIHVwIGludG8sIHRo
ZSBsZXNzIGxpa2VseSB0aGlzIHdpbGwgaGFwcGVuLgotICAgICAgICogR1BVIHdvcmsgY2FuIGJl
IGJyb2tlbiB1cCBieSBjYWxsaW5nIEZsdXNoLiAgVGhpcyBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1
bCB0byBnZXQgdGhlIEdQVSBzdGFydGVkCi0gICAgICAgKiBwcm9jZXNzaW5nIHRoYXQgd29yayBl
YXJsaWVyIGluIHRoZSBmcmFtZS4gKi8KLSAgICAgICBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7
IC8vIHRpbWUgc3BlbnQgcmVuZGVyaW5nIHRoZSBzY2VuZSAoZ3B1IHdvcmsgc3VibWl0dGVkIGJl
dHdlZW4gV2FpdEdldFBvc2VzIGFuZCBzZWNvbmQgU3VibWl0KQotICAgICAgIGZsb2F0IG1fZmxQ
b3N0U3VibWl0R3B1TXM7IC8vIGFkZGl0aW9uYWwgdGltZSBzcGVudCByZW5kZXJpbmcgYnkgYXBw
bGljYXRpb24gKGUuZy4gY29tcGFuaW9uIHdpbmRvdykKLSAgICAgICBmbG9hdCBtX2ZsVG90YWxS
ZW5kZXJHcHVNczsgLy8gdGltZSBiZXR3ZWVuIHdvcmsgc3VibWl0dGVkIGltbWVkaWF0ZWx5IGFm
dGVyIHByZXNlbnQgKGlkZWFsbHkgdnN5bmMpIHVudGlsIHRoZSBlbmQgb2YgY29tcG9zaXRvciBz
dWJtaXR0ZWQgd29yawotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyR3B1TXM7IC8v
IHRpbWUgc3BlbmQgcGVyZm9ybWluZyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24sIHJlbmRlcmluZyBj
aGFwZXJvbmUsIG92ZXJsYXlzLCBldGMuCi0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5k
ZXJDcHVNczsgLy8gdGltZSBzcGVudCBvbiBjcHUgc3VibWl0dGluZyB0aGUgYWJvdmUgd29yayBm
b3IgdGhpcyBmcmFtZQotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOyAvLyB0
aW1lIHNwZW50IHdhaXRpbmcgZm9yIHJ1bm5pbmcgc3RhcnQgKGFwcGxpY2F0aW9uIGNvdWxkIGhh
dmUgdXNlZCB0aGlzIG11Y2ggbW9yZSB0aW1lKQotCi0gICAgICAgLyoqIE1pc2NlbGxhbmVvdXMg
bWVhc3VyZWQgaW50ZXJ2YWxzLiAqLwotICAgICAgIGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVy
dmFsTXM7IC8vIHRpbWUgYmV0d2VlbiBjYWxscyB0byBXYWl0R2V0UG9zZXMKLSAgICAgICBmbG9h
dCBtX2ZsUHJlc2VudENhbGxDcHVNczsgLy8gdGltZSBibG9ja2VkIG9uIGNhbGwgdG8gcHJlc2Vu
dCAodXN1YWxseSAwLjAsIGJ1dCBjYW4gZ28gbG9uZykKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZv
clByZXNlbnRDcHVNczsgLy8gdGltZSBzcGVudCBzcGluLXdhaXRpbmcgZm9yIGZyYW1lIGluZGV4
IHRvIGNoYW5nZSAobm90IG5lYXItemVybyBpbmRpY2F0ZXMgd2FpdCBvYmplY3QgZmFpbHVyZSkK
LSAgICAgICBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsgLy8gdGltZSBzcGVudCBpbiBJVlJDb21w
b3NpdG9yOjpTdWJtaXQgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIGRyaXZlciBpc3N1ZSkKLQot
ICAgICAgIC8qKiBUaGUgZm9sbG93aW5nIGFyZSBhbGwgcmVsYXRpdmUgdG8gdGhpcyBmcmFtZSdz
IFN5c3RlbVRpbWVJblNlY29uZHMgKi8KLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2Fs
bGVkTXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBt
X2ZsTmV3RnJhbWVSZWFkeU1zOyAvLyBzZWNvbmQgY2FsbCB0byBJVlJDb21wb3NpdG9yOjpTdWJt
aXQKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAgICAgZmxv
YXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRv
clJlbmRlclN0YXJ0TXM7Ci0KLSAgICAgICB2cjo6VHJhY2tlZERldmljZVBvc2VfdCBtX0htZFBv
c2U7IC8vIHBvc2UgdXNlZCBieSBhcHAgdG8gcmVuZGVyIHRoaXMgZnJhbWUKLX07Ci0KLS8qKiBD
dW11bGF0aXZlIHN0YXRzIGZvciBjdXJyZW50IGFwcGxpY2F0aW9uLiAgVGhlc2UgYXJlIG5vdCBj
bGVhcmVkIHVudGlsIGEgbmV3IGFwcCBjb25uZWN0cywKLSogYnV0IHRoZXkgZG8gc3RvcCBhY2N1
bXVsYXRpbmcgb25jZSB0aGUgYXNzb2NpYXRlZCBhcHAgZGlzY29ubmVjdHMuICovCi1zdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7IC8v
IFByb2Nlc3MgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIHN0YXRzIChtYXkgbm8gbG9uZ2VyIGJl
IHJ1bm5pbmcpLgotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIHRvdGFs
IG51bWJlciBvZiB0aW1lcyB3ZSBjYWxsZWQgcHJlc2VudCAoaW5jbHVkZXMgcmVwcm9qZWN0ZWQg
ZnJhbWVzKQotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIHRvdGFsIG51
bWJlciBvZiB0aW1lcyBhbiBvbGQgZnJhbWUgd2FzIHJlLXNjYW5uZWQgb3V0ICh3aXRob3V0IHJl
cHJvamVjdGlvbikKLSAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsgLy8g
dG90YWwgbnVtYmVyIG9mIHRpbWVzIGEgZnJhbWUgd2FzIHNjYW5uZWQgb3V0IGEgc2Vjb25kIHRp
bWUgKHdpdGggcmVwcm9qZWN0aW9uKQotCi0gICAgICAgLyoqIFZhbHVlcyByZWNvcmRlZCBhdCBz
dGFydHVwIGJlZm9yZSBhcHBsaWNhdGlvbiBoYXMgZnVsbHkgZmFkZWQgaW4gdGhlIGZpcnN0IHRp
bWUuICovCi0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09uU3RhcnR1cDsKLSAg
ICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOwotCi0gICAgICAgLyoqIEFwcGxp
Y2F0aW9ucyBtYXkgZXhwbGljaXRseSBmYWRlIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhpcyBpcyB1
c3VhbGx5IHRvIGhhbmRsZSBsZXZlbCB0cmFuc2l0aW9ucywgYW5kIGxvYWRpbmcgb2Z0ZW4gY2F1
c2VzCi0gICAgICAgKiBzeXN0ZW0gd2lkZSBoaXRjaGVzLiAgVGhlIGZvbGxvd2luZyBzdGF0cyBh
cmUgY29sbGVjdGVkIGR1cmluZyB0aGlzIHBlcmlvZC4gIERvZXMgbm90IGluY2x1ZGUgdmFsdWVz
IHJlY29yZGVkIGR1cmluZyBzdGFydHVwLiAqLwotICAgICAgIHVpbnQzMl90IG1fbk51bUxvYWRp
bmc7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c0xvYWRpbmc7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7Ci0gICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOwotCi0gICAgICAgLyoqIElmIHdlIGRvbid0IGdl
dCBhIG5ldyBmcmFtZSBmcm9tIHRoZSBhcHAgaW4gbGVzcyB0aGFuIDIuNSBmcmFtZXMsIHRoZW4g
d2UgYXNzdW1lIHRoZSBhcHAgaGFzIGh1bmcgYW5kIHN0YXJ0Ci0gICAgICAgKiBmYWRpbmcgYmFj
ayB0byB0aGUgY29tcG9zaXRvci4gIFRoZSBmb2xsb3dpbmcgc3RhdHMgYXJlIGEgcmVzdWx0IG9m
IHRoaXMsIGFuZCBhcmUgYSBzdWJzZXQgb2YgdGhvc2UgcmVjb3JkZWQgYWJvdmUuCi0gICAgICAg
KiBEb2VzIG5vdCBpbmNsdWRlIHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnQgdXAgb3IgbG9h
ZGluZy4gKi8KLSAgICAgICB1aW50MzJfdCBtX25OdW1UaW1lZE91dDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJh
bWVzVGltZWRPdXQ7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCApCi0KLS8qKiBBbGxvd3MgdGhl
IGFwcGxpY2F0aW9uIHRvIGludGVyYWN0IHdpdGggdGhlIGNvbXBvc2l0b3IgKi8KLWNsYXNzIElW
UkNvbXBvc2l0b3IKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogU2V0cyB0cmFja2luZyBzcGFjZSBy
ZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0VHJhY2tp
bmdTcGFjZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiApID0gMDsKLQotICAgICAg
IC8qKiBHZXRzIGN1cnJlbnQgdHJhY2tpbmcgc3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2Vz
ICovCi0gICAgICAgdmlydHVhbCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBHZXRUcmFja2luZ1Nw
YWNlKCkgPSAwOwotCi0gICAgICAgLyoqIFNjZW5lIGFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbCB0
aGlzIGZ1bmN0aW9uIHRvIGdldCBwb3NlcyB0byByZW5kZXIgd2l0aCAoYW5kIG9wdGlvbmFsbHkg
cG9zZXMgcHJlZGljdGVkIGFuIGFkZGl0aW9uYWwgZnJhbWUgb3V0IHRvIHVzZSBmb3IgZ2FtZXBs
YXkpLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJsb2NrIHVudGlsICJydW5uaW5nIHN0
YXJ0IiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUsIGFuZCBzaG91
bGQgYmUgY2FsbGVkIGF0IHRoZSBsYXN0IG1vbWVudCBiZWZvcmUgbmVlZGluZyB0bwotICAgICAg
ICogc3RhcnQgcmVuZGVyaW5nLgotICAgICAgICoKLSAgICAgICAqIFJldHVybiBjb2RlczoKLSAg
ICAgICAqICAgICAgIC0gSXNOb3RTY2VuZUFwcGxpY2F0aW9uIChtYWtlIHN1cmUgdG8gY2FsbCBW
Ul9Jbml0IHdpdGggVlJBcHBsaWNhaXRvbl9TY2VuZSkKLSAgICAgICAqICAgICAgIC0gRG9Ob3RI
YXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBwIGhhcyB0YWtlbiBmb2N1cyAtIHRoaXMgd2lsbCB0aHJv
dHRsZSB0aGUgY2FsbCB0byAxMGh6IHRvIHJlZHVjZSB0aGUgaW1wYWN0IG9uIHRoYXQgYXBwKQot
ICAgICAgICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2Vz
KCBWUl9BUlJBWV9DT1VOVCh1blJlbmRlclBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9z
ZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LAot
ICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCh1bkdhbWVQb3NlQXJyYXlDb3VudCkgVHJhY2tl
ZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50ICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJu
ZWQgYnkgV2FpdEdldFBvc2VzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9y
IEdldExhc3RQb3NlcyggVlJfQVJSQVlfQ09VTlQoIHVuUmVuZGVyUG9zZUFycmF5Q291bnQgKSBU
cmFja2VkRGV2aWNlUG9zZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBv
c2VBcnJheUNvdW50LAotICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCggdW5HYW1lUG9zZUFy
cmF5Q291bnQgKSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3Qg
dW5HYW1lUG9zZUFycmF5Q291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogSW50ZXJmYWNlIGZvciBh
Y2Nlc3NpbmcgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzIG9uZSBh
dCBhIHRpbWUuCi0gICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX0luZGV4T3V0T2ZS
YW5nZSBpZiB1bkRldmljZUluZGV4IG5vdCBsZXNzIHRoYW4ga191bk1heFRyYWNrZWREZXZpY2VD
b3VudCBvdGhlcndpc2UgVlJDb21wb3NpdG9yRXJyb3JfTm9uZS4KLSAgICAgICAqIEl0IGlzIG9r
YXkgdG8gcGFzcyBOVUxMIGZvciBlaXRoZXIgcG9zZSBpZiB5b3Ugb25seSB3YW50IG9uZSBvZiB0
aGUgdmFsdWVzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4KCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0UG9zZSwgVHJhY2tlZERldmljZVBvc2Vf
dCAqcE91dHB1dEdhbWVQb3NlICkgPSAwOwotCi0gICAgICAgLyoqIFVwZGF0ZWQgc2NlbmUgdGV4
dHVyZSB0byBkaXNwbGF5LiBJZiBwQm91bmRzIGlzIE5VTEwgdGhlIGVudGlyZSB0ZXh0dXJlIHdp
bGwgYmUgdXNlZC4gIElmIGNhbGxlZCBmcm9tIGFuIE9wZW5HTCBhcHAsIGNvbnNpZGVyIGFkZGlu
ZyBhIGdsRmx1c2ggYWZ0ZXIKLSAgICAgICAqIFN1Ym1pdHRpbmcgYm90aCBmcmFtZXMgdG8gc2ln
bmFsIHRoZSBkcml2ZXIgdG8gc3RhcnQgcHJvY2Vzc2luZywgb3RoZXJ3aXNlIGl0IG1heSB3YWl0
IHVudGlsIHRoZSBjb21tYW5kIGJ1ZmZlciBmaWxscyB1cCwgY2F1c2luZyB0aGUgYXBwIHRvIG1p
c3MgZnJhbWVzLgotICAgICAgICoKLSAgICAgICAqIE9wZW5HTCBkaXJ0eSBzdGF0ZToKLSAgICAg
ICAqICAgICAgIGdsQmluZFRleHR1cmUKLSAgICAgICAqCi0gICAgICAgKiBSZXR1cm4gY29kZXM6
Ci0gICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJlIHRvIGNh
bGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCi0gICAgICAgKiAgICAgICAtIERv
Tm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMpCi0gICAgICAgKiAg
ICAgICAtIFRleHR1cmVJc09uV3JvbmdEZXZpY2UgKGFwcGxpY2F0aW9uIGRpZCBub3QgdXNlIHBy
b3BlciBBZGFwdGVySW5kZXggLSBzZWUgSVZSU3lzdGVtLkdldERYR0lPdXRwdXRJbmZvKQotICAg
ICAgICogICAgICAgLSBTaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCAoYXBwbGljYXRpb24gbmVl
ZHMgdG8gY2FsbCBDcmVhdGVEWEdJRmFjdG9yeTEgb3IgbGF0ZXIgYmVmb3JlIGNyZWF0aW5nIERY
IGRldmljZSkKLSAgICAgICAqICAgICAgIC0gVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCAo
c2NlbmUgdGV4dHVyZXMgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggRFhHSSBzaGFyaW5nIHJ1bGVz
IC0gZS5nLiB1bmNvbXByZXNzZWQsIG5vIG1pcHMsIGV0Yy4pCi0gICAgICAgKiAgICAgICAtIElu
dmFsaWRUZXh0dXJlICh1c3VhbGx5IG1lYW5zIGJhZCBhcmd1bWVudHMgcGFzc2VkIGluKQotICAg
ICAgICogICAgICAgLSBBbHJlYWR5U3VibWl0dGVkIChhcHAgaGFzIHN1Ym1pdHRlZCB0d28gbGVm
dCB0ZXh0dXJlcyBvciB0d28gcmlnaHQgdGV4dHVyZXMgaW4gYSBzaW5nbGUgZnJhbWUgLSBpLmUu
IGJlZm9yZSBjYWxsaW5nIFdhaXRHZXRQb3NlcyBhZ2FpbikKLSAgICAgICAqLwotICAgICAgIHZp
cnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdCggRVZSRXllIGVFeWUsIGNvbnN0IFRleHR1
cmVfdCAqcFRleHR1cmUsIGNvbnN0IFZSVGV4dHVyZUJvdW5kc190KiBwQm91bmRzID0gMCwgRVZS
U3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzID0gU3VibWl0X0RlZmF1bHQgKSA9IDA7Ci0KLSAgICAg
ICAvKiogQ2xlYXJzIHRoZSBmcmFtZSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIGxhc3QgY2FsbCB0
byBTdWJtaXQuIFRoaXMgd2lsbCBjYXVzZSB0aGUgCi0gICAgICAgKiBjb21wb3NpdG9yIHRvIHNo
b3cgdGhlIGdyaWQgdW50aWwgU3VibWl0IGlzIGNhbGxlZCBhZ2Fpbi4gKi8KLSAgICAgICB2aXJ0
dWFsIHZvaWQgQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ2Fs
bCBpbW1lZGlhdGVseSBhZnRlciBwcmVzZW50aW5nIHlvdXIgYXBwJ3Mgd2luZG93IChpLmUuIGNv
bXBhbmlvbiB3aW5kb3cpIHRvIHVuYmxvY2sgdGhlIGNvbXBvc2l0b3IuCi0gICAgICAgKiBUaGlz
IGlzIGFuIG9wdGlvbmFsIGNhbGwsIHdoaWNoIG9ubHkgbmVlZHMgdG8gYmUgdXNlZCBpZiB5b3Ug
Y2FuJ3QgaW5zdGVhZCBjYWxsIFdhaXRHZXRQb3NlcyBpbW1lZGlhdGVseSBhZnRlciBQcmVzZW50
LgotICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHlvdXIgZW5naW5lJ3MgcmVuZGVyIGFuZCBnYW1l
IGxvb3AgYXJlIG5vdCBvbiBzZXBhcmF0ZSB0aHJlYWRzLCBvciBibG9ja2luZyB0aGUgcmVuZGVy
IHRocmVhZCB1bnRpbCAzbXMgYmVmb3JlIHRoZSBuZXh0IHZzeW5jIHdvdWxkCi0gICAgICAgKiBp
bnRyb2R1Y2UgYSBkZWFkbG9jayBvZiBzb21lIHNvcnQuICBUaGlzIGZ1bmN0aW9uIHRlbGxzIHRo
ZSBjb21wb3NpdG9yIHRoYXQgeW91IGhhdmUgZmluaXNoZWQgYWxsIHJlbmRlcmluZyBhZnRlciBo
YXZpbmcgU3VibWl0dGVkIGJ1ZmZlcnMgZm9yIGJvdGgKLSAgICAgICAqIGV5ZXMsIGFuZCBpdCBp
cyBmcmVlIHRvIHN0YXJ0IGl0cyByZW5kZXJpbmcgd29yay4gIFRoaXMgc2hvdWxkIG9ubHkgYmUg
Y2FsbGVkIGZyb20gdGhlIHNhbWUgdGhyZWFkIHlvdSBhcmUgcmVuZGVyaW5nIG9uLiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBQb3N0UHJlc2VudEhhbmRvZmYoKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV0dXJucyB0cnVlIGlmIHRpbWluZyBkYXRhIGlzIGZpbGxlZCBpdC4gIFNldHMgb2xkZXN0IHRp
bWluZyBpbmZvIGlmIG5GcmFtZXNBZ28gaXMgbGFyZ2VyIHRoYW4gdGhlIHN0b3JlZCBoaXN0b3J5
LgotICAgICAgICogQmUgc3VyZSB0byBzZXQgdGltaW5nLnNpemUgPSBzaXplb2YoQ29tcG9zaXRv
cl9GcmFtZVRpbWluZykgb24gc3RydWN0IHBhc3NlZCBpbiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1
bmN0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRGcmFtZVRpbWluZyggQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyAqcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28gPSAwICkgPSAwOwot
Ci0gICAgICAgLyoqIEludGVyZmFjZSBmb3IgY29weWluZyBhIHJhbmdlIG9mIHRpbWluZyBkYXRh
LiAgRnJhbWVzIGFyZSByZXR1cm5lZCBpbiBhc2NlbmRpbmcgb3JkZXIgKG9sZGVzdCB0byBuZXdl
c3QpIHdpdGggdGhlIGxhc3QgYmVpbmcgdGhlIG1vc3QgcmVjZW50IGZyYW1lLgotICAgICAgICog
T25seSB0aGUgZmlyc3QgZW50cnkncyBtX25TaXplIG5lZWRzIHRvIGJlIHNldCwgYXMgdGhlIHJl
c3Qgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoYXQuICBSZXR1cm5zIHRvdGFsIG51bWJlciBvZiBl
bnRyaWVzIGZpbGxlZCBvdXQuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRGcmFtZVRp
bWluZ3MoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IG5GcmFtZXMg
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdGltZSBpbiBzZWNvbmRzIGxlZnQgaW4g
dGhlIGN1cnJlbnQgKGFzIGlkZW50aWZpZWQgYnkgRnJhbWVUaW1pbmcncyBmcmFtZUluZGV4KSBm
cmFtZS4KLSAgICAgICAqIER1ZSB0byAicnVubmluZyBzdGFydCIsIHRoaXMgdmFsdWUgbWF5IHJv
bGwgb3ZlciB0byB0aGUgbmV4dCBmcmFtZSBiZWZvcmUgZXZlciByZWFjaGluZyAwLjAuICovCi0g
ICAgICAgdmlydHVhbCBmbG9hdCBHZXRGcmFtZVRpbWVSZW1haW5pbmcoKSA9IDA7Ci0KLSAgICAg
ICAvKiogRmlsbHMgb3V0IHN0YXRzIGFjY3VtdWxhdGVkIGZvciB0aGUgbGFzdCBjb25uZWN0ZWQg
YXBwbGljYXRpb24uICBQYXNzIGluIHNpemVvZiggQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMg
KSBhcyBzZWNvbmQgcGFyYW1ldGVyLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRDdW11bGF0
aXZlU3RhdHMoIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICpwU3RhdHMsIHVpbnQzMl90IG5T
dGF0c1NpemVJbkJ5dGVzICkgPSAwOwotCi0gICAgICAgLyoqIEZhZGVzIHRoZSB2aWV3IG9uIHRo
ZSBITUQgdG8gdGhlIHNwZWNpZmllZCBjb2xvci4gVGhlIGZhZGUgd2lsbCB0YWtlIGZTZWNvbmRz
LCBhbmQgdGhlIGNvbG9yIHZhbHVlcyBhcmUgYmV0d2VlbgotICAgICAgICogMC4wIGFuZCAxLjAu
IFRoaXMgY29sb3IgaXMgZmFkZWQgb24gdG9wIG9mIHRoZSBzY2VuZSBiYXNlZCBvbiB0aGUgYWxw
aGEgcGFyYW1ldGVyLiBSZW1vdmluZyB0aGUgZmFkZSBjb2xvciBpbnN0YW50bHkgCi0gICAgICAg
KiB3b3VsZCBiZSBGYWRlVG9Db2xvciggMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAgKS4gIFZhbHVl
cyBhcmUgaW4gdW4tcHJlbXVsdGlwbGllZCBhbHBoYSBzcGFjZS4gKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgRmFkZVRvQ29sb3IoIGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3Jl
ZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQgPSBmYWxzZSAp
ID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBmYWRlIGNvbG9yIHZhbHVlLiAqLwotICAg
ICAgIHZpcnR1YWwgSG1kQ29sb3JfdCBHZXRDdXJyZW50RmFkZUNvbG9yKCBib29sIGJCYWNrZ3Jv
dW5kID0gZmFsc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogRmFkaW5nIHRoZSBHcmlkIGluIG9yIG91
dCBpbiBmU2Vjb25kcyAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBGYWRlR3JpZCggZmxvYXQgZlNl
Y29uZHMsIGJvb2wgYkZhZGVJbiApID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBhbHBo
YSB2YWx1ZSBvZiBncmlkLiAqLwotICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0Q3VycmVudEdyaWRB
bHBoYSgpID0gMDsKLQotICAgICAgIC8qKiBPdmVycmlkZSB0aGUgc2t5Ym94IHVzZWQgaW4gdGhl
IGNvbXBvc2l0b3IgKGUuZy4gZm9yIGR1cmluZyBsZXZlbCBsb2FkcyB3aGVuIHRoZSBhcHAgY2Fu
J3QgZmVlZCBzY2VuZSBpbWFnZXMgZmFzdCBlbm91Z2gpCi0gICAgICAgKiBPcmRlciBpcyBGcm9u
dCwgQmFjaywgTGVmdCwgUmlnaHQsIFRvcCwgQm90dG9tLiAgSWYgb25seSBhIHNpbmdsZSB0ZXh0
dXJlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBpbiBsYXQtbG9uZyBmb3JtYXQuCi0gICAgICAg
KiBJZiB0d28gYXJlIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBhIGxhdC1sb25nIHN0ZXJlbyBwYWly
LiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFNldFNreWJveE92ZXJyaWRl
KCBWUl9BUlJBWV9DT1VOVCggdW5UZXh0dXJlQ291bnQgKSBjb25zdCBUZXh0dXJlX3QgKnBUZXh0
dXJlcywgdWludDMyX3QgdW5UZXh0dXJlQ291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogUmVzZXRz
IGNvbXBvc2l0b3Igc2t5Ym94IGJhY2sgdG8gZGVmYXVsdHMuICovCi0gICAgICAgdmlydHVhbCB2
b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKSA9IDA7Ci0KLSAgICAgICAvKiogQnJpbmdzIHRoZSBj
b21wb3NpdG9yIHdpbmRvdyB0byB0aGUgZnJvbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBjb3Zlcmlu
ZyBhbnkgb3RoZXIgd2luZG93IHRoYXQgbWF5IGJlIG9uIHRoZSBITUQKLSAgICAgICAqIGFuZCBp
cyBvYnNjdXJpbmcgdGhlIGNvbXBvc2l0b3Igd2luZG93LiAqLwotICAgICAgIHZpcnR1YWwgdm9p
ZCBDb21wb3NpdG9yQnJpbmdUb0Zyb250KCkgPSAwOwotCi0gICAgICAgLyoqIFB1c2hlcyB0aGUg
Y29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGJhY2suIFRoaXMgaXMgdXNlZnVsIGZvciBhbGxvd2lu
ZyBvdGhlciBhcHBsaWNhdGlvbnMgdG8gZHJhdyBkaXJlY3RseSB0byB0aGUgSE1ELiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yR29Ub0JhY2soKSA9IDA7Ci0KLSAgICAgICAvKiog
VGVsbHMgdGhlIGNvbXBvc2l0b3IgcHJvY2VzcyB0byBjbGVhbiB1cCBhbmQgZXhpdC4gWW91IGRv
IG5vdCBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBhdCBzaHV0ZG93bi4gVW5kZXIgbm9ybWFs
IAotICAgICAgICogY2lyY3Vtc3RhbmNlcyB0aGUgY29tcG9zaXRvciB3aWxsIG1hbmFnZSBpdHMg
b3duIGxpZmUgY3ljbGUgYmFzZWQgb24gd2hhdCBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JRdWl0KCkgPSAwOwotICAgICAgIAotICAg
ICAgIC8qKiBSZXR1cm4gd2hldGhlciB0aGUgY29tcG9zaXRvciBpcyBmdWxsc2NyZWVuICovCi0g
ICAgICAgdmlydHVhbCBib29sIElzRnVsbHNjcmVlbigpID0gMDsKLQotICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBwcm9jZXNzIElEIG9mIHRoZSBwcm9jZXNzIHRoYXQgaXMgY3VycmVudGx5IHJlbmRl
cmluZyB0aGUgc2NlbmUgKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEN1cnJlbnRTY2Vu
ZUZvY3VzUHJvY2VzcygpID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElE
IG9mIHRoZSBwcm9jZXNzIHRoYXQgcmVuZGVyZWQgdGhlIGxhc3QgZnJhbWUgKG9yIDAgaWYgdGhl
IGNvbXBvc2l0b3IgaXRzZWxmIHJlbmRlcmVkIHRoZSBmcmFtZS4pCi0gICAgICAgKiBSZXR1cm5z
IDAgd2hlbiBmYWRpbmcgb3V0IGZyb20gYW4gYXBwIGFuZCB0aGUgYXBwJ3MgcHJvY2VzcyBJZCB3
aGVuIGZhZGluZyBpbnRvIGFuIGFwcC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldExh
c3RGcmFtZVJlbmRlcmVyKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUg
Y3VycmVudCBwcm9jZXNzIGhhcyB0aGUgc2NlbmUgZm9jdXMgKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgQ2FuUmVuZGVyU2NlbmUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIHdpbmRvdyBv
biB0aGUgcHJpbWFyeSBtb25pdG9yIHRvIGRpc3BsYXkgd2hhdCBpcyBiZWluZyBzaG93biBpbiB0
aGUgaGVhZHNldC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2hvd01pcnJvcldpbmRvdygpID0g
MDsKLQotICAgICAgIC8qKiBDbG9zZXMgdGhlIG1pcnJvciB3aW5kb3cuICovCi0gICAgICAgdmly
dHVhbCB2b2lkIEhpZGVNaXJyb3JXaW5kb3coKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0
cnVlIGlmIHRoZSBtaXJyb3Igd2luZG93IGlzIHNob3duLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBJc01pcnJvcldpbmRvd1Zpc2libGUoKSA9IDA7Ci0KLSAgICAgICAvKiogV3JpdGVzIGFsbCBp
bWFnZXMgdGhhdCB0aGUgY29tcG9zaXRvciBrbm93cyBhYm91dCAoaW5jbHVkaW5nIG92ZXJsYXlz
KSB0byBhICdzY3JlZW5zaG90cycgZm9sZGVyIGluIHRoZSBTdGVhbVZSIHJ1bnRpbWUgcm9vdC4g
Ki8KLSAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckR1bXBJbWFnZXMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogTGV0IGFuIGFwcCBrbm93IGl0IHNob3VsZCBiZSByZW5kZXJpbmcgd2l0aCBsb3cg
cmVzb3VyY2VzLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBTaG91bGRBcHBSZW5kZXJXaXRoTG93
UmVzb3VyY2VzKCkgPSAwOwotCi0gICAgICAgLyoqIE92ZXJyaWRlIGludGVybGVhdmVkIHJlcHJv
amVjdGlvbiBsb2dpYyB0byBmb3JjZSBvbi4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKCBib29sIGJPdmVycmlkZSApID0gMDsKLQotICAgICAg
IC8qKiBGb3JjZSByZWNvbm5lY3RpbmcgdG8gdGhlIGNvbXBvc2l0b3IgcHJvY2Vzcy4gKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkgPSAwOwotCi0gICAgICAg
LyoqIFRlbXBvcmFyaWx5IHN1c3BlbmRzIHJlbmRlcmluZyAodXNlZnVsIGZvciBmaW5lciBjb250
cm9sIG92ZXIgc2NlbmUgdHJhbnNpdGlvbnMpLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBTdXNw
ZW5kUmVuZGVyaW5nKCBib29sIGJTdXNwZW5kICkgPSAwOwotCi0gICAgICAgLyoqIE9wZW5zIGEg
c2hhcmVkIEQzRDExIHRleHR1cmUgd2l0aCB0aGUgdW5kaXN0b3J0ZWQgY29tcG9zaXRlZCBpbWFn
ZSBmb3IgZWFjaCBleWUuICBVc2UgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSB3aGVuIGZpbmlz
aGVkCi0gICAgICAgKiBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGUgcmVzb3VyY2Ug
aXRzZWxmLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBHZXRNaXJy
b3JUZXh0dXJlRDNEMTEoIHZyOjpFVlJFeWUgZUV5ZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNv
dXJjZSwgdm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7Ci0gICAgICAgdmly
dHVhbCB2b2lkIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEoIHZvaWQgKnBEM0QxMVNoYWRlclJl
c291cmNlVmlldyApID0gMDsKLQotICAgICAgIC8qKiBBY2Nlc3MgdG8gbWlycm9yIHRleHR1cmVz
IGZyb20gT3BlbkdMLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRNaXJyb3JUZXh0dXJlR0woIHZyOjpFVlJFeWUgZUV5ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0
dXJlSWQsIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqcGdsU2hhcmVkVGV4dHVyZUhhbmRs
ZSApID0gMDsKLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSggdnI6
OmdsVUludF90IGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBMb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBVbmxvY2tHTFNoYXJlZFRleHR1
cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVI
YW5kbGUgKSA9IDA7Ci0KLSAgICAgICAvKiogW1Z1bGthbiBPbmx5XQotICAgICAgICogcmV0dXJu
IDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRl
cyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0g
ICAgICAgKiBudWxsLiAgVGhlIHN0cmluZyB3aWxsIGJlIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qg
b2YtcmVxdWlyZWQgaW5zdGFuY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4gVmtDcmVhdGVJbnN0
YW5jZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5C
dWZmZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIFtWdWxrYW4gb25seV0KLSAgICAgICAqIHJl
dHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGlu
ZwotICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFyYXRlZCBs
aXN0IG9mIHJlcXVpcmVkIGRldmljZSBleHRlbnNpb25zIHRvIGVuYWJsZSBpbiBWa0NyZWF0ZURl
dmljZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9u
c1JlcXVpcmVkKCBWa1BoeXNpY2FsRGV2aWNlX1QgKnBQaHlzaWNhbERldmljZSwgVlJfT1VUX1NU
UklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAg
ICAgICAvKiogWyBWdWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBUaGVyZSBhcmUgdHdvIHB1
cnBvc2VzIGZvciBTZXRFeHBsaWNpdFRpbWluZ01vZGU6Ci0gICAgICAgKiAgICAgICAxLiBUbyBn
ZXQgYSBtb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGZyYW1lIGJlZ2lu
cyBpbiBWdWxrYW4vRDNEMTIgYXBwbGljYXRpb25zLgotICAgICAgICogICAgICAgMi4gKE9wdGlv
bmFsKSBUbyBhdm9pZCBoYXZpbmcgV2FpdEdldFBvc2VzIGFjY2VzcyB0aGUgVnVsa2FuIHF1ZXVl
IHNvIHRoYXQgdGhlIHF1ZXVlIGNhbiBiZSBhY2Nlc3NlZCBmcm9tCi0gICAgICAgKiAgICAgICBh
bm90aGVyIHRocmVhZCB3aGlsZSBXYWl0R2V0UG9zZXMgaXMgZXhlY3V0aW5nLgotICAgICAgICoK
LSAgICAgICAqIE1vcmUgYWNjdXJhdGUgR1BVIHRpbWVzdGFtcCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBmcmFtZSBpcyBhY2hpZXZlZCBieSB0aGUgYXBwbGljYXRpb24gY2FsbGluZwotICAgICAgICog
U3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIGltbWVkaWF0ZWx5IGJlZm9yZSBpdHMgZmlyc3Qgc3Vi
bWlzc2lvbiB0byB0aGUgVnVsa2FuL0QzRDEyIHF1ZXVlLgotICAgICAgICogVGhpcyBpcyBtb3Jl
IGFjY3VyYXRlIGJlY2F1c2Ugbm9ybWFsbHkgdGhpcyBHUFUgdGltZXN0YW1wIGlzIHJlY29yZGVk
IGR1cmluZyBXYWl0R2V0UG9zZXMuICBJbiBEM0QxMSwgCi0gICAgICAgKiBXYWl0R2V0UG9zZXMg
cXVldWVzIGEgR1BVIHRpbWVzdGFtcCB3cml0ZSwgYnV0IGl0IGRvZXMgbm90IGFjdHVhbGx5IGdl
dCBzdWJtaXR0ZWQgdG8gdGhlIEdQVSB1bnRpbCB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlvbiBm
bHVzaGVzLiAgQnkgdXNpbmcgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhLCB0aGUgdGltZXN0YW1w
IGlzIHJlY29yZGVkIGF0IHRoZSBzYW1lIHBsYWNlIGZvciAKLSAgICAgICAqIFZ1bGthbi9EM0Qx
MiBhcyBpdCBpcyBmb3IgRDNEMTEsIHJlc3VsdGluZyBpbiBhIG1vcmUgYWNjdXJhdGUgR1BVIHRp
bWUgbWVhc3VyZW1lbnQgZm9yIHRoZSBmcmFtZS4KLSAgICAgICAqCi0gICAgICAgKiBBdm9pZGlu
ZyBXYWl0R2V0UG9zZXMgYWNjZXNzaW5nIHRoZSBWdWxrYW4gcXVldWUgY2FuIGJlIGFjaGlldmVk
IHVzaW5nIFNldEV4cGxpY2l0VGltaW5nTW9kZSBhcyB3ZWxsLiAgSWYgdGhpcyBpcyBkZXNpcmVk
LAotICAgICAgICogdGhlIGFwcGxpY2F0aW9uICpNVVNUKiBjYWxsIFBvc3RQcmVzZW50SGFuZG9m
ZiBpdHNlbGYgcHJpb3IgdG8gV2FpdEdldFBvc2VzLiAgSWYgU2V0RXhwbGljaXRUaW1pbmdNb2Rl
IGlzIHRydWUgYW5kIHRoZQotICAgICAgICogYXBwbGljYXRpb24gY2FsbHMgUG9zdFByZXNlbnRI
YW5kb2ZmLCB0aGVuIFdhaXRHZXRQb3NlcyBpcyBndWFyYW50ZWVkIG5vdCB0byBhY2Nlc3MgdGhl
IHF1ZXVlLiAgTm90ZSB0aGF0IFBvc3RQcmVzZW50SGFuZG9mZgotICAgICAgICogYW5kIFN1Ym1p
dEV4cGxpY2l0VGltaW5nRGF0YSB3aWxsIGFjY2VzcyB0aGUgcXVldWUsIHNvIG9ubHkgV2FpdEdl
dFBvc2VzIGJlY29tZXMgc2FmZSBmb3IgYWNjZXNzaW5nIHRoZSBxdWV1ZSBmcm9tIGFub3RoZXIK
LSAgICAgICAqIHRocmVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RXhwbGljaXRUaW1p
bmdNb2RlKCBib29sIGJFeHBsaWNpdFRpbWluZ01vZGUgKSA9IDA7Ci0KLSAgICAgICAvKiogWyBW
dWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBTdWJtaXQgZXhwbGljaXQgdGltaW5nIGRhdGEu
ICBXaGVuIFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyB0cnVlLCB0aGlzIG11c3QgYmUgY2FsbGVk
IGltbWVkaWF0ZWx5IGJlZm9yZQotICAgICAgICogdGhlIGFwcGxpY2F0aW9uJ3MgZmlyc3QgdmtR
dWV1ZVN1Ym1pdCAoVnVsa2FuKSBvciBJRDNEMTJDb21tYW5kUXVldWU6OkV4ZWN1dGVDb21tYW5k
TGlzdHMgKEQzRDEyKSBvZiBlYWNoIGZyYW1lLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxs
IGluc2VydCBhIEdQVSB0aW1lc3RhbXAgd3JpdGUganVzdCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9u
IHN0YXJ0cyBpdHMgcmVuZGVyaW5nLiAgVGhpcyBmdW5jdGlvbgotICAgICAgICogd2lsbCBwZXJm
b3JtIGEgdmtRdWV1ZVN1Ym1pdCBvbiBWdWxrYW4gc28gbXVzdCBub3QgYmUgZG9uZSBzaW11bHRh
bmVvdXNseSB3aXRoIFZrUXVldWUgb3BlcmF0aW9ucyBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAg
ICAqIFJldHVybnMgVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVzdEZhaWxlZCBpZiBTZXRFeHBsaWNp
dFRpbWluZ01vZGUgaXMgbm90IGVuYWJsZWQuICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3Np
dG9yRXJyb3IgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhKCkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8w
MjEiOwotCi19IC8vIG5hbWVzcGFjZSB2cgotCi0KLQotLy8gaXZybm90aWZpY2F0aW9ucy5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotLy8gVXNlZCBmb3Ig
cGFzc2luZyBncmFwaGljIGRhdGEKLXN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdAotewotICAg
ICAgIE5vdGlmaWNhdGlvbkJpdG1hcF90KCkKLSAgICAgICAgICAgICAgOiBtX3BJbWFnZURhdGEo
IG51bGxwdHIgKQotICAgICAgICAgICAgICAsIG1fbldpZHRoKCAwICkKLSAgICAgICAgICAgICAg
LCBtX25IZWlnaHQoIDAgKQotICAgICAgICAgICAgICAsIG1fbkJ5dGVzUGVyUGl4ZWwoIDAgKQot
ICAgICAgIHsKLSAgICAgICB9OwotCi0gICAgICAgdm9pZCAqbV9wSW1hZ2VEYXRhOwotICAgICAg
IGludDMyX3QgbV9uV2lkdGg7Ci0gICAgICAgaW50MzJfdCBtX25IZWlnaHQ7Ci0gICAgICAgaW50
MzJfdCBtX25CeXRlc1BlclBpeGVsOwotfTsKLQotCi0vKiogQmUgYXdhcmUgdGhhdCB0aGUgbm90
aWZpY2F0aW9uIHR5cGUgaXMgdXNlZCBhcyAncHJpb3JpdHknIHRvIHBpY2sgdGhlIG5leHQgbm90
aWZpY2F0aW9uICovCi1lbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICAvKiogVHJh
bnNpZW50IG5vdGlmaWNhdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgaGlkZGVuIGFmdGVyIGEgcGVy
aW9kIG9mIHRpbWUgc2V0IGJ5IHRoZSB1c2VyLiAKLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9y
IHRoaW5ncyBsaWtlIGluZm9ybWF0aW9uIGFuZCBjaGF0IG1lc3NhZ2VzIHRoYXQgZG8gbm90IHJl
cXVpcmUgdXNlciBpbnRlcmFjdGlvbi4gKi8KLSAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1Ry
YW5zaWVudCA9IDAsCi0KLSAgICAgICAvKiogUGVyc2lzdGVudCBub3RpZmljYXRpb25zIGFyZSBz
aG93biB0byB0aGUgdXNlciB1bnRpbCB0aGV5IGFyZSBoaWRkZW4gYnkgY2FsbGluZyBSZW1vdmVO
b3RpZmljYXRpb24oKS4KLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9yIHRoaW5ncyBsaWtlIHBo
b25lIGNhbGxzIGFuZCBhbGFybXMgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwKLQotICAgICAgIC8qKiBT
eXN0ZW0gbm90aWZpY2F0aW9ucyBhcmUgc2hvd24gbm8gbWF0dGVyIHdoYXQuIEl0IGlzIGV4cGVj
dGVkLCB0aGF0IHRoZSB1bFVzZXJWYWx1ZSBpcyB1c2VkIGFzIElELgotICAgICAgICAqIElmIHRo
ZXJlIGlzIGFscmVhZHkgYSBzeXN0ZW0gbm90aWZpY2F0aW9uIGluIHRoZSBxdWV1ZSB3aXRoIHRo
YXQgSUQgaXQgaXMgbm90IGFjY2VwdGVkIGludG8gdGhlIHF1ZXVlCi0gICAgICAgICogdG8gcHJl
dmVudCBzcGFtbWluZyB3aXRoIHN5c3RlbSBub3RpZmljYXRpb24gKi8KLSAgICAgICBFVlJOb3Rp
ZmljYXRpb25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKLX07Ci0KLWVu
dW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKLXsKLSAgICAgICAvKiogQ3JlYXRlcyBhIG5vdGlmaWNh
dGlvbiB3aXRoIG1pbmltYWwgZXh0ZXJuYWwgc3R5bGluZy4gKi8KLSAgICAgICBFVlJOb3RpZmlj
YXRpb25TdHlsZV9Ob25lID0gMCwKLQotICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25z
IGFib3V0IG92ZXJsYXktbGV2ZWwgc3RhdHVzLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGV2
ZW50cyBsaWtlIGRvd25sb2FkcyBjb21wbGV0aW5nLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotCi0gICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNh
dGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgdW5rbm93biBvciBub3QgYXZhaWxhYmxlLiBJ
biBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZyaWVuZCBpbnZpdGF0aW9ucyBhbmQgb2ZmbGluZSBm
cmllbmRzLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRGlzYWJsZWQg
PSAyMDAsCi0KLSAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0
cyB0aGF0IGFyZSBhdmFpbGFibGUgYnV0IGluYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQg
Zm9yIGZyaWVuZHMgdGhhdCBhcmUgb25saW5lIGJ1dCBub3QgcGxheWluZyBhIGdhbWUuICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9FbmFibGVkID0gMjAxLAotCi0gICAg
ICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgYXZh
aWxhYmxlIGFuZCBhY3RpdmUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0
IGFyZSBvbmxpbmUgYW5kIGN1cnJlbnRseSBydW5uaW5nIGEgZ2FtZS4gKi8KLSAgICAgICBFVlJO
b3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSA9IDIwMiwKLX07Ci0KLXN0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci0KLXR5cGVkZWYg
dWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLQotCi0KLSNwcmFnbWEgcGFjayggcG9wICkKLQot
LyoqIEFsbG93cyBub3RpZmljYXRpb24gc291cmNlcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBWUiBz
eXN0ZW0KLSAgICAgICBUaGlzIGN1cnJlbnQgaW50ZXJmYWNlIGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQuIERvIG5vdCB1c2UgeWV0LiAqLwotY2xhc3MgSVZSTm90aWZpY2F0aW9ucwotewotcHVibGlj
OgotICAgICAgIC8qKiBDcmVhdGUgYSBub3RpZmljYXRpb24gYW5kIGVucXVldWUgaXQgdG8gYmUg
c2hvd24gdG8gdGhlIHVzZXIuCi0gICAgICAgKiBBbiBvdmVybGF5IGhhbmRsZSBpcyByZXF1aXJl
ZCB0byBjcmVhdGUgYSBub3RpZmljYXRpb24sIGFzIG90aGVyd2lzZSBpdCB3b3VsZCBiZSBpbXBv
c3NpYmxlIGZvciBhIHVzZXIgdG8gYWN0IG9uIGl0LgotICAgICAgICogVG8gY3JlYXRlIGEgdHdv
LWxpbmUgbm90aWZpY2F0aW9uLCB1c2UgYSBsaW5lIGJyZWFrICgnXG4nKSB0byBzcGxpdCB0aGUg
dGV4dCBpbnRvIHR3byBsaW5lcy4KLSAgICAgICAqIFRoZSBwSW1hZ2UgYXJndW1lbnQgbWF5IGJl
IE5VTEwsIGluIHdoaWNoIGNhc2UgdGhlIHNwZWNpZmllZCBvdmVybGF5J3MgaWNvbiB3aWxsIGJl
IHVzZWQgaW5zdGVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIENy
ZWF0ZU5vdGlmaWNhdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
NjRfdCB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjb25zdCBjaGFyICpw
Y2hUZXh0LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgY29uc3QgTm90aWZpY2F0aW9uQml0
bWFwX3QgKnBJbWFnZSwgLyogb3V0ICovIFZSTm90aWZpY2F0aW9uSWQgKnBOb3RpZmljYXRpb25J
ZCApID0gMDsKLQotICAgICAgIC8qKiBEZXN0cm95IGEgbm90aWZpY2F0aW9uLCBoaWRpbmcgaXQg
Zmlyc3QgaWYgaXQgY3VycmVudGx5IHNob3duIHRvIHRoZSB1c2VyLiAqLwotICAgICAgIHZpcnR1
YWwgRVZSTm90aWZpY2F0aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKCBWUk5vdGlmaWNhdGlv
bklkIG5vdGlmaWNhdGlvbklkICkgPSAwOwotCi19OwotCi1zdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0K
LX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJvdmVybGF5LmgKLW5hbWVzcGFjZSB2cgot
ewotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IGtleSBpbiBi
eXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiAqLwotICAgICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owot
Ci0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IG5hbWUgaW4gYnl0
ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4gKi8KLSAgICAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7Ci0K
LSAgICAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIG92ZXJsYXlzIHRoYXQgY2FuIGV4aXN0
IGluIHRoZSBzeXN0ZW0gYXQgb25lIHRpbWUuICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKLQotICAgICAgIC8qKiBUaGUgbWF4aW11bSBu
dW1iZXIgb2Ygb3ZlcmxheSBpbnRlcnNlY3Rpb24gbWFzayBwcmltaXRpdmVzIHBlciBvdmVybGF5
ICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotCi0gICAgICAgLyoqIFR5cGVzIG9mIGlucHV0
IHN1cHBvcnRlZCBieSBWUiBPdmVybGF5cyAqLwotICAgICAgIGVudW0gVlJPdmVybGF5SW5wdXRN
ZXRob2QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUg
ICAgICAgICAgICAgID0gMCwgLy8gTm8gaW5wdXQgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIGF1
dG9tYXRpY2FsbHkgZm9yIHRoaXMgb3ZlcmxheQotICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1
dE1ldGhvZF9Nb3VzZSAgICAgICAgICAgICAgPSAxLCAvLyBUcmFja2VkIGNvbnRyb2xsZXJzIHdp
bGwgZ2V0IG1vdXNlIGV2ZW50cyBhdXRvbWF0aWNhbGx5Ci0gICAgICAgfTsKLQotICAgICAgIC8q
KiBBbGxvd3MgdGhlIGNhbGxlciB0byBmaWd1cmUgb3V0IHdoaWNoIG92ZXJsYXkgdHJhbnNmb3Jt
IGdldHRlciB0byBjYWxsLiAqLwotICAgICAgIGVudW0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRpdmUgICAgICAgPSAxLAotICAgICAgICAgICAg
ICBWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSAgICAgICAgICAgICAgICAgICAgID0g
MiwKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQgICAg
ICAgICAgICAgICA9IDMsCi0gICAgICAgfTsKLQotICAgICAgIC8qKiBPdmVybGF5IGNvbnRyb2wg
c2V0dGluZ3MgKi8KLSAgICAgICBlbnVtIFZST3ZlcmxheUZsYWdzCi0gICAgICAgewotICAgICAg
ICAgICAgICBWUk92ZXJsYXlGbGFnc19Ob25lICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0g
ICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgb25seSB0YWtlIGVmZmVjdCB3aGVuIHJlbmRl
cmVkIHVzaW5nIHRoZSBoaWdoIHF1YWxpdHkgcmVuZGVyIHBhdGggKHNlZSBTZXRIaWdoUXVhbGl0
eU92ZXJsYXkpLgotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgICAgICAgICAg
ICAgID0gMSwKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdTUzRYICAgICAgICAgICAg
ICA9IDIsCi0KLSAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBvbiBhIGRhc2hib2FyZCBv
dmVybGF5IHRvIHByZXZlbnQgYSB0YWIgZnJvbSBzaG93aW5nIHVwIGZvciB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNoYm9hcmRUYWIgPSAzLAotCi0gICAg
ICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBkYXNoYm9hcmQgdGhhdCBpcyBhYmxlIHRv
IGRlYWwgd2l0aCBnYW1lcGFkIGZvY3VzIGV2ZW50cwotICAgICAgICAgICAgICBWUk92ZXJsYXlG
bGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0KLSAgICAgICAgICAgICAgLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIG92ZXJsYXkgc2hvdWxkIGRpbS9icmlnaHRlbiB0byBzaG93IGdhbWVwYWQg
Zm9jdXMKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUs
Ci0KLSAgICAgICAgICAgICAgLy8gV2hlbiBpbiBWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSB5
b3UgY2FuIG9wdGlvbmFsbHkgZW5hYmxlIHNlbmRpbmcgVlJTY3JvbGxfdCAKLSAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMgPSA3LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCB0aGlzIHdpbGwgcmVuZGVyIGEgdmVydGljYWwgc2Nyb2xsIHdoZWVsIG9uIHRo
ZSBwcmltYXJ5IGNvbnRyb2xsZXIsIAotICAgICAgICAgICAgICAvLyAgb25seSBuZWVkZWQgaWYg
bm90IHVzaW5nIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyBidXQgeW91IHN0aWxs
IHdhbnQgdG8gcmVwcmVzZW50IGEgc2Nyb2xsIHdoZWVsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsID0gOCwKLQotICAgICAgICAgICAgICAvLyBJ
ZiB0aGlzIGlzIHNldCBvd25lcnNoaXAgYW5kIHJlbmRlciBhY2Nlc3MgdG8gdGhlIG92ZXJsYXkg
YXJlIHRyYW5zZmVycmVkIAotICAgICAgICAgICAgICAvLyB0byB0aGUgbmV3IHNjZW5lIHByb2Nl
c3Mgb24gYSBjYWxsIHRvIElWUkFwcGxpY2F0aW9uczo6TGF1bmNoSW50ZXJuYWxQcm9jZXNzCi0g
ICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRlcm5hbFBy
b2Nlc3MgPSA5LAotCi0gICAgICAgICAgICAgIC8vIElmIHNldCwgcmVuZGVycyA1MCUgb2YgdGhl
IHRleHR1cmUgaW4gZWFjaCBleWUsIHNpZGUgYnkgc2lkZQotICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsID0gMTAsIC8vIFRleHR1cmUgaXMgbGVmdC9yaWdo
dAotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwg
Ly8gVGV4dHVyZSBpcyBjcm9zc2VkIGFuZCByaWdodC9sZWZ0Ci0KLSAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwgLy8gVGV4dHVyZSBpcyBhIHBhbm9yYW1hCi0gICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsIC8vIFRleHR1cmUg
aXMgYSBzdGVyZW8gcGFub3JhbWEKLQotICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHNldCBv
biBhbiBvdmVybGF5IG93bmVkIGJ5IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgLy8gd2lsbCBiZSBzb3J0ZWQgd2l0aCB0aGUgIk90aGVyIiBvdmVybGF5
cyBvbiB0b3Agb2YgYWxsIG90aGVyIHNjZW5lIG92ZXJsYXlzCi0gICAgICAgICAgICAgIFZST3Zl
cmxheUZsYWdzX1NvcnRXaXRoTm9uU2NlbmVPdmVybGF5cyA9IDE0LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCwgdGhlIG92ZXJsYXkgd2lsbCBiZSBzaG93biBpbiB0aGUgZGFzaGJvYXJkLCBv
dGhlcndpc2UgaXQgd2lsbCBiZSBoaWRkZW4uCi0gICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdz
X1Zpc2libGVJbkRhc2hib2FyZCA9IDE1LAotICAgICAgIH07Ci0KLSAgICAgICBlbnVtIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zl
cmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzAgPSAwLAotICAgICAgICAgICAgICBWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSA9IDEsCi0gICAgICAgICAgICAgIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18yID0gMiwKLSAgICAgICAgICAgICAgVlJNZXNz
YWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAotICAgICAgICAgICAgICBWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0gNCwKLSAgICAg
ICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kT3JDcmVhdGVDbGll
bnRPdmVybGF5PSA1LAotICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQXBw
bGljYXRpb25RdWl0ID0gNgotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50
ZXJzZWN0aW9uUGFyYW1zX3QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2
U291cmNlOwotICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKLSAgICAgICAg
ICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKLSAgICAgICB9OwotCi0gICAg
ICAgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAotICAgICAgIHsKLSAgICAg
ICAgICAgICAgSG1kVmVjdG9yM190IHZQb2ludDsKLSAgICAgICAgICAgICAgSG1kVmVjdG9yM190
IHZOb3JtYWw7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjJfdCB2VVZzOwotICAgICAgICAgICAg
ICBmbG9hdCBmRGlzdGFuY2U7Ci0gICAgICAgfTsKLQotICAgICAgIC8vIElucHV0IG1vZGVzIGZv
ciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5Ci0gICAgICAgZW51bSBFR2FtZXBh
ZFRleHRJbnB1dE1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlTm9ybWFsID0gMCwKLSAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVQ
YXNzd29yZCA9IDEsCi0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0
ID0gMiwKLSAgICAgICB9OwotCi0gICAgICAgLy8gQ29udHJvbHMgbnVtYmVyIG9mIGFsbG93ZWQg
bGluZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRleHQgZW50cnkKLSAgICAgICBlbnVt
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdh
bWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgICAgICAgICBrX0VH
YW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMQotICAgICAgIH07Ci0KLSAg
ICAgICAvKiogRGlyZWN0aW9ucyBmb3IgY2hhbmdpbmcgZm9jdXMgYmV0d2VlbiBvdmVybGF5cyB3
aXRoIHRoZSBnYW1lcGFkICovCi0gICAgICAgZW51bSBFT3ZlcmxheURpcmVjdGlvbgotICAgICAg
IHsKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9VcCA9IDAsCi0gICAgICAgICAgICAg
IE92ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rp
b25fTGVmdCA9IDIsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fUmlnaHQgPSAzLAot
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQs
Ci0gICAgICAgfTsKLQotICAgICAgIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlCi0gICAgICAgewotICAgICAgICAgICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJp
bWl0aXZlVHlwZV9SZWN0YW5nbGUsCi0gICAgICAgICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX0NpcmNsZSwKLSAgICAgICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2Vj
dGlvbk1hc2tSZWN0YW5nbGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbFRv
cExlZnRYOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgICAgICAg
IGZsb2F0IG1fZmxXaWR0aDsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLSAgICAg
ICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdAotICAgICAgIHsK
LSAgICAgICAgICAgICAgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgICAgICAgIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsUmFkaXVzOwotICAgICAgIH07Ci0K
LSAgICAgICAvKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1VU1QgbWFudWFsbHkg
dXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5IGFuZCBvcGVudnJfYXBpX2ZsYXQuaC5weSAqLwot
ICAgICAgIHR5cGVkZWYgdW5pb24KLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludGVyc2VjdGlv
bk1hc2tSZWN0YW5nbGVfdCBtX1JlY3RhbmdsZTsKLSAgICAgICAgICAgICAgSW50ZXJzZWN0aW9u
TWFza0NpcmNsZV90IG1fQ2lyY2xlOwotICAgICAgIH0gVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV90Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICAgICAgICAg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci0g
ICAgICAgfTsKLQotICAgICAgIGNsYXNzIElWUk92ZXJsYXkKLSAgICAgICB7Ci0gICAgICAgcHVi
bGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IG1hbmFnZW1lbnQgbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogRmluZHMgYW4gZXhpc3Rpbmcgb3ZlcmxheSB3
aXRoIHRoZSBzcGVjaWZpZWQga2V5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBGaW5kT3ZlcmxheSggY29uc3QgY2hhciAqcGNoT3ZlcmxheUtleSwgVlJPdmVybGF5
SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ3Jl
YXRlcyBhIG5ldyBuYW1lZCBvdmVybGF5LiBBbGwgb3ZlcmxheXMgc3RhcnQgaGlkZGVuIGFuZCB3
aXRoIGRlZmF1bHQgc2V0dGluZ3MuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIENyZWF0ZU92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNo
YXIgKnBjaE92ZXJsYXlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBEZXN0cm95cyB0aGUgc3BlY2lmaWVkIG92ZXJsYXku
IFdoZW4gYW4gYXBwbGljYXRpb24gY2FsbHMgVlJfU2h1dGRvd24gYWxsIG92ZXJsYXlzIGNyZWF0
ZWQgYnkgdGhhdCBhcHAgYXJlCi0gICAgICAgICAgICAgICogYXV0b21hdGljYWxseSBkZXN0cm95
ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIERlc3Ryb3lPdmVy
bGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFNwZWNpZnkgd2hpY2ggb3ZlcmxheSB0byB1c2UgdGhlIGhpZ2ggcXVhbGl0eSBy
ZW5kZXIgcGF0aC4gIFRoaXMgb3ZlcmxheSB3aWxsIGJlIGNvbXBvc2l0ZWQgaW4gZHVyaW5nIHRo
ZSBkaXN0b3J0aW9uIHBhc3Mgd2hpY2gKLSAgICAgICAgICAgICAgKiByZXN1bHRzIGluIGl0IGRy
YXdpbmcgb24gdG9wIG9mIGV2ZXJ5dGhpbmcgZWxzZSwgYnV0IGFsc28gYXQgYSBoaWdoZXIgcXVh
bGl0eSBhcyBpdCBzYW1wbGVzIHRoZSBzb3VyY2UgdGV4dHVyZSBkaXJlY3RseSByYXRoZXIgdGhh
bgotICAgICAgICAgICAgICAqIHJhc3Rlcml6aW5nIGludG8gZWFjaCBleWUncyByZW5kZXIgdGV4
dHVyZSBmaXJzdC4gIEJlY2F1c2UgaWYgdGhpcywgb25seSBvbmUgb2YgdGhlc2UgaXMgc3VwcG9y
dGVkIGF0IGFueSBnaXZlbiB0aW1lLiAgSXQgaXMgbW9zdCB1c2VmdWwKLSAgICAgICAgICAgICAg
KiBmb3Igb3ZlcmxheXMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gdGFrZSB1cCBtb3N0IG9mIHRoZSB1
c2VyJ3MgdmlldyAoZS5nLiBzdHJlYW1pbmcgdmlkZW8pLgotICAgICAgICAgICAgICAqIFRoaXMg
bW9kZSBkb2VzIG5vdCBzdXBwb3J0IG1vdXNlIGlucHV0IHRvIHlvdXIgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0SGlnaFF1YWxpdHlPdmVybGF5
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdGhlIG92ZXJsYXkgaGFuZGxlIG9mIHRoZSBjdXJyZW50IG92ZXJsYXkg
YmVpbmcgcmVuZGVyZWQgdXNpbmcgdGhlIHNpbmdsZSBoaWdoIHF1YWxpdHkgb3ZlcmxheSByZW5k
ZXIgcGF0aC4KLSAgICAgICAgICAgICAgKiBPdGhlcndpc2UgaXQgd2lsbCByZXR1cm4ga191bE92
ZXJsYXlIYW5kbGVJbnZhbGlkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJs
YXlIYW5kbGVfdCBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIEZpbGxzIHRoZSBwcm92aWRlZCBidWZmZXIgd2l0aCB0aGUgc3RyaW5nIGtleSBvZiB0aGUg
b3ZlcmxheS4gUmV0dXJucyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhl
IGtleSwgaW5jbHVkaW5nCi0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hh
cmFjdGVyLiBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoIHdpbGwgYmUgZW5vdWdoIGJ5dGVzIHRv
IGZpdCB0aGUgc3RyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92
ZXJsYXlLZXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJv
ciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEZpbGxzIHRoZSBwcm92
aWRlZCBidWZmZXIgd2l0aCB0aGUgZnJpZW5kbHkgbmFtZSBvZiB0aGUgb3ZlcmxheS4gUmV0dXJu
cyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhlIGtleSwgaW5jbHVkaW5n
Ci0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiBrX3VuVlJP
dmVybGF5TWF4TmFtZUxlbmd0aCB3aWxsIGJlIGVub3VnaCBieXRlcyB0byBmaXQgdGhlIHN0cmlu
Zy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5TmFtZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNo
VmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICpwRXJyb3IgPSAw
TCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogc2V0IHRoZSBuYW1lIHRvIHVzZSBmb3IgdGhp
cyBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlOYW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIg
KnBjaE5hbWUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHJhdyBpbWFnZSBk
YXRhIGZyb20gYW4gb3ZlcmxheS4gT3ZlcmxheSBpbWFnZSBkYXRhIGlzIGFsd2F5cyByZXR1cm5l
ZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBpeGVsLiBJZiB0aGUgYnVmZmVyIGlzIG5vdCBs
YXJnZSBlbm91Z2gsIHdpZHRoIGFuZCBoZWlnaHQgCi0gICAgICAgICAgICAgICogd2lsbCBiZSBz
ZXQgYW5kIFZST3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwgaXMgcmV0dXJuZWQuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbWFnZURhdGEoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90
IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKnB1bldpZHRoLCB1aW50MzJfdCAqcHVuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9u
ZHMgd2l0aCB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0
aGUgbmFtZSAKLSAgICAgICAgICAgICAgKiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxs
IHZhbGlkIGVycm9yIGNvZGVzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAq
R2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKCBFVlJPdmVybGF5RXJyb3IgZXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgcmVuZGVyaW5nIG1ldGhvZHMKLSAg
ICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHBpZCB0aGF0IGlzIGFsbG93ZWQgdG8g
cmVuZGVyIHRvIHRoaXMgb3ZlcmxheSAodGhlIGNyZWF0b3IgcGlkIGlzIGFsd2F5cyBhbGxvdyB0
byByZW5kZXIpLAotICAgICAgICAgICAgICAqICAgICAgIGJ5IGRlZmF1bHQgdGhpcyBpcyB0aGUg
cGlkIG9mIHRoZSBwcm9jZXNzIHRoYXQgbWFkZSB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUElEICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBwaWQgdGhhdCBpcyBhbGxvd2VkIHRvIHJlbmRlciB0byB0
aGlzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5
UmVuZGVyaW5nUGlkKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNwZWNpZnkgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZs
YWcoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRz
IGZsYWcgc2V0dGluZyBmb3IgYSBnaXZlbiBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCAqcGJFbmFibGVk
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjb2xvciB0aW50IG9mIHRoZSBv
dmVybGF5IHF1YWQuIFVzZSAwLjAgdG8gMS4wIHBlciBjaGFubmVsLiAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1
ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgY29sb3IgdGludCBvZiB0aGUg
b3ZlcmxheSBxdWFkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQg
KnBmUmVkLCBmbG9hdCAqcGZHcmVlbiwgZmxvYXQgKnBmQmx1ZSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogU2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDEuMCBmb3Ig
MTAwIHBlcmNlbnQgb3BhY2l0eSB0byAwLjAgZm9yIDAgcGVyY2VudCBvcGFjaXR5LiAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5QWxwaGEoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZkFscGhhICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmxheSBxdWFkLiBCeSBkZWZh
dWx0IG92ZXJsYXlzIGFyZSByZW5kZXJpbmcgYXQgMTAwIHBlcmNlbnQgYWxwaGEgKDEuMCkuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZBbHBoYSApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMg
aW4gdGhlIG92ZXJsYXkuIDEuMCBtZWFucyB0aGUgdGV4ZWxzIGFyZSBzcXVhcmUuIDIuMCBtZWFu
cyB0aGUgdGV4ZWxzCi0gICAgICAgICAgICAgICogYXJlIHR3aWNlIGFzIHdpZGUgYXMgdGhleSBh
cmUgdGFsbC4gRGVmYXVsdHMgdG8gMS4wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHRleGVscyBpbiB0aGUgb3ZlcmxheS4gRGVm
YXVsdHMgdG8gMS4wICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdl
dE92ZXJsYXlUZXhlbEFzcGVjdCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBm
bG9hdCAqcGZUZXhlbEFzcGVjdCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUg
cmVuZGVyaW5nIHNvcnQgb3JkZXIgZm9yIHRoZSBvdmVybGF5LiBPdmVybGF5cyBhcmUgcmVuZGVy
ZWQgdGhpcyBvcmRlcjoKLSAgICAgICAgICAgICAgKiAgICAgIE92ZXJsYXlzIG93bmVkIGJ5IHRo
ZSBzY2VuZSBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqICAgICAgT3ZlcmxheXMgb3duZWQg
Ynkgc29tZSBvdGhlciBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqCi0gICAgICAgICAgICAg
ICogICAgICAgV2l0aGluIGEgY2F0ZWdvcnkgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIGxvd2VzdCBz
b3J0IG9yZGVyIHRvIGhpZ2hlc3Qgc29ydCBvcmRlci4gT3ZlcmxheXMgd2l0aCB0aGUgc2FtZSAK
LSAgICAgICAgICAgICAgKiAgICAgICBzb3J0IG9yZGVyIGFyZSByZW5kZXJlZCBiYWNrIHRvIGZy
b250IGJhc2Ugb24gZGlzdGFuY2UgZnJvbSB0aGUgSE1ELgotICAgICAgICAgICAgICAqCi0gICAg
ICAgICAgICAgICogICAgICAgU29ydCBvcmRlciBkZWZhdWx0cyB0byAwLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuU29ydE9yZGVyICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBzb3J0IG9yZGVyIG9mIHRoZSBvdmVybGF5LiBT
ZWUgU2V0T3ZlcmxheVNvcnRPcmRlciBmb3IgaG93IHRoaXMgd29ya3MuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blNvcnRPcmRlciApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBp
biBtZXRlcnMuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0
IGlzIDEgbWV0ZXIgYWNyb3NzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgb3ZlcmxheSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVs
dCBvdmVybGF5cyBhcmUgcmVuZGVyZWQgb24gYSBxdWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3Mg
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVdpZHRo
SW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmV2lk
dGhJbk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBj
dXJ2ZWQgb3ZlcmxheXMgb25seSwgc2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZy
b20gdGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAg
ICogdGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hl
biB0aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3Vy
dmVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJ
bk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBjdXJ2
ZWQgb3ZlcmxheXMgb25seSwgZ2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZyb20g
dGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAgICog
dGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hlbiB0
aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3VydmVk
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QXV0
b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0ICpwZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICpwZk1heERpc3RhbmNl
SW5NZXRlcnMgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGNvbG9yc3BhY2Ug
dGhlIG92ZXJsYXkgdGV4dHVyZSdzIGRhdGEgaXMgaW4uICBEZWZhdWx0cyB0byAnYXV0bycuCi0g
ICAgICAgICAgICAgICogSWYgdGhlIHRleHR1cmUgbmVlZHMgdG8gYmUgcmVzb2x2ZWQsIHlvdSBz
aG91bGQgY2FsbCBTZXRPdmVybGF5VGV4dHVyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb2xvcnNw
YWNlIGluc3RlYWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIEdldHMgdGhlIG92ZXJsYXkncyBjdXJyZW50IGNvbG9yc3BhY2Ugc2V0dGluZy4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNl
ICpwZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJsYXkuIFVWIE1pbiBpcyB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93ZXIgcmlnaHQgY29ybmVy
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUlRl
eHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBHZXRzIHRoZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJs
YXkuIFVWIE1pbiBpcyB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93
ZXIgcmlnaHQgY29ybmVyLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBWUlRleHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBHZXRzIHJlbmRlciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92
ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5UmVuZGVy
TW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKnBjaFZh
bHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEhtZENvbG9yX3QgKnBDb2xvciwgdnI6OkVWUk92
ZXJsYXlFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHJlbmRl
ciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92ZXJsYXkgYW5kIHRoZSB2ZXJ0ZXggY29sb3Ig
dG8gdXNlLCBwYXNzIG51bGwgZm9yIHBDb2xvciB0byBtYXRjaCB0aGUgb3ZlcmxheXMgdmVydGV4
IGNvbG9yLiAKLSAgICAgICAgICAgICAgICAgICAgIFRoZSBtb2RlbCBpcyBzY2FsZWQgYnkgdGhl
IHNhbWUgYW1vdW50IGFzIHRoZSBvdmVybGF5LCB3aXRoIGEgZGVmYXVsdCBvZiAxbS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSZW5kZXJN
b2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAq
cGNoUmVuZGVyTW9kZWwsIGNvbnN0IEhtZENvbG9yX3QgKnBDb2xvciApID0gMDsKLQotICAgICAg
ICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIHR5cGUgb2YgdGhpcyBvdmVybGF5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICpwZVRyYW5zZm9ybVR5cGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHRyYW5zZm9ybSB0byBhYnNvbHV0ZSB0cmFja2luZyBvcmlnaW4uICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlVHJhY2tpbmdPcmlnaW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09y
aWdpblRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgdHJhbnNmb3JtIGlmIGl0IGlzIGFic29sdXRlLiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0
cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKnBlVHJhY2tpbmdP
cmlnaW4sIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9y
bSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0
aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNwZWNpZmllZCB0cmFja2VkIGRldmljZS4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blRyYWNrZWREZXZpY2UsIGNvbnN0IEhtZE1hdHJpeDM0
X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYSB0cmFj
a2VkIGRldmljZS4gUmV0dXJucyBhbiBlcnJvciBpZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3Ro
ZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZSwgSG1k
TWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byBkcmF3IHRoZSBvdmVybGF5
IG9uIGEgcmVuZGVybW9kZWwgY29tcG9uZW50IG1lc2ggaW5zdGVhZCBvZiBhIHF1YWQuIFRoaXMg
d2lsbCBvbmx5IGRyYXcgd2hlbiB0aGUgc3lzdGVtIGlzCi0gICAgICAgICAgICAgICogZHJhd2lu
ZyB0aGUgZGV2aWNlLiBPdmVybGF5cyB3aXRoIHRoaXMgdHJhbnNmb3JtIHR5cGUgY2Fubm90IHJl
Y2VpdmUgbW91c2UgZXZlbnRzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAwOwotCi0gICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaW5mb3JtYXRpb24gd2hlbiB0aGUgb3ZlcmxheSBpcyBy
ZW5kZXJpbmcgb24gYSBjb21wb25lbnQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5E
ZXZpY2VJbmRleCwgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRO
YW1lU2l6ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlm
IGl0IGlzIHJlbGF0aXZlIHRvIGFub3RoZXIgb3ZlcmxheS4gUmV0dXJucyBhbiBlcnJvciBpZiB0
aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVh
bCB2cjo6RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnVs
T3ZlcmxheUhhbmRsZVBhcmVudCwgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJsYXlUb092
ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNw
ZWNpZmllZCBvdmVybGF5LiBUaGlzIG92ZXJsYXlzIHZpc2liaWxpdHkgd2lsbCBhbHNvIHRyYWNr
IHRoZSBwYXJlbnRzIHZpc2liaWxpdHkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlUGFyZW50LCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0UGFyZW50T3ZlcmxheVRvT3Zlcmxh
eVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2hvd3MgdGhlIFZSIG92ZXJs
YXkuICBGb3IgZGFzaGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBp
cyBhbGxvd2VkIHRvIGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgU2hvd092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogSGlkZXMgdGhlIFZSIG92ZXJsYXkuICBGb3IgZGFz
aGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBpcyBhbGxvd2VkIHRv
IGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgSGlk
ZU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBvdmVybGF5IGlzIHZpc2libGUuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc092ZXJsYXlWaXNpYmxlKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0
aGUgdHJhbnNmb3JtIGluIDNkIHNwYWNlIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIDJkIHBv
aW50IGluIHRoZSBvdmVybGF5J3MgY29vcmRpbmF0ZSBzcGFjZSAod2hlcmUgMCwwIGlzIHRoZSBs
b3dlciBsZWZ0KS4gLVogcG9pbnRzIG91dCBvZiB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0
ZXMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFuc2Zvcm0gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAg
ICAgIC8vIE92ZXJsYXkgaW5wdXQgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0
aGUgb3ZlcmxheSdzIGV2ZW50IHF1ZXVlLCBpZiB0aGVyZSBpcyBvbmUuIAotICAgICAgICAgICAg
ICAqIElmIHRoZXJlIGFyZSBubyBldmVudHMgdGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4gdW5j
YlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3Ry
dWN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dE92ZXJsYXlFdmVudCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUkV2ZW50X3QgKnBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhl
IGN1cnJlbnQgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUlucHV0TWV0aG9k
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9k
ICpwZUlucHV0TWV0aG9kICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBpbnB1
dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBvdmVybGF5LiAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgZUlucHV0TWV0aG9k
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBtb3VzZSBzY2FsaW5nIGZhY3Rv
ciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0dXJlIG1heSBi
ZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcwotICAgICAgICAgICAgICAqIHR5cGljYWxs
eSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIG1vdXNlIHNjYWxpbmcgZmFjdG9y
IHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZlbnRzLiBUaGUgYWN0dWFsIHRleHR1cmUgbWF5IGJl
IGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlzIGlzCi0gICAgICAgICAgICAgICogdHlwaWNhbGx5
IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscyAobm90IGluIHdvcmxkIHNw
YWNlKS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eU1vdXNlU2NhbGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgSG1k
VmVjdG9yMl90ICpwdmVjTW91c2VTY2FsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ29t
cHV0ZXMgdGhlIG92ZXJsYXktc3BhY2UgcGl4ZWwgY29vcmRpbmF0ZXMgb2Ygd2hlcmUgdGhlIHJh
eSBpbnRlcnNlY3RzIHRoZSBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAgICogc3BlY2lm
aWVkIHNldHRpbmdzLiBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIGludGVyc2VjdGlvbi4g
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IFZST3ZlcmxheUludGVy
c2VjdGlvblBhcmFtc190ICpwUGFyYW1zLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Qg
KnBSZXN1bHRzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBQcm9jZXNzZXMgbW91c2UgaW5w
dXQgZnJvbSB0aGUgc3BlY2lmaWVkIGNvbnRyb2xsZXIgYXMgdGhvdWdoIGl0IHdlcmUgYSBtb3Vz
ZSBwb2ludGVkIGF0IGEgY29tcG9zaXRvciBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAg
ICogc3BlY2lmaWVkIHNldHRpbmdzLiBUaGUgY29udHJvbGxlciBpcyB0cmVhdGVkIGxpa2UgYSBs
YXNlciBwb2ludGVyIG9uIHRoZSAteiBheGlzLiBUaGUgcG9pbnQgd2hlcmUgdGhlIGxhc2VyIHBv
aW50ZXIgd291bGQKLSAgICAgICAgICAgICAgKiBpbnRlcnNlY3Qgd2l0aCB0aGUgb3ZlcmxheSBp
cyB0aGUgbW91c2UgcG9zaXRpb24sIHRoZSB0cmlnZ2VyIGlzIGxlZnQgbW91c2UsIGFuZCB0aGUg
dHJhY2sgcGFkIGlzIHJpZ2h0IG1vdXNlLiAKLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAg
ICAqIFJldHVybiB0cnVlIGlmIHRoZSBjb250cm9sbGVyIGlzIHBvaW50ZWQgYXQgdGhlIG92ZXJs
YXkgYW5kIGFuIGV2ZW50IHdhcyBnZW5lcmF0ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0LiBBbiBvdmVybGF5IGlz
IHRoZSBob3ZlciB0YXJnZXQgd2hlbiBpdCBpcyB0aGUgbGFzdCBvdmVybGF5ICJtb3VzZWQgb3Zl
ciIgCi0gICAgICAgICAgICAgICogYnkgdGhlIHZpcnR1YWwgbW91c2UgcG9pbnRlciAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJu
cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgYW4gb3ZlcmxheSdzIG5laWdoYm9yLiBUaGlzIHdpbGwg
YWxzbyBzZXQgdGhlIG5laWdoYm9yIG9mIHRoZSAidG8iIG92ZXJsYXkKLSAgICAgICAgICAgICAg
KiB0byBwb2ludCBiYWNrIHRvIHRoZSAiZnJvbSIgb3ZlcmxheS4gSWYgYW4gb3ZlcmxheSdzIG5l
aWdoYm9yIGlzIHNldCB0byBpbnZhbGlkIGJvdGgKLSAgICAgICAgICAgICAgKiBlbmRzIHdpbGwg
YmUgY2xlYXJlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRP
dmVybGF5TmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhh
bmRsZV90IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogQ2hhbmdlcyB0aGUgR2FtZXBhZCBmb2N1cyBmcm9tIG9uZSBvdmVybGF5IHRvIG9u
ZSBvZiBpdHMgbmVpZ2hib3JzLiBSZXR1cm5zIFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgaWYg
dGhlcmUgaXMgbm8KLSAgICAgICAgICAgICAgKiBuZWlnaGJvciBpbiB0aGF0IGRpcmVjdGlvbiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBNb3ZlR2FtZXBhZEZvY3Vz
VG9OZWlnaGJvciggRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxl
X3QgdWxGcm9tICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IHRleHR1
cmUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogVGV4dHVyZSB0byBkcmF3IGZv
ciB0aGUgb3ZlcmxheS4gVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92
ZXJsYXkncyBjcmVhdG9yIG9yIHJlbmRlcmVyIHByb2Nlc3MgKHNlZSBTZXRPdmVybGF5UmVuZGVy
aW5nUGlkKSAuCi0gICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBPcGVuR0wgZGlydHkg
c3RhdGU6Ci0gICAgICAgICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBUZXh0dXJlX3Qg
KnBUZXh0dXJlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBVc2UgdGhpcyB0byB0ZWxsIHRo
ZSBvdmVybGF5IHN5c3RlbSB0byByZWxlYXNlIHRoZSB0ZXh0dXJlIHNldCBmb3IgdGhpcyBvdmVy
bGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDbGVhck92ZXJs
YXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAg
ICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvdmlkaW5nIHRoZSBkYXRh
IGFzIGEgc3RyZWFtIG9mIGJ5dGVzLCBidXQgdGhlcmUgaXMgYW4gdXBwZXIgYm91bmQgb24gZGF0
YSAKLSAgICAgICAgICAgICAgKiB0aGF0IGNhbiBiZSBzZW50LiBUaGlzIGZ1bmN0aW9uIGNhbiBv
bmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3MuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSYXcoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lk
dGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50MzJfdCB1bkRlcHRoICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGluZyB0aGUgaW1hZ2UgdGhy
b3VnaCBhIGZpbGVuYW1lOiBjYW4gYmUgcG5nIG9yIGpwZywgYW5kIHNob3VsZCBub3QgYmUgYmln
Z2VyIHRoYW4gMTkyMHgxMDgwLgotICAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIG9u
bHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgcmVuZGVyZXIgcHJvY2VzcyAqLwotICAgICAg
ICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5RnJvbUZpbGUoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAqcGNoRmlsZVBhdGggKSA9
IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbmF0aXZlIHRleHR1cmUgaGFuZGxlL2Rl
dmljZSBmb3IgYW4gb3ZlcmxheSB5b3UgaGF2ZSBjcmVhdGVkLgotICAgICAgICAgICAgICAqIE9u
IHdpbmRvd3MgdGhpcyBoYW5kbGUgd2lsbCBiZSBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyB3
aXRoIGEgSUQzRDExVGV4dHVyZTJEIGJvdW5kLgotICAgICAgICAgICAgICAqCi0gICAgICAgICAg
ICAgICogVGhlIHRleHR1cmUgd2lsbCBhbHdheXMgYmUgc2l6ZWQgdG8gbWF0Y2ggdGhlIGJhY2tp
bmcgdGV4dHVyZSB5b3Ugc3VwcGxpZWQgaW4gU2V0T3ZlcmxheVRleHR1cmUgYWJvdmUuCi0gICAg
ICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBZb3UgTVVTVCBjYWxsIFJlbGVhc2VOYXRpdmVP
dmVybGF5SGFuZGxlKCkgd2l0aCBwTmF0aXZlVGV4dHVyZUhhbmRsZSBvbmNlIHlvdSBhcmUgZG9u
ZSB3aXRoIHRoaXMgdGV4dHVyZS4KLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAgICAqIHBO
YXRpdmVUZXh0dXJlSGFuZGxlIGlzIGFuIE9VVFBVVCwgaXQgd2lsbCBiZSBhIHBvaW50ZXIgdG8g
YSBJRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKi4KLSAgICAgICAgICAgICAgKiBwTmF0aXZlVGV4
dHVyZVJlZiBpcyBhbiBJTlBVVCBhbmQgc2hvdWxkIGJlIGEgSUQzRDExUmVzb3VyY2UgKi4gVGhl
IGRldmljZSB1c2VkIGJ5IHBOYXRpdmVUZXh0dXJlUmVmIHdpbGwgYmUgdXNlZCB0byBiaW5kIHBO
YXRpdmVUZXh0dXJlSGFuZGxlLgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB2b2lkICoqcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKnBOYXRp
dmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCwgdWludDMy
X3QgKnBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAqcEFQSVR5cGUsIEVDb2xvclNwYWNlICpw
Q29sb3JTcGFjZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBSZWxlYXNlIHRoZSBwTmF0aXZlVGV4dHVyZUhhbmRsZSBwcm92aWRl
ZCBmcm9tIHRoZSBHZXRPdmVybGF5VGV4dHVyZSBjYWxsLCB0aGlzIGFsbG93cyB0aGUgc3lzdGVt
IHRvIGZyZWUgdGhlIHVuZGVybHlpbmcgR1BVIHJlc291cmNlcyBmb3IgdGhpcyBvYmplY3QsCi0g
ICAgICAgICAgICAgICogc28gb25seSBkbyBpdCBvbmNlIHlvdSBzdG9wIHJlbmRlcmluZyB0aGlz
IHRleHR1cmUuCi0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnBOYXRpdmVUZXh0dXJlSGFuZGxlICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXQgdGhlIHNpemUgb2YgdGhlIG92ZXJsYXkgdGV4dHVyZSAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZVNpemUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBXaWR0aCwgdWlu
dDMyX3QgKnBIZWlnaHQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBEYXNoYm9h
cmQgT3ZlcmxheSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogQ3JlYXRlcyBh
IGRhc2hib2FyZCBvdmVybGF5IGFuZCByZXR1cm5zIGl0cyBoYW5kbGUgKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSggY29uc3Qg
Y2hhciAqcGNoT3ZlcmxheUtleSwgY29uc3QgY2hhciAqcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnBUaHVt
Ym5haWxIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIElz
RGFzaGJvYXJkVmlzaWJsZSgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSBhbmQgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlz
IHRoZSBhY3RpdmUgc3lzdGVtIE92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29s
IElzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBkYXNoYm9hcmQgb3Zlcmxh
eSB0byBvbmx5IGFwcGVhciB3aGVuIHRoZSBzcGVjaWZpZWQgcHJvY2VzcyBJRCBoYXMgc2NlbmUg
Zm9jdXMgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0RGFzaGJv
YXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCB1aW50MzJfdCB1blByb2Nlc3NJZCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgcHJvY2VzcyBJRCB0aGF0IHRoaXMgZGFzaGJvYXJkIG92ZXJsYXkgcmVxdWlyZXMgdG8gaGF2
ZSBzY2VuZSBmb2N1cyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Qcm9jZXNzSWQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFNob3dzIHRoZSBkYXNoYm9hcmQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBT
aG93RGFzaGJvYXJkKCBjb25zdCBjaGFyICpwY2hPdmVybGF5VG9TaG93ICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFja2VkIGRldmljZSB0aGF0IGhhcyB0aGUgbGFz
ZXIgcG9pbnRlciBpbiB0aGUgZGFzaGJvYXJkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90IEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgICAgICAgICAgIC8vIEtleWJvYXJkIG1ldGhvZHMKLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgdmlydHVhbCBrZXlib2FyZCB0byBh
Y2NlcHQgaW5wdXQgKiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNo
b3dLZXlib2FyZCggRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4
dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNvbnN0IGNoYXIgKnBjaERlc2NyaXB0aW9u
LCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNoYXIgKnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBi
VXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFsdWUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0
TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY29uc3QgY2hh
ciAqcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3QgY2hhciAqcGNoRXhp
c3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSApID0g
MDsKLQotICAgICAgICAgICAgICAvKiogR2V0IHRoZSB0ZXh0IHRoYXQgd2FzIGVudGVyZWQgaW50
byB0aGUgdGV4dCBpbnB1dCAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRL
ZXlib2FyZFRleHQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hUZXh0LCB1aW50MzJfdCBjY2hU
ZXh0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBIaWRlIHRoZSB2aXJ0dWFsIGtleWJvYXJk
ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgSGlkZUtleWJvYXJkKCkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBrZXlib2FyZCBpbiB3b3Js
ZCBzcGFjZSAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJkVHJhbnNm
b3JtQWJzb2x1dGUoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29u
c3QgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9h
cmQgaW4gb3ZlcmxheSBzcGFjZSBieSB0ZWxsaW5nIGl0IHRvIGF2b2lkIGEgcmVjdGFuZ2xlIGlu
IHRoZSBvdmVybGF5LiBSZWN0YW5nbGUgY29vcmRzIGhhdmUgKDAsMCkgaW4gdGhlIGJvdHRvbSBs
ZWZ0ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0S2V5Ym9hcmRQb3NpdGlvbkZv
ck92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBh
dm9pZFJlY3QgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgaW5wdXQg
bWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2V0cyBhIGxpc3Qgb2YgcHJpbWl0
aXZlcyB0byBiZSB1c2VkIGZvciBjb250cm9sbGVyIHJheSBpbnRlcnNlY3Rpb24KLSAgICAgICAg
ICAgICAgKiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxz
IChub3QgaW4gd29ybGQgc3BhY2UpLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKnBNYXNr
UHJpbWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5Qcmlt
aXRpdmVTaXplID0gc2l6ZW9mKCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3Qg
KSApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5RmxhZ3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBG
bGFncyApID0gMDsKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gTWVzc2FnZSBib3ggbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgbWVzc2FnZSBvdmVybGF5LiBU
aGlzIHdpbGwgYmxvY2sgYW5kIHJldHVybiB5b3UgYSByZXN1bHQuICoqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2FnZU92ZXJsYXkoIGNv
bnN0IGNoYXIqIHBjaFRleHQsIGNvbnN0IGNoYXIqIHBjaENhcHRpb24sIGNvbnN0IGNoYXIqIHBj
aEJ1dHRvbjBUZXh0LCBjb25zdCBjaGFyKiBwY2hCdXR0b24xVGV4dCA9IG51bGxwdHIsIGNvbnN0
IGNoYXIqIHBjaEJ1dHRvbjJUZXh0ID0gbnVsbHB0ciwgY29uc3QgY2hhciogcGNoQnV0dG9uM1Rl
eHQgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBJZiB0aGUgY2FsbGluZyBw
cm9jZXNzIG93bnMgdGhlIG92ZXJsYXkgYW5kIGl0J3Mgb3BlbiwgdGhpcyB3aWxsIGNsb3NlIGl0
LiAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIENsb3NlTWVzc2FnZU92ZXJsYXkoKSA9
IDA7Ci0gICAgICAgfTsKLQotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXZycmVuZGVybW9kZWxzLmgKLW5hbWVzcGFjZSB2cgotewotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7
ICAgLy8gQ2Fub25pY2FsIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZSBnZGMgMjAxNSB3aXJlZCBj
b250cm9sbGVyLCBwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKLXN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNl
IjsgICAgICAgICAvLyBGb3IgY29udHJvbGxlcnMgd2l0aCBhbiB1bmFtYmlndW91cyAnYmFzZScu
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1Rp
cCA9ICJ0aXAiOyAgICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3Vv
dXMgJ3RpcCcgKHVzZWQgZm9yICdsYXNlci1wb2ludGluZycpCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsg
Ly8gTmV1dHJhbCwgYW1iaWRleHRyb3VzIGhhbmQtcG9zZSB3aGVuIGhvbGRpbmcgY29udHJvbGxl
ci4gT24gcGxhbmUgYmV0d2VlbiBuZXV0cmFsbHkgcG9zZWQgaW5kZXggZmluZ2VyIGFuZCB0aHVt
Ygotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9T
dGF0dXMgPSAic3RhdHVzIjsgICAgICAgICAgICAgIC8vIDE6MSBhc3BlY3QgcmF0aW8gc3RhdHVz
IGFyZWEsIHdpdGggY2Fub25pY2FsIFswLDFdIHV2IG1hcHBpbmcKLQotI3ByYWdtYSBwYWNrKCBw
dXNoLCA4ICkKLQotLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3Np
dG9yICovCi1lbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAxMDAs
Ci0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRlZCA9IDIwMCwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZEFyZyA9IDMwMCwKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob1No
YXBlcyA9IDMwMiwKLSAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMgPSAz
MDMsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9IDMwNCwKLSAg
ICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCi0gICAgICAgVlJSZW5kZXJN
b2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVy
cm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLQotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJv
cl9JbnZhbGlkVGV4dHVyZSA9IDQwMCwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgVlJDb21wb25l
bnRQcm9wZXJ0aWVzOwotCi1lbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAgVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyA9ICgxIDw8IDApLAotICAgICAgIFZSQ29tcG9uZW50
UHJvcGVydHlfSXNWaXNpYmxlID0gKDEgPDwgMSksCi0gICAgICAgVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1RvdWNoZWQgPSAoMSA8PCAyKSwKLSAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCA9ICgxIDw8IDMpLAotICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTY3JvbGxlZCA9
ICgxIDw8IDQpLAotfTsKLQotLyoqIERlc2NyaWJlcyBzdGF0ZSBpbmZvcm1hdGlvbiBhYm91dCBh
IHJlbmRlci1tb2RlbCBjb21wb25lbnQsIGluY2x1ZGluZyB0cmFuc2Zvcm1zIGFuZCBvdGhlciBk
eW5hbWljIHByb3BlcnRpZXMgKi8KLXN0cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVs
OyAgLy8gVHJhbnNmb3JtIHJlcXVpcmVkIHdoZW4gZHJhd2luZyB0aGUgY29tcG9uZW50IHJlbmRl
ciBtb2RlbAotICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsg
ICAgICAgIC8vIFRyYW5zZm9ybSBhdmFpbGFibGUgZm9yIGF0dGFjaGluZyB0byBhIGxvY2FsIGNv
bXBvbmVudCBjb29yZGluYXRlIHN5c3RlbSAoLVogb3V0IGZyb20gc3VyZmFjZSApCi0gICAgICAg
VlJDb21wb25lbnRQcm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfTsKLQotLyoqIEEgc2luZ2xlIHZl
cnRleCBpbiBhIHJlbmRlciBtb2RlbCAqLwotc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Ci17
Ci0gICAgICAgSG1kVmVjdG9yM190IHZQb3NpdGlvbjsgICAgICAgICAgICAgIC8vIHBvc2l0aW9u
IGluIG1ldGVycyBpbiBkZXZpY2Ugc3BhY2UKLSAgICAgICBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsK
LSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsKLX07Ci0KLS8qKiBBIHRleHR1cmUgbWFw
IGZvciB1c2Ugb24gYSByZW5kZXIgbW9kZWwgKi8KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwg
ZGVmaW5lZChfX0FQUExFX18pIAotLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVm
aW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0
eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gsIDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QKLXsKLSAgICAgICB1aW50MTZfdCB1bldpZHRoLCB1bkhlaWdodDsgLy8g
d2lkdGggYW5kIGhlaWdodCBvZiB0aGUgdGV4dHVyZSBtYXAgaW4gcGl4ZWxzCi0gICAgICAgY29u
c3QgdWludDhfdCAqcnViVGV4dHVyZU1hcERhdGE7ICAgICAgIC8vIE1hcCB0ZXh0dXJlIGRhdGEu
IEFsbCB0ZXh0dXJlcyBhcmUgUkdCQSB3aXRoIDggYml0cyBwZXIgY2hhbm5lbCBwZXIgcGl4ZWwu
IERhdGEgc2l6ZSBpcyB3aWR0aCAqIGhlaWdodCAqIDR1YgotfTsKLSNpZiBkZWZpbmVkKF9fbGlu
dXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotI3ByYWdtYSBwYWNrKCBwb3AgKQotI2VuZGlm
Ci0KLS8qKiAgU2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBSZW5kZXJtb2RlbHMg
d2hpY2ggc2hhcmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgaWQuCi1JRHMg
PDAgZGVub3RlIHRoZSB0ZXh0dXJlIGlzIG5vdCBwcmVzZW50ICovCi0KLXR5cGVkZWYgaW50MzJf
dCBUZXh0dXJlSURfdDsKLQotY29uc3QgVGV4dHVyZUlEX3QgSU5WQUxJRF9URVhUVVJFX0lEID0g
LTE7Ci0KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotLy8g
VGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4
LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gs
IDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2RlbF90Ci17Ci0gICAgICAgY29uc3QgUmVu
ZGVyTW9kZWxfVmVydGV4X3QgKnJWZXJ0ZXhEYXRhOyAgICAgICAvLyBWZXJ0ZXggZGF0YSBmb3Ig
dGhlIG1lc2gKLSAgICAgICB1aW50MzJfdCB1blZlcnRleENvdW50OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBvZiB2ZXJ0aWNlcyBpbiB0aGUgdmVy
dGV4IGRhdGEKLSAgICAgICBjb25zdCB1aW50MTZfdCAqckluZGV4RGF0YTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEluZGljZXMgaW50byB0aGUgdmVydGV4IGRhdGEgZm9y
IGVhY2ggdHJpYW5nbGUKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdHJpYW5nbGVzIGluIHRoZSBt
ZXNoLiBJbmRleCBjb3VudCBpcyAzICogVHJpYW5nbGVDb3VudAotICAgICAgIFRleHR1cmVJRF90
IGRpZmZ1c2VUZXh0dXJlSWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlc3Npb24g
dW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVuZGVybW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBz
YW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1lIGlkLiA8MCA9PSB0ZXh0dXJlIG5vdCBwcmVz
ZW50Ci19OwotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCi0j
cHJhZ21hIHBhY2soIHBvcCApCi0jZW5kaWYKLQotCi1zdHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wgYlNjcm9sbFdoZWVsVmlzaWJsZTsgLy8g
aXMgdGhpcyBjb250cm9sbGVyIGN1cnJlbnRseSBzZXQgdG8gYmUgaW4gYSBzY3JvbGwgd2hlZWwg
bW9kZQotfTsKLQotI3ByYWdtYSBwYWNrKCBwb3AgKQotCi1jbGFzcyBJVlJSZW5kZXJNb2RlbHMK
LXsKLXB1YmxpYzoKLQotICAgICAgIC8qKiBMb2FkcyBhbmQgcmV0dXJucyBhIHJlbmRlciBtb2Rl
bCBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4gcGNoUmVuZGVyTW9kZWxOYW1lIHNob3VsZCBi
ZSBhIHJlbmRlciBtb2RlbCBuYW1lCi0gICAgICAgKiBmcm9tIHRoZSBQcm9wX1JlbmRlck1vZGVs
TmFtZV9TdHJpbmcgcHJvcGVydHkgb3IgYW4gYWJzb2x1dGUgcGF0aCBuYW1lIHRvIGEgcmVuZGVy
IG1vZGVsIG9uIGRpc2suIAotICAgICAgICoKLSAgICAgICAqIFRoZSByZXN1bHRpbmcgcmVuZGVy
IG1vZGVsIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3duKCkgaXMgY2FsbGVkIG9yIHVudGlsIEZy
ZWVSZW5kZXJNb2RlbCgpIGlzIGNhbGxlZC4gV2hlbiB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlv
biBpcyBmaW5pc2hlZCB3aXRoIHRoZSByZW5kZXIgbW9kZWwgaXQgc2hvdWxkIGNhbGwgRnJlZVJl
bmRlck1vZGVsKCkgdG8gZnJlZSB0aGUgbWVtb3J5IGFzc29jaWF0ZWQKLSAgICAgICAqIHdpdGgg
dGhlIG1vZGVsLgotICAgICAgICoKLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRl
ck1vZGVsRXJyb3JfTG9hZGluZyB3aGlsZSB0aGUgcmVuZGVyIG1vZGVsIGlzIHN0aWxsIGJlaW5n
IGxvYWRlZC4KLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRlck1vZGVsRXJyb3Jf
Tm9uZSBvbmNlIGxvYWRlZCBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSB3aWxsIHJldHVybiBhbiBl
cnJvci4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJlbmRlck1v
ZGVsX0FzeW5jKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFJlbmRlck1vZGVsX3Qg
KipwcFJlbmRlck1vZGVsICkgPSAwOwotCi0gICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSBy
ZXR1cm5lZCByZW5kZXIgbW9kZWwKLSAgICAgICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMg
b24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVJlbmRlck1vZGVsKCBS
ZW5kZXJNb2RlbF90ICpwUmVuZGVyTW9kZWwgKSA9IDA7Ci0KLSAgICAgICAvKiogTG9hZHMgYW5k
IHJldHVybnMgYSB0ZXh0dXJlIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLiAqLwotICAgICAg
IHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkVGV4dHVyZV9Bc3luYyggVGV4dHVyZUlE
X3QgdGV4dHVyZUlkLCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKipwcFRleHR1cmUgKSA9IDA7
Ci0KLSAgICAgICAvKiogRnJlZXMgYSBwcmV2aW91c2x5IHJldHVybmVkIHRleHR1cmUKLSAgICAg
ICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgb24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2
aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmUoIFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqcFRleHR1
cmUgKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIEQzRDExIHRleHR1cmUgYW5kIGxvYWRz
IGRhdGEgaW50byBpdC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFRleHR1cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICpwRDNEMTFE
ZXZpY2UsIHZvaWQgKipwcEQzRDExVGV4dHVyZTJEICkgPSAwOwotCi0gICAgICAgLyoqIEhlbHBl
ciBmdW5jdGlvbiB0byBjb3B5IHRoZSBiaXRzIGludG8gYW4gZXhpc3RpbmcgdGV4dHVyZS4gKi8K
LSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZEludG9UZXh0dXJlRDNEMTFf
QXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqcERzdFRleHR1cmUgKSA9IDA7Ci0K
LSAgICAgICAvKiogVXNlIHRoaXMgdG8gZnJlZSB0ZXh0dXJlcyBjcmVhdGVkIHdpdGggTG9hZFRl
eHR1cmVEM0QxMV9Bc3luYyBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGVtLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZUQzRDExKCB2b2lkICpwRDNEMTFUZXh0dXJl
MkQgKSA9IDA7Ci0KLSAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFp
bGFibGUgcmVuZGVyIG1vZGVscy4gIEluZGV4IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNr
ZWQgZGV2aWNlIGluZGV4LCBidXQKLSAgICAgICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5n
IG92ZXIgYWxsIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBv
ZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgotICAgICAgICogT3RoZXJ3aXNl
LCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUg
bmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsTmFtZSggdWlu
dDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoUmVuZGVy
TW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxlbiApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICovCi0g
ICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbENvdW50KCkgPSAwOwotCi0KLSAg
ICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgb2YgdGhlIHNwZWNpZmll
ZCByZW5kZXIgbW9kZWwuCi0gICAgICAgKiAgQ29tcG9uZW50cyBhcmUgdXNlZnVsIHdoZW4gY2xp
ZW50IGFwcGxpY2F0aW9uIHdpc2ggdG8gZHJhdywgbGFiZWwsIG9yIG90aGVyd2lzZSBpbnRlcmFj
dCB3aXRoIGNvbXBvbmVudHMgb2YgdHJhY2tlZCBvYmplY3RzLgotICAgICAgICogIEV4YW1wbGVz
IGNvbnRyb2xsZXIgY29tcG9uZW50czoKLSAgICAgICAqICAgcmVuZGVyYWJsZSB0aGluZ3Mgc3Vj
aCBhcyB0cmlnZ2VycywgYnV0dG9ucwotICAgICAgICogICBub24tcmVuZGVyYWJsZSB0aGluZ3Mg
d2hpY2ggaW5jbHVkZSBjb29yZGluYXRlIHN5c3RlbXMgc3VjaCBhcyAndGlwJywgJ2Jhc2UnLCBh
IG5ldXRyYWwgY29udHJvbGxlciBhZ25vc3RpYyBoYW5kLXBvc2UKLSAgICAgICAqICAgSWYgYWxs
IGNvbnRyb2xsZXIgY29tcG9uZW50cyBhcmUgZW51bWVyYXRlZCBhbmQgcmVuZGVyZWQsIGl0IHdp
bGwgYmUgZXF1aXZhbGVudCB0byBkcmF3aW5nIHRoZSB0cmFkaXRpb25hbCByZW5kZXIgbW9kZWwK
LSAgICAgICAqICAgUmV0dXJucyAwIGlmIGNvbXBvbmVudHMgbm90IHN1cHBvcnRlZCwgPjAgb3Ro
ZXJ3aXNlICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDb21wb25lbnRDb3VudCggY29u
c3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lICkgPSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlz
IHRvIGdldCB0aGUgbmFtZXMgb2YgYXZhaWxhYmxlIGNvbXBvbmVudHMuICBJbmRleCBkb2VzIG5v
dCBjb3JyZWxhdGUgdG8gYSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0Ci0gICAgICAgKiBpcyBv
bmx5IHVzZWQgZm9yIGl0ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgY29tcG9uZW50cy4gIElm
IHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4K
LSAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRD
b21wb25lbnROYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50SW5kZXgsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwg
dWludDMyX3QgdW5Db21wb25lbnROYW1lTGVuICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUg
YnV0dG9uIG1hc2sgZm9yIGFsbCBidXR0b25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVu
dAotICAgICAgICogICBJZiBubyBidXR0b25zIChvciBheGVzKSBhcmUgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgY29tcG9uZW50LCByZXR1cm4gMAotICAgICAgICogICBOb3RlOiBtdWx0aXBsZSBjb21w
b25lbnRzIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgYnV0dG9uLiBFeDogdHdvIGdy
aXAgYnV0dG9ucyBvbiBhIHNpbmdsZSBjb250cm9sbGVyLgotICAgICAgICogICBOb3RlOiBBIHNp
bmdsZSBjb21wb25lbnQgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBidXR0b25zLiBF
eDogQSB0cmFja3BhZCB3aGljaCBhbHNvIHByb3ZpZGVzICJELXBhZCIgZnVuY3Rpb25hbGl0eSAq
LwotICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0Q29tcG9uZW50QnV0dG9uTWFzayggY29uc3Qg
Y2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkg
PSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgcmVuZGVyIG1vZGVsIG5hbWUg
Zm9yIHRoZSBzcGVjaWZpZWQgcmVuZGVybW9kZS9jb21wb25lbnQgY29tYmluYXRpb24sIHRvIGJl
IHBhc3NlZCB0byBMb2FkUmVuZGVyTW9kZWwuCi0gICAgICAgKiBJZiB0aGUgY29tcG9uZW50IG5h
bWUgaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCi0gICAgICAg
KiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWly
ZWQgZm9yIHRoZSBuYW1lLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNo
YXIgKnBjaENvbXBvbmVudE5hbWUsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbiAp
ID0gMDsKLQotICAgICAgIC8qKiBVc2UgdGhpcyB0byBxdWVyeSBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgY29tcG9uZW50LCBhcyBhIGZ1bmN0aW9uIG9mIHRoZSBjb250cm9sbGVyIHN0YXRlLgotICAg
ICAgICoKLSAgICAgICAqIEZvciBkeW5hbWljIGNvbnRyb2xsZXIgY29tcG9uZW50cyAoZXg6IHRy
aWdnZXIpIHZhbHVlcyB3aWxsIHJlZmxlY3QgY29tcG9uZW50IG1vdGlvbnMKLSAgICAgICAqIEZv
ciBzdGF0aWMgY29tcG9uZW50cyB0aGlzIHdpbGwgcmV0dXJuIGEgY29uc2lzdGVudCB2YWx1ZSBp
bmRlcGVuZGVudCBvZiB0aGUgVlJDb250cm9sbGVyU3RhdGVfdAotICAgICAgICoKLSAgICAgICAq
IElmIHRoZSBwY2hSZW5kZXJNb2RlbE5hbWUgb3IgcGNoQ29tcG9uZW50TmFtZSBpcyBpbnZhbGlk
LCB0aGlzIHdpbGwgcmV0dXJuIGZhbHNlIChhbmQgdHJhbnNmb3JtcyB3aWxsIGJlIHNldCB0byBp
ZGVudGl0eSkuCi0gICAgICAgKiBPdGhlcndpc2UsIHJldHVybiB0cnVlCi0gICAgICAgKiBOb3Rl
OiBGb3IgZHluYW1pYyBvYmplY3RzLCB2aXNpYmlsaXR5IG1heSBiZSBkeW5hbWljLiAoSS5lLiwg
dHJ1ZS9mYWxzZSB3aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIGNvbnRyb2xsZXIgc3RhdGUgYW5k
IGNvbnRyb2xsZXIgbW9kZSBzdGF0ZSApICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbXBv
bmVudFN0YXRlKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBj
aENvbXBvbmVudE5hbWUsIGNvbnN0IHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxl
clN0YXRlLCBjb25zdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICpwU3RhdGUs
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKnBDb21wb25lbnRTdGF0ZSApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlbmRlciBtb2RlbCBoYXMgYSBjb21wb25l
bnQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVuZGVy
TW9kZWxIYXNDb21wb25lbnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3Qg
Y2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBV
Ukwgb2YgdGhlIHRodW1ibmFpbCBpbWFnZSBmb3IgdGhpcyByZW5kZXJtb2RlbCAqLwotICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwoIGNvbnN0IGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFRodW1ibmFpbFVS
TCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICpw
ZUVycm9yICkgPSAwOwotCi0gICAgICAgLyoqIFByb3ZpZGVzIGEgcmVuZGVyIG1vZGVsIHBhdGgg
dGhhdCB3aWxsIGxvYWQgdGhlIHVuc2tpbm5lZCBtb2RlbCBpZiB0aGUgbW9kZWwgbmFtZSBwcm92
aWRlZCBoYXMgYmVlbiByZXBsYWNlIGJ5IHRoZSB1c2VyLiBJZiB0aGUgbW9kZWwKLSAgICAgICAq
IGhhc24ndCBiZWVuIHJlcGxhY2VkIHRoZSBwYXRoIHZhbHVlIHdpbGwgc3RpbGwgYmUgYSB2YWxp
ZCBwYXRoIHRvIGxvYWQgdGhlIG1vZGVsLiBQYXNzIHRoaXMgdG8gTG9hZFJlbmRlck1vZGVsX0Fz
eW5jLCBldGMuIHRvIGxvYWQgdGhlCi0gICAgICAgKiBtb2RlbC4gKi8KLSAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKCBjb25zdCBjaGFyICpwY2hSZW5k
ZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hPcmlnaW5hbFBhdGgsIHVpbnQz
Ml90IHVuT3JpZ2luYWxQYXRoTGVuLCB2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciAqcGVFcnJvciAp
ID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhIHJlbmRlciBtb2RlbCBl
cnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UmVuZGVyTW9kZWxFcnJvck5h
bWVGcm9tRW51bSggdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IgKSA9IDA7Ci19OwotCi1z
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklWUlJl
bmRlck1vZGVsc18wMDUiOwotCi19Ci0KLQotLy8gaXZyZXh0ZW5kZWRkaXNwbGF5LmgKLW5hbWVz
cGFjZSB2cgotewotCi0gICAgICAgLyoqIE5PVEU6IFVzZSBvZiB0aGlzIGludGVyZmFjZSBpcyBu
b3QgcmVjb21tZW5kZWQgaW4gcHJvZHVjdGlvbiBhcHBsaWNhdGlvbnMuIEl0IHdpbGwgbm90IHdv
cmsgZm9yIGRpc3BsYXlzIHdoaWNoIHVzZQotICAgICAgICogZGlyZWN0LXRvLWRpc3BsYXkgbW9k
ZS4gQ3JlYXRpbmcgb3VyIG93biB3aW5kb3cgaXMgYWxzbyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
VlIgY29tcG9zaXRvciBhbmQgaXMgbm90IGF2YWlsYWJsZSB3aGVuIHRoZSBjb21wb3NpdG9yIGlz
IHJ1bm5pbmcuICovCi0gICAgICAgY2xhc3MgSVZSRXh0ZW5kZWREaXNwbGF5Ci0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRpb24gdGhh
dCB0aGUgd2luZG93IG5lZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGludDMyX3Qg
KnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBk
cmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50byAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAq
cG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAgICAg
ICAgKiBSZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IGFuZCBvdXRwdXQgaW5kZXggdGhhdCB0aGUg
dXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVycyBhbmQgRW51bU91dHB1dHMKLSAgICAg
ICAgICAgICAgKiB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbiBpbiBEWDEwIGFu
ZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgYm90aCBpbmRpY2VzIHdpbGwgYmUgc2V0IHRvIC0x
LgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91
dHB1dEluZm8oIGludDMyX3QgKnBuQWRhcHRlckluZGV4LCBpbnQzMl90ICpwbkFkYXB0ZXJPdXRw
dXRJbmRleCApID0gMDsKLQotICAgICAgIH07Ci0KLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8w
MDEiOwotCi19Ci0KLQotLy8gaXZydHJhY2tlZGNhbWVyYS5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVZSVHJhY2tlZENhbWVyYQotewotcHVibGljOgotICAgICAgIC8qKiBSZXR1cm5zIGEg
c3RyaW5nIGZvciBhbiBlcnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0Q2Ft
ZXJhRXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVy
cm9yICkgPSAwOwotCi0gICAgICAgLyoqIEZvciBjb252ZW5pZW5jZSwgc2FtZSBhcyB0cmFja2Vk
IHByb3BlcnR5IHJlcXVlc3QgUHJvcF9IYXNDYW1lcmFfQm9vbCAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBIYXNDYW1lcmEoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKnBIYXNDYW1lcmEgKSA9IDA7Ci0KLSAgICAgICAvKiog
R2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhRnJhbWVTaXplKCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0LCB1aW50MzJfdCAqcG5G
cmFtZUJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdnI6
OkhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3RoLCB2cjo6SG1kVmVjdG9yMl90ICpwQ2VudGVyICkg
PSAwOwotCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVy
YVByb2plY3Rpb24oIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIsIGZsb2F0
IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9qZWN0aW9uICkgPSAwOwotCi0gICAgICAg
LyoqIEFjcXVpcmluZyBzdHJlYW1pbmcgc2VydmljZSBwZXJtaXRzIHZpZGVvIHN0cmVhbWluZyBm
b3IgdGhlIGNhbGxlci4gUmVsZWFzaW5nIGhpbnRzIHRoZSBzeXN0ZW0gdGhhdCB2aWRlbyBzZXJ2
aWNlcyBkbyBub3QgbmVlZCB0byBiZSBtYWludGFpbmVkIGZvciB0aGlzIGNsaWVudC4KLSAgICAg
ICAqIElmIHRoZSBjYW1lcmEgaGFzIG5vdCBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLCBhIG9uZSB0
aW1lIHNwaW4gdXAgbWF5IGluY3VyIHNvbWUgYXV0byBleHBvc3VyZSBhcyB3ZWxsIGFzIGluaXRp
YWwgc3RyZWFtaW5nIGZyYW1lIGRlbGF5cy4KLSAgICAgICAqIFRoZSBjYW1lcmEgc2hvdWxkIGJl
IGNvbnNpZGVyZWQgYSBnbG9iYWwgcmVzb3VyY2UgYWNjZXNzaWJsZSBmb3Igc2hhcmVkIGNvbnN1
bXB0aW9uIGJ1dCBub3QgZXhjbHVzaXZlIHRvIGFueSBjYWxsZXIuCi0gICAgICAgKiBUaGUgY2Ft
ZXJhIG1heSBnbyBpbmFjdGl2ZSBkdWUgdG8gbGFjayBvZiBhY3RpdmUgY29uc3VtZXJzIG9yIGhl
YWRzZXQgaWRsZW5lc3MuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIEFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKnBIYW5kbGUgKSA9IDA7
Ci0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0
cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEg
KSA9IDA7Ci0KLSAgICAgICAvKiogQ29waWVzIHRoZSBpbWFnZSBmcmFtZSBpbnRvIGEgY2FsbGVy
J3MgcHJvdmlkZWQgYnVmZmVyLiBUaGUgaW1hZ2UgZGF0YSBpcyBjdXJyZW50bHkgcHJvdmlkZWQg
YXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4KLSAgICAgICAqIEEgY2FsbGVyIGNhbiBw
cm92aWRlIG51bGwgZm9yIHRoZSBmcmFtZWJ1ZmZlciBvciBmcmFtZWhlYWRlciBpZiBub3QgZGVz
aXJlZC4gUmVxdWVzdGluZyB0aGUgZnJhbWUgaGVhZGVyIGZpcnN0LCBmb2xsb3dlZCBieSB0aGUg
ZnJhbWUgYnVmZmVyIGFsbG93cwotICAgICAgICogdGhlIGNhbGxlciB0byBkZXRlcm1pbmUgaWYg
dGhlIGZyYW1lIGFzIGFkdmFuY2VkIHBlciB0aGUgZnJhbWUgaGVhZGVyIHNlcXVlbmNlLiAKLSAg
ICAgICAqIElmIHRoZXJlIGlzIG5vIGZyYW1lIGF2YWlsYWJsZSB5ZXQsIGR1ZSB0byBpbml0aWFs
IGNhbWVyYSBzcGludXAgb3IgcmUtYWN0aXZhdGlvbiwgdGhlIGVycm9yIHdpbGwgYmUgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZS4KLSAgICAgICAqIElkZWFsbHkgYSBjYWxs
ZXIgc2hvdWxkIGJlIHBvbGxpbmcgYXQgfjE2bXMgaW50ZXJ2YWxzICovCi0gICAgICAgdmlydHVh
bCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIoIHZy
OjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBGcmFtZUJ1ZmZlciwgdWludDMyX3QgbkZy
YW1lQnVmZmVyU2l6ZSwgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1l
SGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIEdl
dHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqcFRleHR1cmVCb3VuZHMsIHVpbnQzMl90
ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7IAotCi0gICAgICAgLyoqIEFjY2Vz
cyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRyYWNrZWQgY2FtZXJh
IHN0cmVhbS4KLSAgICAgICAqIFRoZSBjYW1lcmEgZnJhbWUgdHlwZSBWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVW5kaXN0b3J0ZWQgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseSBhcyBhIHNoYXJl
ZCB0ZXh0dXJlLiBJdCBpcyBhbiBpbnRlcmlvciBzdWJyZWdpb24gb2YgdGhlIHNoYXJlZCB0ZXh0
dXJlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQuCi0gICAgICAg
KiBJbnN0ZWFkLCB1c2UgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSgpIHdpdGggVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIHRvIGRldGVybWluZSB0aGUgcHJvcGVyIGludGVy
aW9yIHN1YnJlZ2lvbiBib3VuZHMgYWxvbmcgd2l0aCBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSgpIHdpdGgKLSAgICAgICAqIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0
b3J0ZWQgdG8gcHJvdmlkZSB0aGUgdGV4dHVyZS4gVGhlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZV9NYXhpbXVtVW5kaXN0b3J0ZWQgd2lsbCB5aWVsZCBhbiBpbWFnZSB3aGVyZSB0aGUgaW52YWxp
ZCByZWdpb25zIGFyZSBkZWNvZGVkCi0gICAgICAgKiBieSB0aGUgYWxwaGEgY2hhbm5lbCBoYXZp
bmcgYSB6ZXJvIGNvbXBvbmVudC4gVGhlIHZhbGlkIHJlZ2lvbnMgYWxsIGhhdmUgYSBub24temVy
byBhbHBoYSBjb21wb25lbnQuIFRoZSBzdWJyZWdpb24gYXMgZGVzY3JpYmVkIGJ5IFZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCAKLSAgICAgICAqIGd1YXJhbnRlZXMgYSByZWN0
YW5nbGUgd2hlcmUgYWxsIHBpeGVscyBhcmUgdmFsaWQuICovCi0gICAgICAgdmlydHVhbCB2cjo6
RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKCB2cjo6VHJh
Y2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRDNEMTFEZXZpY2VPclJlc291cmNlLCB2b2lkICoq
cHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFk
ZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLyoqIEFjY2VzcyBhIHNoYXJlZCBHTCB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRy
YWNrZWQgY2FtZXJhIHN0cmVhbSAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1l
cmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0dXJlSWQsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsK
LSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3Ry
ZWFtVGV4dHVyZUdMKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2
cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gaXZyc2NyZWVuc2hvdHMuaAotbmFtZXNwYWNl
IHZyCi17Ci0KLS8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRv
ciAqLwotZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBWUlNjcmVlbnNob3RFcnJv
cl9Ob25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfSW5jb21w
YXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSU2NyZWVu
c2hvdEVycm9yX05vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDIsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfU2Ny
ZWVuc2hvdEFscmVhZHlJblByb2dyZXNzICAgICAgID0gMTA4LAotfTsKLQotLyoqIEFsbG93cyB0
aGUgYXBwbGljYXRpb24gdG8gZ2VuZXJhdGUgc2NyZWVuc2hvdHMgKi8KLWNsYXNzIElWUlNjcmVl
bnNob3RzCi17Ci1wdWJsaWM6Ci0gICAgICAgLyoqIFJlcXVlc3QgYSBzY3JlZW5zaG90IG9mIHRo
ZSByZXF1ZXN0ZWQgdHlwZS4KLSAgICAgICAgKiAgQSByZXF1ZXN0IG9mIHRoZSBWUlNjcmVlbnNo
b3RUeXBlX1N0ZXJlbyB0eXBlIHdpbGwgYWx3YXlzCi0gICAgICAgICogIHdvcmsuIE90aGVyIHR5
cGVzIHdpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGFwcGxpY2F0aW9uCi0gICAgICAgICog
IHN1cHBvcnQuCi0gICAgICAgICogIFRoZSBmaXJzdCBmaWxlIG5hbWUgaXMgZm9yIHRoZSBwcmV2
aWV3IGltYWdlIGFuZCBzaG91bGQgYmUgYQotICAgICAgICAqICByZWd1bGFyIHNjcmVlbnNob3Qg
KGlkZWFsbHkgZnJvbSB0aGUgbGVmdCBleWUpLiBUaGUgc2Vjb25kCi0gICAgICAgICogIGlzIHRo
ZSBWUiBzY3JlZW5zaG90IGluIHRoZSBjb3JyZWN0IGZvcm1hdC4gVGhleSBzaG91bGQgYmUKLSAg
ICAgICAgKiAgaW4gdGhlIHNhbWUgYXNwZWN0IHJhdGlvLiAgRm9ybWF0cyBwZXIgdHlwZToKLSAg
ICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9Nb25vOiB0aGUgVlIgZmlsZW5hbWUgaXMgaWdub3Jl
ZCAoY2FuIGJlCi0gICAgICAgICogIG51bGxwdHIpLCB0aGlzIGlzIGEgbm9ybWFsIGZsYXQgc2lu
Z2xlIHNob3QuCi0gICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvOiAgVGhlIFZSIGlt
YWdlIHNob3VsZCBiZSBhCi0gICAgICAgICogIHNpZGUtYnktc2lkZSB3aXRoIHRoZSBsZWZ0IGV5
ZSBpbWFnZSBvbiB0aGUgbGVmdC4KLSAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFw
OiBUaGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIHNpeCBzcXVhcmUKLSAgICAgICAgKiAgaW1hZ2VzIGNv
bXBvc2l0ZWQgaG9yaXpvbnRhbGx5LgotICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJl
b1Bhbm9yYW1hOiBhYm92ZS9iZWxvdyB3aXRoIGxlZnQgZXllCi0gICAgICAgICogIHBhbm9yYW1h
IGJlaW5nIHRoZSBhYm92ZSBpbWFnZS4gIEltYWdlIGlzIHR5cGljYWxseSBzcXVhcmUKLSAgICAg
ICAgKiAgd2l0aCB0aGUgcGFub3JhbWEgYmVpbmcgMnggaG9yaXpvbnRhbC4KLSAgICAgICAgKiAg
Ci0gICAgICAgICogIE5vdGUgdGhhdCB0aGUgVlIgZGFzaGJvYXJkIHdpbGwgY2FsbCB0aGlzIGZ1
bmN0aW9uIHdoZW4KLSAgICAgICAgKiAgdGhlIHVzZXIgcHJlc3NlcyB0aGUgc2NyZWVuc2hvdCBi
aW5kaW5nIChjdXJyZW50bHkgU3lzdGVtCi0gICAgICAgICogIEJ1dHRvbiArIFRyaWdnZXIpLiAg
SWYgU3RlYW0gaXMgcnVubmluZywgdGhlIGRlc3RpbmF0aW9uCi0gICAgICAgICogIGZpbGUgbmFt
ZXMgd2lsbCBiZSBpbiAlVEVNUCUgYW5kIHdpbGwgYmUgY29waWVkIGludG8KLSAgICAgICAgKiAg
U3RlYW0ncyBzY3JlZW5zaG90IGxpYnJhcnkgZm9yIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uCi0g
ICAgICAgICogIG9uY2UgU3VibWl0U2NyZWVuc2hvdCgpIGlzIGNhbGxlZC4KLSAgICAgICAgKiAg
SWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRoZSBwYXRocyB3aWxsIGJlIGluIHRoZSB1c2VyJ3MK
LSAgICAgICAgKiAgZG9jdW1lbnRzIGZvbGRlciB1bmRlciBEb2N1bWVudHNcU3RlYW1WUlxTY3Jl
ZW5zaG90cy4KLSAgICAgICAgKiAgT3RoZXIgVlIgYXBwbGljYXRpb25zIGNhbiBjYWxsIHRoaXMg
dG8gaW5pdGlhdGUgYQotICAgICAgICAqICBzY3JlZW5zaG90IG91dHNpZGUgb2YgdXNlciBjb250
cm9sLgotICAgICAgICAqICBUaGUgZGVzdGluYXRpb24gZmlsZSBuYW1lcyBkbyBub3QgbmVlZCBh
biBleHRlbnNpb24sCi0gICAgICAgICogIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgY29ycmVj
dCBvbmUgZm9yIHRoZSBmb3JtYXQKLSAgICAgICAgKiAgd2hpY2ggaXMgY3VycmVudGx5IC5wbmcu
ICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFJlcXVlc3RTY3JlZW5z
aG90KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVW
UlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFByZXZpZXdGaWxlbmFtZSwgY29u
c3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsKLQotICAgICAgIC8qKiBDYWxsZWQgYnkgdGhl
IHJ1bm5pbmcgVlIgYXBwbGljYXRpb24gdG8gaW5kaWNhdGUgdGhhdCBpdAotICAgICAgICAqICB3
aXNoZXMgdG8gYmUgaW4gY2hhcmdlIG9mIHNjcmVlbnNob3RzLiAgSWYgdGhlCi0gICAgICAgICog
IGFwcGxpY2F0aW9uIGRvZXMgbm90IGNhbGwgdGhpcywgdGhlIENvbXBvc2l0b3Igd2lsbCBvbmx5
Ci0gICAgICAgICogIHN1cHBvcnQgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gc2NyZWVuc2hvdHMg
dGhhdCB3aWxsIGJlCi0gICAgICAgICogIGNhcHR1cmVkIHdpdGhvdXQgbm90aWZpY2F0aW9uIHRv
IHRoZSBydW5uaW5nIGFwcC4KLSAgICAgICAgKiAgT25jZSBob29rZWQgeW91ciBhcHBsaWNhdGlv
biB3aWxsIHJlY2VpdmUgYQotICAgICAgICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2
ZW50IHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUKLSAgICAgICAgKiAgYnV0dG9ucyB0byB0YWtl
IGEgc2NyZWVuc2hvdC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3Ig
SG9va1NjcmVlbnNob3QoIFZSX0FSUkFZX0NPVU5UKCBudW1UeXBlcyApIGNvbnN0IHZyOjpFVlJT
Y3JlZW5zaG90VHlwZSAqcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMgKSA9IDA7Ci0KLSAg
ICAgICAvKiogV2hlbiB5b3VyIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGEKLSAgICAgICAgKiAgVlJF
dmVudF9SZXF1ZXN0U2NyZWVuc2hvdCBldmVudCwgY2FsbCB0aGVzZSBmdW5jdGlvbnMgdG8gZ2V0
Ci0gICAgICAgICogIHRoZSBkZXRhaWxzIG9mIHRoZSBzY3JlZW5zaG90IHJlcXVlc3QuICovCi0g
ICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZSU2Ny
ZWVuc2hvdEVycm9yICpwRXJyb3IgKSA9IDA7Ci0KLSAgICAgICAvKiogR2V0IHRoZSBmaWxlbmFt
ZSBmb3IgdGhlIHByZXZpZXcgb3IgdnIgaW1hZ2UgKHNlZQotICAgICAgICAqICB2cjo6RVNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lcykuICBUaGUgcmV0dXJuIHZhbHVlIGlzCi0gICAgICAgICog
IHRoZSBzaXplIG9mIHRoZSBzdHJpbmcuICAgKi8KLSAgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3Jl
ZW5zaG90SGFuZGxlLCB2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1l
VHlwZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxl
bmFtZSwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgLyoq
IENhbGwgdGhpcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgdGFraW5nIHRoZSBzY3JlZW4gc2hvdAot
ICAgICAgICAqICB3aWxsIHRha2UgbW9yZSB0aGFuIGEgZmV3IG1zIHByb2Nlc3NpbmcuIFRoaXMg
d2lsbCByZXN1bHQKLSAgICAgICAgKiAgaW4gYW4gb3ZlcmxheSBiZWluZyBwcmVzZW50ZWQgdGhh
dCBzaG93cyBhIGNvbXBsZXRpb24KLSAgICAgICAgKiAgYmFyLiAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlNjcmVlbnNob3RFcnJvciBVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MoIHZyOjpTY3Jl
ZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyApID0gMDsK
LQotICAgICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciB0byB0YWtlIGFuIGludGVybmFsIHNj
cmVlbnNob3Qgb2YKLSAgICAgICAgKiAgdHlwZSBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlby4gSXQg
d2lsbCB0YWtlIHRoZSBjdXJyZW50Ci0gICAgICAgICogIHN1Ym1pdHRlZCBzY2VuZSB0ZXh0dXJl
cyBvZiB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBhbmQKLSAgICAgICAgKiAgd3JpdGUgdGhlbSBp
bnRvIHRoZSBwcmV2aWV3IGltYWdlIGFuZCBhIHNpZGUtYnktc2lkZSBmaWxlCi0gICAgICAgICog
IGZvciB0aGUgVlIgaW1hZ2UuCi0gICAgICAgICogIFRoaXMgaXMgc2ltaWxhciB0byByZXF1ZXN0
IHNjcmVlbnNob3QsIGJ1dCBkb2Vzbid0IGV2ZXIKLSAgICAgICAgKiAgdGFsayB0byB0aGUgYXBw
bGljYXRpb24sIGp1c3QgdGFrZXMgdGhlIHNob3QgYW5kIHN1Ym1pdHMuICovCi0gICAgICAgdmly
dHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFRha2VTdGVyZW9TY3JlZW5zaG90KCB2cjo6U2Ny
ZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY29uc3QgY2hhciAqcGNoUHJl
dmlld0ZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAwOwotCi0gICAgICAg
LyoqIFN1Ym1pdCB0aGUgY29tcGxldGVkIHNjcmVlbnNob3QuICBJZiBTdGVhbSBpcyBydW5uaW5n
Ci0gICAgICAgICogIHRoaXMgd2lsbCBjYWxsIGludG8gdGhlIFN0ZWFtIGNsaWVudCBhbmQgdXBs
b2FkIHRoZQotICAgICAgICAqICBzY3JlZW5zaG90IHRvIHRoZSBzY3JlZW5zaG90cyBzZWN0aW9u
IG9mIHRoZSBsaWJyYXJ5IGZvcgotICAgICAgICAqICB0aGUgcnVubmluZyBhcHBsaWNhdGlvbi4g
IElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGlzCi0gICAgICAgICogIGZ1bmN0aW9uIHdpbGwg
ZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB0byB0aGUgdXNlciB0aGF0IHRoZQotICAgICAgICAqICBz
Y3JlZW5zaG90IHdhcyB0YWtlbi4gVGhlIHBhdGhzIHNob3VsZCBiZSBmdWxsIHBhdGhzIHdpdGgK
LSAgICAgICAgKiAgZXh0ZW5zaW9ucy4KLSAgICAgICAgKiAgRmlsZSBwYXRocyBzaG91bGQgYmUg
YWJzb2x1dGUgaW5jbHVkaW5nIGV4dGVuc2lvbnMuCi0gICAgICAgICogIHNjcmVlbnNob3RIYW5k
bGUgY2FuIGJlIGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCBpZiB0aGlzCi0gICAgICAgICog
IHdhcyBhIG5ldyBzaG90IHRha2luZyBieSB0aGUgYXBwIHRvIGJlIHNhdmVkIGFuZCBub3QKLSAg
ICAgICAgKiAgaW5pdGlhdGVkIGJ5IGEgdXNlciAoYWNoaWV2ZW1lbnQgZWFybmVkIG9yIHNvbWV0
aGluZykgKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgU3VibWl0U2Ny
ZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZS
U2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoU291cmNlUHJldmlld0ZpbGVuYW1l
LCBjb25zdCBjaGFyICpwY2hTb3VyY2VWUkZpbGVuYW1lICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3Rz
XzAwMSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJyZXNvdXJjZXMuaAotbmFt
ZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUlJlc291cmNlcwotewotcHVibGljOgotCi0gICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gU2hhcmVk
IFJlc291cmNlIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgIC8qKiBMb2FkcyB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGludG8g
dGhlIHByb3ZpZGVkIGJ1ZmZlciBpZiBsYXJnZSBlbm91Z2guCi0gICAgICAgKiBSZXR1cm5zIHRo
ZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgcmVxdWlyZWQgdG8gaG9sZCB0aGUgc3BlY2lm
aWVkIHJlc291cmNlLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgTG9hZFNoYXJlZFJlc291
cmNlKCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKnBjaEJ1ZmZlciwgdWludDMy
X3QgdW5CdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAvKiogUHJvdmlkZXMgdGhlIGZ1bGwgcGF0
aCB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlLiBSZXNvdXJjZSBuYW1lcyBjYW4gaW5jbHVkZSBu
YW1lZCBkaXJlY3RvcmllcyBmb3IKLSAgICAgICAqIGRyaXZlcnMgYW5kIG90aGVyIHRoaW5ncywg
YW5kIHRoaXMgcmVzb2x2ZXMgYWxsIG9mIHRob3NlIGFuZCByZXR1cm5zIHRoZSBhY3R1YWwgcGh5
c2ljYWwgcGF0aC4gCi0gICAgICAgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkgaXMgdGhlIHN1
YmRpcmVjdG9yeSBvZiByZXNvdXJjZXMgdG8gbG9vayBpbi4gKi8KLSAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldFJlc291cmNlRnVsbFBhdGgoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlTmFtZSwg
Y29uc3QgY2hhciAqcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFyICpwY2hQYXRoQnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3QgSVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2VzXzAwMSI7Ci0KLQotfQot
Ly8gaXZyZHJpdmVybWFuYWdlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQotY2xhc3MgSVZSRHJpdmVy
TWFuYWdlcgotewotcHVibGljOgotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyQ291
bnQoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZyBudWxsLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyTmFt
ZSggdnI6OkRyaXZlcklkX3QgbkRyaXZlciwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVl
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiA9ICJJVlJEcml2ZXJNYW5hZ2VyXzAwMSI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gRW5kCi0KLSNlbmRpZiAvLyBfT1BFTlZSX0FQ
SQotCi0KLW5hbWVzcGFjZSB2cgotewotICAgICAgIC8qKiBGaW5kcyB0aGUgYWN0aXZlIGluc3Rh
bGxhdGlvbiBvZiB0aGUgVlIgQVBJIGFuZCBpbml0aWFsaXplcyBpdC4gVGhlIHByb3ZpZGVkIHBh
dGggbXVzdCBiZSBhYnNvbHV0ZQotICAgICAgICogb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkuIFRoZXNlIGFyZSB0aGUgbG9jYWwgaW5zdGFsbCB2ZXJzaW9ucyBv
ZiB0aGUgZXF1aXZhbGVudAotICAgICAgICogZnVuY3Rpb25zIGluIHN0ZWFtdnIuaCBhbmQgd2ls
bCB3b3JrIHdpdGhvdXQgYSBsb2NhbCBTdGVhbSBpbnN0YWxsLgotICAgICAgICoKLSAgICAgICAq
IFRoaXMgcGF0aCBpcyB0byB0aGUgInJvb3QiIG9mIHRoZSBWUiBBUEkgaW5zdGFsbC4gVGhhdCdz
IHRoZSBkaXJlY3Rvcnkgd2l0aAotICAgICAgICogdGhlICJkcml2ZXJzIiBkaXJlY3RvcnkgYW5k
IGEgcGxhdGZvcm0gKGkuZS4gIndpbjMyIikgZGlyZWN0b3J5IGluIGl0LCBub3QgdGhlIGRpcmVj
dG9yeSB3aXRoIHRoZSBETEwgaXRzZWxmLgotICAgICAgICoKLSAgICAgICAqIHBTdGFydHVwSW5m
byBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4KLSAgICAgICAqLwotICAgICAgIGlubGluZSBJ
VlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25U
eXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyA9IG51bGxwdHIg
KTsKLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpOwotCi0gICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBITUQgYXR0YWNoZWQuIFRoaXMgY2hlY2sgaXMg
YXMgbGlnaHR3ZWlnaHQgYXMgcG9zc2libGUgYW5kCi0gICAgICAgKiBjYW4gYmUgY2FsbGVkIG91
dHNpZGUgb2YgVlJfSW5pdC9WUl9TaHV0ZG93bi4gSXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBhbiBh
cHBsaWNhdGlvbiB3YW50cwotICAgICAgICogdG8ga25vdyBpZiBpbml0aWFsaXppbmcgVlIgaXMg
YSBwb3NzaWJpbGl0eSBidXQgaXNuJ3QgcmVhZHkgdG8gdGFrZSB0aGF0IHN0ZXAgeWV0LgotICAg
ICAgICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNIbWRQcmVz
ZW50KCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGltZSBp
cyBpbnN0YWxsZWQuICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJf
SXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB3aGVyZSB0aGUgT3Bl
blZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBj
aGFyICpWUl9DQUxMVFlQRSBWUl9SdW50aW1lUGF0aCgpOwotCi0gICAgICAgLyoqIFJldHVybnMg
dGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUgZm9yIGFuIEVWUkluaXRFcnJvci4gVGhpcyBmdW5j
dGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2YgVlJfSW5pdCgpL1ZSX1NodXRkb3duKCkuICov
Ci0gICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX0dldFZSSW5p
dEVycm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOwotCi0gICAgICAgLyoqIFJldHVy
bnMgYW4gRW5nbGlzaCBzdHJpbmcgZm9yIGFuIEVWUkluaXRFcnJvci4gQXBwbGljYXRpb25zIHNo
b3VsZCBjYWxsIFZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2wgaW5zdGVhZCBhbmQKLSAgICAgICAq
IHVzZSB0aGF0IGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlaXIgb3duIGxvY2FsaXplZCBlcnJvciBt
ZXNzYWdlLiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0KCkv
VlJfU2h1dGRvd24oKS4gKi8KLSAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FM
TFRZUEUgVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9y
IGVycm9yICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVj
aWZpZWQgdmVyc2lvbi4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgVlJfSW5pdC4g
VGhlCi0gICAgICAgKiBwb2ludGVyIHJldHVybmVkIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3du
IGlzIGNhbGxlZC4KLSAgICAgICAqLwotICAgICAgIFZSX0lOVEVSRkFDRSB2b2lkICpWUl9DQUxM
VFlQRSBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJz
aW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBSZXR1cm5zIHdoZXRo
ZXIgdGhlIGludGVyZmFjZSBvZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24gZXhpc3RzLgotICAgICAg
ICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24gKTsKLQotICAgICAg
IC8qKiBSZXR1cm5zIGEgdG9rZW4gdGhhdCByZXByZXNlbnRzIHdoZXRoZXIgdGhlIFZSIGludGVy
ZmFjZSBoYW5kbGVzIG5lZWQgdG8gYmUgcmVsb2FkZWQgKi8KLSAgICAgICBWUl9JTlRFUkZBQ0Ug
dWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfR2V0SW5pdFRva2VuKCk7Ci0KLSAgICAgICAvLyBUaGVz
ZSB0eXBlZGVmcyBhbGxvdyBvbGQgZW51bSBuYW1lcyBmcm9tIFNESyAwLjkuMTEgdG8gYmUgdXNl
ZCBpbiBhcHBsaWNhdGlvbnMuCi0gICAgICAgLy8gVGhleSB3aWxsIGdvIGF3YXkgaW4gdGhlIGZ1
dHVyZS4KLSAgICAgICB0eXBlZGVmIEVWUkluaXRFcnJvciBIbWRFcnJvcjsKLSAgICAgICB0eXBl
ZGVmIEVWUkV5ZSBIbWRfRXllOwotICAgICAgIHR5cGVkZWYgRUNvbG9yU3BhY2UgQ29sb3JTcGFj
ZTsKLSAgICAgICB0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3MgVHJhY2tlZERldmljZUNsYXNzOwotICAg
ICAgIHR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLSAgICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVBy
b3BlcnR5OwotICAgICAgIHR5cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQcm9w
ZXJ0eUVycm9yOwotICAgICAgIHR5cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190
OwotICAgICAgIHR5cGVkZWYgRVZSU3RhdGUgVlJTdGF0ZV90OwotICAgICAgIHR5cGVkZWYgRUNv
bGxpc2lvbkJvdW5kc1N0eWxlIENvbGxpc2lvbkJvdW5kc1N0eWxlX3Q7Ci0gICAgICAgdHlwZWRl
ZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci0gICAgICAgdHlwZWRlZiBFVlJGaXJt
d2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUkNvbXBvc2l0b3JF
cnJvciBWUkNvbXBvc2l0b3JFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJv
ciBWUlNjcmVlbnNob3RzRXJyb3I7Ci0KLSAgICAgICBpbmxpbmUgdWludDMyX3QgJlZSVG9rZW4o
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RhdGljIHVpbnQzMl90IHRva2VuOwotICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkNv
bnRleHQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSQ29u
dGV4dCgpIHsgQ2xlYXIoKTsgfQotICAgICAgICAgICAgICB2b2lkIENsZWFyKCk7Ci0KLSAgICAg
ICAgICAgICAgaW5saW5lIHZvaWQgQ2hlY2tDbGVhcigpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIGlmICggVlJUb2tlbigpICE9IFZSX0dldEluaXRUb2tlbigpICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGVhcigp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSVG9rZW4oKSA9IFZSX0dldEluaXRUb2tl
bigpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgSVZSU3lzdGVtICpWUlN5c3RlbSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
eXN0ZW0gPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlN5c3RlbSA9ICggSVZSU3lzdGVtICogKVZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIElWUlN5c3RlbV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgSVZSQ2hhcGVyb25lICpWUkNoYXBlcm9uZSgpCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJDaGFwZXJvbmUgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZSA9ICggSVZSQ2hhcGVy
b25lICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJDaGFwZXJvbmU7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJD
aGFwZXJvbmVTZXR1cCAqVlJDaGFwZXJvbmVTZXR1cCgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSAoIElWUkNoYXBlcm9u
ZVNldHVwICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZVNldHVwX1ZlcnNp
b24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZVNldHVwOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgSVZSQ29tcG9zaXRvciAqVlJDb21wb3NpdG9yKCkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAg
aWYgKCBtX3BWUkNvbXBvc2l0b3IgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSAoIElWUkNvbXBvc2l0b3Ig
KiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCAmZUVycm9y
ICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9wVlJDb21wb3NpdG9yOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZST3Zl
cmxheSAqVlJPdmVybGF5KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUk92ZXJsYXkgPT0g
bnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3BWUk92ZXJsYXkgPSAoIElWUk92ZXJsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
T3ZlcmxheV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJPdmVybGF5OwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgSVZSUmVzb3VyY2VzICpWUlJlc291cmNlcygpCi0gICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAg
ICAgIGlmICggbV9wVlJSZXNvdXJjZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IChJVlJSZXNvdXJjZXMg
KilWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJSZXNvdXJjZXNfVmVyc2lvbiwgJmVFcnJvciAp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
cFZSUmVzb3VyY2VzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSU2NyZWVu
c2hvdHMgKlZSU2NyZWVuc2hvdHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2NyZWVu
c2hvdHMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gKCBJVlJTY3JlZW5zaG90cyAqIClWUl9HZXRHZW5l
cmljSW50ZXJmYWNlKCBJVlJTY3JlZW5zaG90c19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTY3JlZW5z
aG90czsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAq
VlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBD
aGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSUmVuZGVyTW9kZWxz
ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJSZW5kZXJNb2RlbHMgPSAoIElWUlJlbmRlck1vZGVscyAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9k
ZWxzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNwbGF5
ICpWUkV4dGVuZGVkRGlzcGxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJFeHRlbmRl
ZERpc3BsYXkgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9ICggSVZSRXh0ZW5kZWREaXNwbGF5ICog
KVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBJVlJTZXR0aW5ncyAqVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
ZXR0aW5ncyA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSAoIElWUlNldHRpbmdzICogKVZSX0dldEdlbmVyaWNJ
bnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdzOwotICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSQXBwbGljYXRpb25zICpWUkFwcGxpY2F0
aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbHB0
ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFw
cGxpY2F0aW9ucyA9ICggSVZSQXBwbGljYXRpb25zICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkFwcGxpY2F0aW9uc19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICpWUlRyYWNrZWRD
YW1lcmEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSVHJhY2tlZENhbWVyYSA9PSBudWxs
cHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZS
VHJhY2tlZENhbWVyYSA9ICggSVZSVHJhY2tlZENhbWVyYSAqIClWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlRyYWNrZWRDYW1lcmE7
Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJEcml2ZXJNYW5hZ2VyICpWUkRy
aXZlck1hbmFnZXIoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoICFtX3BWUkRyaXZlck1hbmFnZXIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJNYW5hZ2VyID0gKCBJVlJEcml2ZXJNYW5hZ2VyICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJpdmVyTWFuYWdlcjsKLSAg
ICAgICAgICAgICAgfQotCi0gICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgICAgSVZSU3lzdGVt
ICAgICAgICAgICAgICAgICAgICAgKm1fcFZSU3lzdGVtOwotICAgICAgICAgICAgICBJVlJDaGFw
ZXJvbmUgICAgICAgICAgICAgICptX3BWUkNoYXBlcm9uZTsKLSAgICAgICAgICAgICAgSVZSQ2hh
cGVyb25lU2V0dXAgICAgICAgKm1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIElW
UkNvbXBvc2l0b3IgICAgICAgICAgICAgICptX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAg
IElWUk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICAqbV9wVlJPdmVybGF5OwotICAgICAgICAg
ICAgICBJVlJSZXNvdXJjZXMgICAgICAgICAgICAgICptX3BWUlJlc291cmNlczsKLSAgICAgICAg
ICAgICAgSVZSUmVuZGVyTW9kZWxzICAgICAgICAgICAgICAqbV9wVlJSZW5kZXJNb2RlbHM7Ci0g
ICAgICAgICAgICAgIElWUkV4dGVuZGVkRGlzcGxheSAgICAgICAqbV9wVlJFeHRlbmRlZERpc3Bs
YXk7Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgKm1fcFZS
U2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAgICAgICAgICAgICAgKm1f
cFZSQXBwbGljYXRpb25zOwotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICAgICAgICpt
X3BWUlRyYWNrZWRDYW1lcmE7Ci0gICAgICAgICAgICAgIElWUlNjcmVlbnNob3RzICAgICAgICAg
ICAgICAqbV9wVlJTY3JlZW5zaG90czsKLSAgICAgICAgICAgICAgSVZSRHJpdmVyTWFuYWdlciAg
ICAgICAqbV9wVlJEcml2ZXJNYW5hZ2VyOwotICAgICAgIH07Ci0KLSAgICAgICBpbmxpbmUgQ09w
ZW5WUkNvbnRleHQgJk9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgc3RhdGljIHZvaWQgKmN0eFsgc2l6ZW9mKCBDT3BlblZSQ29udGV4dCApIC8g
c2l6ZW9mKCB2b2lkICogKSBdOwotICAgICAgICAgICAgICByZXR1cm4gKiggQ09wZW5WUkNvbnRl
eHQgKiApY3R4OyAvLyBieXBhc3MgemVyby1pbml0IGNvbnN0cnVjdG9yCi0gICAgICAgfQotCi0g
ICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfQ0FMTFRZUEUgVlJTeXN0ZW0oKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTeXN0ZW0oKTsgfQotICAgICAgIGlubGlu
ZSBJVlJDaGFwZXJvbmUgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lKCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lKCk7IH0KLSAgICAgICBpbmxpbmUg
SVZSQ2hhcGVyb25lU2V0dXAgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lU2V0dXAoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDaGFwZXJvbmVTZXR1cCgpOyB9Ci0g
ICAgICAgaW5saW5lIElWUkNvbXBvc2l0b3IgKlZSX0NBTExUWVBFIFZSQ29tcG9zaXRvcigpIHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNvbXBvc2l0b3IoKTsgfQot
ICAgICAgIGlubGluZSBJVlJPdmVybGF5ICpWUl9DQUxMVFlQRSBWUk92ZXJsYXkoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJPdmVybGF5KCk7IH0KLSAgICAgICBp
bmxpbmUgSVZSU2NyZWVuc2hvdHMgKlZSX0NBTExUWVBFIFZSU2NyZWVuc2hvdHMoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTY3JlZW5zaG90cygpOyB9Ci0gICAg
ICAgaW5saW5lIElWUlJlbmRlck1vZGVscyAqVlJfQ0FMTFRZUEUgVlJSZW5kZXJNb2RlbHMoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZW5kZXJNb2RlbHMoKTsg
fQotICAgICAgIGlubGluZSBJVlJBcHBsaWNhdGlvbnMgKlZSX0NBTExUWVBFIFZSQXBwbGljYXRp
b25zKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQXBwbGljYXRp
b25zKCk7IH0KLSAgICAgICBpbmxpbmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGlu
Z3MoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTZXR0aW5ncygp
OyB9Ci0gICAgICAgaW5saW5lIElWUlJlc291cmNlcyAqVlJfQ0FMTFRZUEUgVlJSZXNvdXJjZXMo
KSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZXNvdXJjZXMoKTsg
fQotICAgICAgIGlubGluZSBJVlJFeHRlbmRlZERpc3BsYXkgKlZSX0NBTExUWVBFIFZSRXh0ZW5k
ZWREaXNwbGF5KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRXh0
ZW5kZWREaXNwbGF5KCk7IH0KLSAgICAgICBpbmxpbmUgSVZSVHJhY2tlZENhbWVyYSAqVlJfQ0FM
TFRZUEUgVlJUcmFja2VkQ2FtZXJhKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29u
dGV4dCgpLlZSVHJhY2tlZENhbWVyYSgpOyB9Ci0gICAgICAgaW5saW5lIElWUkRyaXZlck1hbmFn
ZXIgKlZSX0NBTExUWVBFIFZSRHJpdmVyTWFuYWdlcigpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQoKS5WUkRyaXZlck1hbmFnZXIoKTsgfQotCi0gICAgICAgaW5saW5lIHZv
aWQgQ09wZW5WUkNvbnRleHQ6OkNsZWFyKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIG1fcFZS
U3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJPdmVy
bGF5ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG51bGxwdHI7Ci0gICAgICAg
ICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUkFwcGxp
Y2F0aW9ucyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENhbWVyYSA9IG51
bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSUmVzb3VyY2VzID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSRHJp
dmVyTWFuYWdlciA9IG51bGxwdHI7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIFZSX0lOVEVS
RkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3Ig
KnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFy
ICpwU3RhcnR1cEluZm8gKTsKLSAgICAgICBWUl9JTlRFUkZBQ0Ugdm9pZCBWUl9DQUxMVFlQRSBW
Ul9TaHV0ZG93bkludGVybmFsKCk7Ci0KLSAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0
YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFuZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIGlu
bGluZSBJVlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGlj
YXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApCi0g
ICAgICAgewotICAgICAgICAgICAgICBJVlJTeXN0ZW0gKnBWUlN5c3RlbSA9IG51bGxwdHI7Ci0K
LSAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgVlJUb2tl
bigpID0gVlJfSW5pdEludGVybmFsMiggJmVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgcFN0YXJ0
dXBJbmZvICk7Ci0gICAgICAgICAgICAgIENPcGVuVlJDb250ZXh0ICZjdHggPSBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVDb250ZXh0KCk7Ci0gICAgICAgICAgICAgIGN0eC5DbGVhcigpOwotCi0gICAg
ICAgICAgICAgIGlmICggZUVycm9yID09IFZSSW5pdEVycm9yX05vbmUgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KCBJVlJTeXN0ZW1fVmVyc2lvbiApICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwVlJTeXN0ZW0gPSBWUlN5c3RlbSgpOwotICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlRXJyb3IgPSBWUkluaXRFcnJvcl9Jbml0X0lu
dGVyZmFjZU5vdEZvdW5kOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICAgICAgICAgICAgICAgICpw
ZUVycm9yID0gZUVycm9yOwotICAgICAgICAgICAgICByZXR1cm4gcFZSU3lzdGVtOwotICAgICAg
IH0KLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUl9TaHV0ZG93bkludGVybmFsKCk7Ci0gICAgICAgfQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuY3MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworKysgL2Rldi9udWxsCkBAIC0x
LDQ3ODYgKzAsMCBAQAotLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24s
IEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IFRo
aXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBPcGVuVlIg
aW50ZXJmYWNlcwotLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBp
dC4KLS8vCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXVzaW5nIFN5c3RlbTsKLXVzaW5nIFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKLXVzaW5nIFZhbHZlLlZSOwotCi1uYW1lc3Bh
Y2UgVmFsdmUuVlIKLXsKLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldpZHRoLCBy
ZWYgdWludCBwbkhlaWdodCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXpl
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUgZUV5ZSwg
ZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1hdHJpeCBH
ZXRQcm9qZWN0aW9uTWF0cml4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCByZWYgZmxv
YXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZsb2F0IGZV
LCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRp
bmF0ZXMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9uOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVUb0hlYWRU
cmFuc2Zvcm0oRVZSRXllIGVFeWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9ybSBHZXRF
eWVUb0hlYWRUcmFuc2Zvcm07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMs
IHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxhc3RWc3lu
YyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVySW5kZXgg
R2V0RDNEOUFkYXB0ZXJJbmRleDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzRGlzcGxheU9u
RGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVza3RvcCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3Rl
ZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtd
IHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERldmljZVRv
QWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Qb3NlIFJl
c2V0U2VhdGVkWmVyb1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1h
dHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3Nl
KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bv
c2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1plcm9Qb3Nl
VG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJz
b2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNz
IGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50IHVuUmVs
YXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tlZERldmlj
ZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzczsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwgX0dldFRy
YWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJh
Y2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWw7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3JtKHJlZiBU
cmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBw
VHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShFVHJh
Y2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERldmlj
ZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxl
clJvbGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29udHJvbGxl
clJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZp
Y2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgg
R2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZpY2VDbGFz
cyh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFzcyBHZXRU
cmFja2VkRGV2aWNlQ2xhc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lz
VHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVy
dHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tlZERldmlj
ZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUlu
ZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0VWlu
dDY0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2VkUHJv
cGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1
bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5
IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Q
b2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCwgcmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Qb2xsTmV4
dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVudFR5
cGUgZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVudFR5cGVO
YW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRlbkFyZWFN
ZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNoOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGUodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRy
b2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbnRy
b2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZlcnNl
T3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXpl
LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVsc2UodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1cmF0aW9u
TWljcm9TZWMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGljUHVsc2U7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9uSWROYW1l
RnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCdXR0b25JZE5hbWVG
cm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oRVZSQ29u
dHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4aXNUeXBl
TmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZWxlYXNl
SW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1c0NhcHR1
cmVkQnlBbm90aGVyUHJvY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWlu
dCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaFJlcXVl
c3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZpcm13YXJl
VXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJlVXBkYXRl
IFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1aXRf
RXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tu
b3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsKLQotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElW
UkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
R2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQgcG5XaWR0
aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRXaW5kb3dC
b3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5ZU91dHB1
dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwgcmVmIHVp
bnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1dFZpZXdw
b3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCByZWYgaW50
IHBuQWRhcHRlck91dHB1dEluZGV4KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBHZXREWEdJ
T3V0cHV0SW5mbzsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
Ci1wdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tlZENh
bWVyYUVycm9yIGVDYW1lcmFFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmljZUluZGV4
LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJhOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENh
bWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwgcmVmIHVp
bnQgcG5GcmFtZUJ1ZmZlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBHZXRDYW1l
cmFGcmFtZVNpemU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBGb2NhbExl
bmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJbnRyaW5z
aWNzIEdldENhbWVyYUludHJpbnNpY3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZpY2VJ
bmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFy
LCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVvU3RyZWFt
aW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vydmlj
ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9y
IF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJhKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVhbWluZ1Nl
cnZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVmZmVyLCB1
aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
cEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3Ry
ZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVmIHVpbnQg
cG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4dHVy
ZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDExU2hh
ZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFt
ZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1
cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVhc2VWaWRl
b1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1cmVJZCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0cmVhbVRl
eHR1cmVHTDsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1w
dWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucwotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChzdHJpbmcg
cGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3ZlQXBwbGlj
YXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3Q7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRpb25JbnN0
YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3RhbGxlZCBJ
c0FwcGxpY2F0aW9uSW5zdGFsbGVkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Db3VudCBH
ZXRBcHBsaWNhdGlvbkNvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJB
cHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFwcGxpY2F0
aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLCB1aW50
IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXggR2V0
QXBwbGljYXRpb25LZXlCeUluZGV4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Q
cm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4p
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRpb25LZXlC
eVByb2Nlc3NJZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24o
c3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4sIE91dF0g
QXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xhdW5jaFRl
bXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRp
b25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWlt
ZVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJy
b3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJpbmcg
cGNoQXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxBcHBsaWNh
dGlvbkxhdW5jaDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNo
QXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGljYXRpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uUHJv
Y2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvY2Vzc0lk
IEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtIEdl
dEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBwY2hBcHBL
ZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVy
TGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNh
dGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlCb29s
KHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCByZWYg
RVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3Bl
cnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3RyaW5nIHBj
aEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJBcHBsaWNh
dGlvbkVycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQg
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9y
IF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LCBzdHJp
bmcgcGNoTWltZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBl
IFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcg
cGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJM
ZW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERlZmF1bHRB
cHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBwS2V5LCBz
dHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmluZyBw
Y2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZm
ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0QXBwbGlj
YXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRsZSwgc3Ry
aW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxhdW5jaEFy
Z3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBsaWNhdGlv
bihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIF9H
ZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNp
dGlvblN0YXRlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlv
bkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3JtQXBwbGlj
YXRpb25QcmVsYXVuY2hDaGVjazsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50
UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RyYW5z
aXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1l
RnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzUXVpdFVz
ZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkIElz
UXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNoQmlu
YXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJlY3Rvcnkp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nlc3M7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZVByb2Nl
c3NJZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50U2NlbmVQ
cm9jZXNzSWQ7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNp
emVYLCByZWYgZmxvYXQgcFNpemVaKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0UGxheUFy
ZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5QXJl
YVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3QgR2V0UGxh
eUFyZWFSZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxvYWRJ
bmZvKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3IpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9y
QXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVE
aXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRC
b3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2libGUgQXJl
Qm91bmRzVmlzaWJsZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9y
Y2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zpc2libGUg
Rm9yY2VCb3VuZHNWaXNpYmxlOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJvbmVDb25m
aWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1pdFdvcmtp
bmdDb3B5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZlcnRXb3Jr
aW5nQ29weSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdDb3B5Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxheUFyZWFT
aXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdvcmtp
bmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90
IHJlY3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1BsYXlBcmVh
UmVjdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgcmVm
IHVpbnQgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5n
UGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2lu
Z1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4sIE91
dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Jl
bG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Jl
bG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1k
TWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBU
YWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdz
SW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdDb3VudCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVm
ZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91bmRz
SW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5ndGgpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoc3Ry
aW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7Ci0KLX0KLQotW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGljIHN0cnVjdCBJVlJDb21wb3NpdG9yCi17
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1NwYWNlKEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5nU3BhY2Ug
U2V0VHJhY2tpbmdTcGFjZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFja2lu
Z1NwYWNlIEdldFRyYWNraW5nU3BhY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2VkRGV2aWNl
UG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBb
SW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50IHVuR2Ft
ZVBvc2VBcnJheUNvdW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2VzOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldExhc3RQ
b3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVp
bnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3Rb
XSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
TGFzdFBvc2VzIEdldExhc3RQb3NlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50
IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYg
VHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldExhc3RQb3Nl
Rm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1N1Ym1p
dChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVyZUJvdW5k
c190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3VibWl0
IFN1Ym1pdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xlYXJMYXN0
U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBDbGVhckxh
c3RTdWJtaXR0ZWRGcmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
UG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBvc3RQcmVz
ZW50SGFuZG9mZjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RnJh
bWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1bkZyYW1l
c0Fnbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGlt
aW5ncyBHZXRGcmFtZVRpbWluZ3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGZs
b2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVSZW1haW5p
bmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRz
IHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxhdGl2ZVN0
YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVl
biwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
RmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywgYm9vbCBi
RmFkZUluKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDdXJy
ZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0luLCBPdXRd
IFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0
U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhclNreWJv
eE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Db21wb3NpdG9y
QnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0
b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1aXQgQ29t
cG9zaXRvclF1aXQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzRnVs
bHNjcmVlbigpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vzcygp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2NlbmVGb2N1
c1Byb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldExhc3RG
cmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFzdEZyYW1l
UmVuZGVyZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhblJlbmRl
clNjZW5lKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IaWRlTWlycm9y
V2luZG93IEhpZGVNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2luZG93Vmlz
aWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckR1bXBJ
bWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG91
bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJj
ZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50ZXJsZWF2
ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhib29sIGJT
dXNwZW5kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9y
VGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRNaXJyb3JU
ZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEgUmVs
ZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUsIHJlZiB1
aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRleHR1
cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVNoYXJl
ZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3Mg
TG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyBV
bmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5jZUV4dGVu
c2lvbnNSZXF1aXJlZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZpY2UsIFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2aWNlRXh0
ZW5zaW9uc1JlcXVpcmVkOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtl
eSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBGaW5kT3Zl
cmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9D
cmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVu
ZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DcmVhdGVPdmVybGF5
IENyZWF0ZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9E
ZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1YWxpdHlP
dmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0SGlnaFF1
YWxpdHlPdmVybGF5KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhpZ2hRdWFs
aXR5T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3Zl
cmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCBy
ZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUgR2V0T3Zl
cmxheU5hbWU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBwdkJ1
ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWludCBwdW5I
ZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdlRGF0YTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5RXJyb3JO
YW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5kZXJpbmdQ
aWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlSZW5kZXJp
bmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3Zl
cmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNldE92ZXJs
YXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFnIEdl
dE92ZXJsYXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xvciBTZXRP
dmVybGF5Q29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBm
UmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmQWxwaGEpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5QWxwaGE7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25n
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVy
bGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcg
dWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5U29y
dE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNvcnRPcmRl
ciBHZXRPdmVybGF5U29ydE9yZGVyOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0aEluTWV0
ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3Rh
bmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5j
ZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFu
Y2VSYW5nZUluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcg
dWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCByZWYgZmxv
YXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRl
cnM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3Bh
Y2UgZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNvbG9yU3Bh
Y2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4
dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJl
Qm91bmRzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5VGV4dHVy
ZUJvdW5kczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRy
YW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5n
T3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFu
c2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwg
dWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNl
VG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERl
dmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4LCBzdHJp
bmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3JtRm9yT3Zl
cmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXM7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3ZlcmxheUV2ZW50
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5jYlZS
RXZlbnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3ZlcmxheUV2ZW50
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnB1
dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRob2QgR2V0
T3ZlcmxheUlucHV0TWV0aG9kOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUlu
cHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNjYWxlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190
IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3VsdHMpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVpbnQg
dW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJPdmVybGF5
SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01v
dXNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVyVGFyZ2V0
T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJnZXRPdmVy
bGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEdhbWVwYWRGb2N1
c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsb25nIHVs
TmV3Rm9jdXNPdmVybGF5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNldEdhbWVw
YWRGb2N1c092ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24s
IHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdoYm9yIFNl
dE92ZXJsYXlOZWlnaGJvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNUb05laWdo
Ym9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1
cmUgU2V0T3ZlcmxheVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5UmF3
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lkdGgsIHVp
bnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBTZXRPdmVy
bGF5UmF3OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBwY2hGaWxl
UGF0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmlsZTsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5
VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1cmVI
YW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCByZWYgdWlu
dCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBlIHBBUElU
eXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBw
VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3ZlcmxheVRleHR1
cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfUmVs
ZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIgcE5h
dGl2ZVRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIFJl
bGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVybGF5KHN0
cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVmIHVs
b25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3Jl
YXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9J
c0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3RpdmVEYXNo
Ym9hcmRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5l
UHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJZCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRPdmVybGF5
U2NlbmVQcm9jZXNzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TaG93
RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG93RGFzaGJvYXJk
IFNob3dEYXNoYm9hcmQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2
aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLCBpbnQg
ZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJNYXgsIHN0
cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1VXNlclZh
bHVlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRNb2Rl
LCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhpc3Rp
bmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEtleWJvYXJk
VGV4dCBHZXRLZXlib2FyZFRleHQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX0hpZGVLZXlib2FyZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9hcmQ7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJhbnNmb3Jt
QWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYgSG1k
TWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1
dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBhdm9pZFJl
Y3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1pdGl2
ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92ZXJsYXko
c3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9uMFRleHQs
IHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJpbmcgcGNo
QnV0dG9uM1RleHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2FnZU92ZXJs
YXk7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGlj
IHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVu
ZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvYWRSZW5k
ZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1vZGVsKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9Bc3luYyhp
bnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1cmVf
QXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmUg
RnJlZVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1v
ZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50UHRyIHBE
M0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Mb2FkVGV4
dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVyZUQzRDEx
X0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZElu
dG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBE
M0QxMVRleHR1cmUyRCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVyZUQzRDEx
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbE5h
bWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRS
ZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVy
TW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1l
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4pOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbXBv
bmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0cmluZyBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVu
dFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1l
IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwg
c3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9s
bGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSwg
cmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbmRlck1v
ZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRodW1ibmFp
bFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVF
cnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVyTW9kZWxU
aHVtYm5haWxVUkw7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJl
bmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQYXRoTGVu
LCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2Rl
bE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVt
KEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsRXJyb3JO
YW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKLQotfQotCi1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElWUk5vdGlm
aWNhdGlvbnMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNhdGlv
bkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1bG9uZyB1
bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4dCwgRVZS
Tm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1hZ2Us
IHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0aW9uIENy
ZWF0ZU5vdGlmaWNhdGlvbjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSTm90
aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlvbklkKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOwotCi19Ci0KLVtT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSU2V0
dGluZ3MKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0U2V0dGlu
Z3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtOwot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZvcmNlLCBy
ZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNlY3Rpb24s
IHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9y
IHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hT
ZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0SW50MzIgU2V0SW50MzI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Nl
dEZsb2F0IFNldEZsb2F0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
ZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgc3RyaW5n
IHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRTdHJp
bmcgU2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRC
b29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJTZXR0
aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbiwgc3Ry
aW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRJbnQzMiBHZXRJbnQzMjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgZmxv
YXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJl
ZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZsb2F0Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3RyaW5nIHBj
aFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNlY3Rpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUluU2VjdGlv
bihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3ZlS2V5SW5T
ZWN0aW9uOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1
YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91dFNj
cmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQcmV2aWV3
RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2NyZWVuc2hv
dCBSZXF1ZXN0U2NyZWVuc2hvdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
U2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVuc2hvdFR5
cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSG9va1NjcmVlbnNo
b3QgSG9va1NjcmVlbnNob3Q7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNj
cmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhh
bmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFNjcmVlbnNo
b3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUodWlu
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5h
bWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50IGNjaEZp
bGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBkYXRlU2Ny
ZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9U
YWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgc3RyaW5n
IHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOwotICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Rha2VT
dGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3QodWludCBz
Y3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoU291cmNl
UHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3Vi
bWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCi17Ci0gICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
LSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uoc3RyaW5n
IHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNo
UmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJpbmcgcGNo
UGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VGdWxsUGF0
aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOwotCi19Ci0KLQotcHVibGljIGNsYXNzIENWUlN5c3RlbQot
ewotICAgICAgIElWUlN5c3RlbSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUlN5c3RlbShJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
U3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlN5c3Rl
bSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRlclRh
cmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJlZiBw
bldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXg0
NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZsb2F0IGZG
YXJaKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQgPSBGblRh
YmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRQcm9qZWN0
aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmlnaHQscmVm
IGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmTGVmdCA9IDA7Ci0gICAgICAgICAgICAgIHBmUmlnaHQgPSAwOwotICAgICAgICAgICAgICBw
ZlRvcCA9IDA7Ci0gICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxyZWYgcGZU
b3AscmVmIHBmQm90dG9tKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQ29tcHV0ZURp
c3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRpb25Db29y
ZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCi0gICAgICAgewotICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxmVixyZWYg
cERpc3RvcnRpb25Db29yZGluYXRlcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9y
bShFVlJFeWUgZUV5ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFRpbWVTaW5j
ZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVsb25nIHB1
bEZyYW1lQ291bnRlcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmU2Vjb25kc1NpbmNlTGFz
dFZzeW5jID0gMDsKLSAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgcGZT
ZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0RDNEOUFkYXB0
ZXJJbmRleCgpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXREM0Q5QWRhcHRlckluZGV4KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFw
dGVySW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRlckluZGV4
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3BsYXlPbkRl
c2t0b3AoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25EZXNrdG9w
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldERpc3Bs
YXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fic29sdXRl
VHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQgZlByZWRp
Y3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFRyYWNr
ZWREZXZpY2VQb3NlQXJyYXkpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkdldERl
dmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25kc1RvUGhv
dG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2VkRGV2aWNl
UG9zZUFycmF5Lkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0U2Vh
dGVkWmVyb1Bvc2UoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5SZXNldFNlYXRl
ZFplcm9Qb3NlKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldFNl
YXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0ZWRaZXJv
UG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERldmljZUlu
ZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcyx1aW50
IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJhY2tlZERl
dmljZUluZGV4KQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmljZUNsYXNz
LHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNlSW5kZXhB
cnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVEZXZpY2VBY3Rpdml0
eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9IEZuVGFi
bGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEFwcGx5VHJh
bnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2VkRGV2
aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNmb3Jt
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShyZWYgcE91
dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJS
b2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNv
bnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENvbnRy
b2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUluZGV4KTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVU
cmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZpY2VJbmRl
eCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzVHJhY2tl
ZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKHVuRGV2
aWNlSW5kZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJ
bmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlFcnJv
ciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJv
cik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRG
bG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBp
bnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldEludDMyVHJh
Y2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdl
dFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50NjRUcmFj
a2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4
MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBGblRh
YmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxy
ZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IHBFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0o
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50
UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRfdCBwRXZl
bnQsdWludCB1bmNiVlJFdmVudCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBQb2xs
TmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixyZWYgVlJF
dmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBU
cmFja2VkRGV2aWNlUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVuY2JWUkV2
ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVGcm9tRW51
bShFVlJFdmVudFR5cGUgZVR5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOwotICAgICAgICAg
ICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZSRXllIGVF
eWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSGlk
ZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVFeWUsdHlw
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBpcyBh
IHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0
YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNr
aW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgs
cmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBs
aWNpdCldCi0gICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCi0gICAgICAgewot
ICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJT
eXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOwotICAgICAgICAg
ICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29udHJvbGxl
clN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRy
b2xsZXJTdGF0ZVNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5FbnZp
cm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NYKSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJz
aW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1OwotICAgICAg
ICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0g
bmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1
LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
dS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwodWludClT
eXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9mKFZSQ29u
dHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9w
YWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBwYWNrZWRfcmVzdWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVyRGV2aWNl
SW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0vLyBUaGlzIGlzIGEgdGVycmlibGUg
aGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVfdCB3YXMK
LS8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcgZm9yIExp
bnV4IGFuZCBPU1guCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFj
a2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIFRyYWNr
ZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0g
ICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
IHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlUGFj
a2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xs
ZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5
c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
U3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1J
RC5Vbml4KSkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJv
bGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OwotICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9s
bGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVXaXRo
UG9zZVBhY2tlZCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBzdGF0
ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwuU2l6
ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tlZERldmlj
ZVBvc2UpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJlZiBw
Q29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRfcmVz
dWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYgcFRyYWNr
ZWREZXZpY2VQb3NlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRv
bklkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0
QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBz
dHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJBeGlz
VHlwZSBlQXhpc1R5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1cygpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBSZWxlYXNlSW5wdXRGb2N1cygpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJl
bGVhc2VJbnB1dEZvY3VzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzSW5wdXRG
b2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCi0gICAgICAgewotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNz
KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaFJl
cXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNpemUp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJpdmVyRGVi
dWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZlcix1blJl
c3BvbnNlQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1
aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJGaXJtd2FyZUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNlSW5kZXgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCi0gICAgICAgewotICAgICAgICAgICAgICBG
blRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICB9Ci19Ci0K
LQotcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIElWUkV4dGVuZGVk
RGlzcGxheSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxheShJbnRQ
dHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSRXh0
ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
UkV4dGVuZGVkRGlzcGxheSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRXaW5k
b3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWlu
dCBwbkhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuWCA9IDA7Ci0gICAgICAgICAg
ICAgIHBuWSA9IDA7Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBw
bkhlaWdodCA9IDA7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRzKHJlZiBw
blgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOwotICAgICAgIH0KLSAgICAgICBw
dWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWludCBwblgs
cmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCi0gICAgICAg
ewotICAgICAgICAgICAgICBwblggPSAwOwotICAgICAgICAgICAgICBwblkgPSAwOwotICAgICAg
ICAgICAgICBwbldpZHRoID0gMDsKLSAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOwotICAgICAg
ICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxyZWYgcG5Z
LHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lk
IEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBwbkFkYXB0
ZXJPdXRwdXRJbmRleCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuQWRhcHRlckluZGV4ID0g
MDsKLSAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOwotICAgICAgICAgICAg
ICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYgcG5BZGFw
dGVyT3V0cHV0SW5kZXgpOwotICAgICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZSVHJhY2tl
ZENhbWVyYQotewotICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKLSAgICAgICBpbnRl
cm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1
cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgZUNhbWVyYUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJl
c3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKHVp
bnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCi0gICAgICAgewotICAgICAgICAg
ICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBIYXNDYW1l
cmEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJ
bmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcG5XaWR0
aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7
Ci0gICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVTaXplKG5E
ZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYgcG5GcmFt
ZUJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3ModWlu
dCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBI
bWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBGb2NhbExl
bmd0aCxyZWYgcENlbnRlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVjdGlv
bih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUs
ZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2plY3Rpb24p
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLGZsWk5l
YXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWlyZVZp
ZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhhbmRsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHBIYW5kbGUgPSAwOwotICAgICAgICAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJlYW1pbmdT
ZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVs
ZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLlJl
bGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZmZXIsdWlu
dCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZy
YW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtRnJh
bWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZyYW1lQnVm
ZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4
dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQotICAgICAgIHsK
LSAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7Ci0gICAgICAgICAgICAgIHBuSGVpZ2h0ID0gMDsK
LSAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcFRleHR1
cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3VyY2Us
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscEQz
RDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYgcEZy
YW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXplKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0dXJl
R0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBwRnJhbWVI
ZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJlSWQpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xUZXh0dXJl
SWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLX0KLQotCi1wdWJs
aWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCi17Ci0gICAgICAgSVZSQXBwbGljYXRpb25zIEZuVGFi
bGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJmYWNlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMpTWFyc2hh
bC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25zKSk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29sIGJUZW1w
b3JhcnkpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlmZXN0
RnVsbFBhdGgsYlRlbXBvcmFyeSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZW1v
dmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHBj
aEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbkluZGV4
LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBLZXlC
dWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRpb25JbmRl
eCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBH
ZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5nIHBjaEFw
cEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5
QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVu
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVu
Y2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJpbmcgcGNo
TmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1aW50KSBw
S2V5cy5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1l
VHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBwbGlj
YXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9y
IExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hEYXNo
Ym9hcmRPdmVybGF5KHBjaEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
SWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXkpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRBcHBs
aWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBjaEFwcEtl
eSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRpb25F
cnJvciBlcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRh
YmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5nIHBjaEFw
cEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVCdWZmZXJM
ZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHBj
aEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5VmFsdWVC
dWZmZXJMZW4scmVmIHBlRXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChzdHJp
bmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQcm9wZXJ0
eSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmluZyBw
Y2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFwcGxpY2F0
aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVByb3BlcnR5
LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
KHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNhdGlvbkF1
dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoKHN0cmluZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNh
dGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hBcHBL
ZXksc3RyaW5nIHBjaE1pbWVUeXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5B
cHBLZXlCdWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXBw
S2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRN
aW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLHVpbnQg
dW5NaW1lVHlwZXNCdWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5LHBjaE1p
bWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uc1RoYXRT
dXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUaGF0U3Vw
cG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcix1bkFw
cEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRz
KHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCi0gICAgICAgewotICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1
bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBHZXRTdGFy
dGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZl
ckxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtl
eUJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9uU3Rh
dGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25TdGF0ZSBzdGF0ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQg
PSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShzdGF0
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc1F1aXRV
c2VyUHJvbXB0UmVxdWVzdGVkKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVybmFsUHJv
Y2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmluZyBwY2hX
b3JraW5nRGlyZWN0b3J5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5hcnlQYXRo
LHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5lUHJv
Y2Vzc0lkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQotewotICAgICAgIElW
UkNoYXBlcm9uZSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hhcGVy
b25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNoYXBlcm9u
ZSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSBH
ZXRDYWxpYnJhdGlvblN0YXRlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRlKCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVopCi0gICAg
ICAgewotICAgICAgICAgICAgICBwU2l6ZVggPSAwOwotICAgICAgICAgICAgICBwU2l6ZVogPSAw
OwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFTaXplKHJl
ZiBwU2l6ZVgscmVmIHBTaXplWik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90IHJl
Y3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxh
eUFyZWFSZWN0KHJlZiByZWN0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQg
U2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksaW50IG5O
dW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVmIEht
ZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1dENvbG9y
cyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNvbG9yKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCi0gICAgICAg
ewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlzaWJsZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOwotICAgICAgIH0KLX0KLQot
Ci1wdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBJVlJDaGFwZXJvbmVT
ZXR1cCBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKEludFB0ciBw
SW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJDaGFwZXJv
bmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJDaGFw
ZXJvbmVTZXR1cCkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBDb21taXRXb3JraW5n
Q29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZpZ0ZpbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LlJldmVydFdvcmtpbmdDb3B5KCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdv
cmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcFNpemVYID0gMDsKLSAgICAgICAgICAgICAgcFNpemVaID0g
MDsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJl
YVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVjdChy
ZWYgSG1kUXVhZF90IHJlY3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdD
b2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKLSAgICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG51bGws
cmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBIbWRR
dWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0
V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0NvdW50
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVhZHNC
dWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAwOwot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5k
c0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgICAgICAgIHBRdWFkc0J1ZmZl
cj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1
YWRzQ291bnQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29y
a2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoZmxvYXQg
c2l6ZVgsZmxvYXQgc2l6ZVopCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldFdv
cmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVm
ZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9u
Qm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1N0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29uZmlnRmls
ZSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIsKHVpbnQp
IHBUYWdzQnVmZmVyLkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOwotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKG51bGws
cmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBieXRlW3B1
blRhZ0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlz
aW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU2V0V29y
a2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQaHlzaWNh
bEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wg
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7Ci0gICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKG51
bGwscmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBI
bWRRdWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUu
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291bnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
Ym9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwQnVmZmVy
LHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcG5CdWZm
ZXJMZW5ndGggPSAwOwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuRXhwb3J0
TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSW1wb3J0RnJvbUJ1
ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVmZmVyVG9X
b3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKLXsKLSAgICAg
ICBJVlJDb21wb3NpdG9yIEZuVGFibGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9zaXRvcihJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
Q29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
b21wb3NpdG9yKSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNraW5nU3Bh
Y2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0gRm5UYWJs
ZS5HZXRUcmFja2luZ1NwYWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2VzKFRyYWNr
ZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9zZV90IFtd
IHBHYW1lUG9zZUFycmF5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXksKHVpbnQp
IHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2FtZVBvc2VB
cnJheS5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2VkRGV2aWNl
UG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2FtZVBv
c2VBcnJheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVuZGVy
UG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXkuTGVu
Z3RoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBvc2UscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBvc2VGb3JU
cmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVmIHBPdXRw
dXRHYW1lUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJlZiBUZXh0
dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3VibWl0Rmxh
Z3MgblN1Ym1pdEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBwQm91bmRz
LG5TdWJtaXRGbGFncyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5nIHBU
aW1pbmcsdWludCB1bkZyYW1lc0FnbykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fnbyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50
IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVpbnQg
bkZyYW1lcykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRpbWVSZW1h
aW5pbmcoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21wb3Np
dG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBwU3RhdHMs
blN0YXRzU2l6ZUluQnl0ZXMpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGYWRlVG9D
b2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1ZSxm
bG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhhLGJCYWNr
Z3JvdW5kKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3VycmVudEZh
ZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kQ29s
b3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91bmQpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCi0gICAgICAgewotICAgICAg
ICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNv
bXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1cmVzKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVuZ3RoKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckJyaW5nVG9Gcm9udCgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkNv
bXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckdvVG9CYWNrKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9z
aXRvckdvVG9CYWNrKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0b3JR
dWl0KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1aXQoKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0TGFz
dEZyYW1lUmVuZGVyZXIoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBG
blRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJTY2VuZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTaG93TWlycm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUu
U2hvd01pcnJvcldpbmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBIaWRlTWly
cm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1pcnJvcldp
bmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRvd1Zpc2li
bGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzTWly
cm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCi0gICAgICAgewot
ICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFwcFJlbmRl
cldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJv
b2wgYk92ZXJyaWRlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUludGVy
bGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2
b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBl
RXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRl
clJlc291cmNlVmlldykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0QxMURldmlj
ZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNlTWly
cm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCi0gICAgICAg
ewotICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEocEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNvbXBvc2l0
b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGdsVGV4dHVy
ZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1cmVJZCxw
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1aW50IGds
VGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVyZShnbFRl
eHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0dXJlRm9y
QWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0dXJl
SGFuZGxlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFyZWRUZXh0
dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5J
bnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZh
bHVlLHVpbnQgdW5CdWZmZXJTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJbnRQ
dHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWlu
dCB1bkJ1ZmZlclNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERldmljZSxw
Y2hWYWx1ZSx1bkJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQotewotICAgICAgIElWUk92ZXJs
YXkgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50ZXJmYWNl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1hcnNoYWwu
UHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zl
cmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwT3ZlcmxheUhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmlu
ZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVybGF5S2V5
LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3ZlcmxheSh1
bE92ZXJsYXlIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCi0gICAgICAgewotICAgICAgICAgICAgICB1
bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlLZXko
dWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxJ
bnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgscmVmIHVp
bnQgcHVuSGVpZ2h0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHVuV2lkdGggPSAwOwotICAg
ICAgICAgICAgICBwdW5IZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRsZSxwdkJ1
ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldE92
ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCi0gICAgICAgewot
ICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJyb3JOYW1l
RnJvbUVudW0oZXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmlu
Z0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUElEKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsT3Zl
cmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5
SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zl
cmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwYkVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxy
ZWYgcGJFbmFibGVkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zlcmxh
eUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZSZWQscmVm
IGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmUmVkID0gMDsKLSAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7Ci0gICAgICAgICAgICAgIHBm
Qmx1ZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdyZWVuLHJl
ZiBwZkJsdWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsZmxvYXQgZkFscGhhKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxmQWxw
aGEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
cmVmIGZsb2F0IHBmQWxwaGEpCi0gICAgICAgewotICAgICAgICAgICAgICBwZkFscGhhID0gMDsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxBc3BlY3Qp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVjdCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmVGV4ZWxB
c3BlY3QgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVsQXNwZWN0
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSx1aW50IHVuU29ydE9yZGVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlIYW5kbGUs
dW5Tb3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxP
dmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHB1blNvcnRPcmRlciA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5T
b3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0aEluTWV0
ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZldpZHRo
SW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMgPSAwOwot
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1heERpc3Rh
bmNlSW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKHVs
T3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1ldGVycyk7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYg
ZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGZN
aW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKLSAgICAgICAgICAgICAgcGZNYXhEaXN0YW5jZUluTWV0
ZXJzID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUs
cmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlQ29s
b3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBF
Q29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVDb2xvclNw
YWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUlRl
eHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVyZUJv
dW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFu
c2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBw
bWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNraW5n
T3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdp
blRvT3ZlcmxheVRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bE92ZXJs
YXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRvT3Zl
cmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWRE
ZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWREZXZpY2Us
cmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSx1
blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRNYXRy
aXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNl
UmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJh
Y2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQg
dW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUcmFuc2Zv
cm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUluZGV4LHBj
aENvbXBvbmVudE5hbWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2Vk
RGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5EZXZpY2VJ
bmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNpemUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5kZXgscGNo
Q29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTaG93T3Zl
cmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkhpZGVP
dmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFu
c2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJ
bk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2luLGNvb3Jk
aW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVybGF5RXZl
bnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5jYlZS
RXZlbnQpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUG9s
bE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCi0gICAgICAgewotICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW5w
dXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92ZXJsYXlI
YW5kbGUsZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2FsZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2NhbGUodWxP
dmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFy
YW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1bHRz
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVP
dmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYgcFJlc3Vs
dHMpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVyT3Zlcmxh
eUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRhcmdldE92
ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXkoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1lcGFkRm9j
dXNPdmVybGF5KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9uZyB1
bE5ld0ZvY3VzT3ZlcmxheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1c092ZXJs
YXkpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdoYm9yKGVE
aXJlY3Rpb24sdWxGcm9tLHVsVG8pOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNUb05l
aWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOwotICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90IHBUZXh0
dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVyZSk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5D
bGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5XaWR0
aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVybGF5SGFu
ZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmlsZVBhdGgp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEludFB0
ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVmIHVpbnQg
cFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYgRVRleHR1
cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJUZXh0dXJl
Qm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAgICAgICBwV2lkdGgg
PSAwOwotICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKLSAgICAgICAgICAgICAgcE5hdGl2ZUZv
cm1hdCA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1cmVIYW5k
bGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5hdGl2ZUZv
cm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5kcyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVybGF5SGFu
ZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwV2lk
dGgscmVmIHVpbnQgcEhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBXaWR0aCA9IDA7
Ci0gICAgICAgICAgICAgIHBIZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5SGFuZGxl
LHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92
ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUs
cmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOwotICAgICAgICAgICAgICBwVGh1bWJu
YWlsSGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlGcmll
bmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEYXNo
Ym9hcmRWaXNpYmxlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERhc2hib2Fy
ZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blBy
b2Nlc3NJZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hib2FyZE92
ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBT
aG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFzaGJvYXJk
RGV2aWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLGludCBl
TGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3RyaW5n
IHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRpb24sdW5D
aGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsaW50
IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlvbix1aW50
IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxNb2RlLHVs
b25nIHVVc2VyVmFsdWUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSxl
SW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hFeGlz
dGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2FyZFRleHQo
U3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRleHQocGNo
VGV4dCxjY2hUZXh0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEZuVGFibGUuSGlkZUtleWJvYXJkKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNl
dEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNr
aW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRU
cmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJvYXJkVHJh
bnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tl
eWJvYXJkVHJhbnNmb3JtKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0S2V5Ym9h
cmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3QyX3QgYXZv
aWRSZWN0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2FyZFBvc2l0
aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVf
dCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5QcmltaXRp
dmVTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxlLHJlZiBw
TWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQg
cEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcEZsYWdzID0gMDsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdzKHVsT3Zl
cmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2Fn
ZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBjaEJ1dHRv
bjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQsc3RyaW5n
IHBjaEJ1dHRvbjNUZXh0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRleHQscGNo
Q2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4dCxwY2hC
dXR0b24zVGV4dCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotfQot
Ci0KLXB1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBJVlJSZW5kZXJNb2Rl
bHMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRyIHBJbnRl
cmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRlck1vZGVs
cylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5kZXJNb2Rl
bHMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJl
bmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0ciBwcFJl
bmRlck1vZGVsKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2RlbE5hbWUs
cmVmIHBwUmVuZGVyTW9kZWwpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJNb2Rl
bCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVsKHBSZW5k
ZXJNb2RlbCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExv
YWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZuVGFibGUu
TG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVy
ZShJbnRQdHIgcFRleHR1cmUpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkZyZWVU
ZXh0dXJlKHBUZXh0dXJlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVs
RXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRDNEMTFE
ZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlRDNEMTFf
QXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5k
ZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsSW50
UHRyIHBEc3RUZXh0dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxF
cnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1cmVJ
ZCxwRHN0VGV4dHVyZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1cmUy
RCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0QxMShwRDNE
MTFUZXh0dXJlMkQpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2Rl
bE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBw
Y2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5hbWUodW5S
ZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFtZUxlbik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1
aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50Q291
bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2RlbE5hbWUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1bkNv
bXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSx1
aW50IHVuQ29tcG9uZW50TmFtZUxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1bkNvbXBv
bmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldENv
bXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29t
cG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFi
bGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50
TmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1
YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVyTW9k
ZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5h
bWVMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnRO
YW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFt
ZUxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBp
cyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxl
clN0YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBw
YWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgcENv
bnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3Rh
dGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAg
ICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBH
ZXRDb21wb25lbnRTdGF0ZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZz
ZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENvbXBvbmVu
dFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBHZXRDb21w
b25lbnRTdGF0ZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0Q29tcG9u
ZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFt
ZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5kZXJNb2Rl
bF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5
c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQu
TWFjT1NYKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1l
bnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVuaW9uIHU7
Ci0gICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBzdGF0ZV9w
YWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRTdGF0ZTsK
LSAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENvbXBvbmVu
dFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBzdGF0
ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLQotICAgICAgICAgICAg
ICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3RhdGUocGNo
UmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3RhdGUscmVm
IHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21wb25lbnQo
c3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2RlbEhhc0Nv
bXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldFJlbmRl
ck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExlbixyZWYg
RVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJlbmRlck1v
ZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJyb3IpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWlu
dCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5PcmlnaW5hbFBh
dGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChw
Y2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVuLHJlZiBw
ZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRlck1v
ZGVsRXJyb3IgZXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQot
fQotCi0KLXB1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCi17Ci0gICAgICAgSVZSTm90aWZp
Y2F0aW9ucyBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMoSW50UHRy
IHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUk5vdGlm
aWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSTm90
aWZpY2F0aW9ucykpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0aW9uRXJy
b3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1bFVzZXJW
YWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90aWZpY2F0
aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYgdWludCBw
Tm90aWZpY2F0aW9uSWQpCi0gICAgICAgewotICAgICAgICAgICAgICBwTm90aWZpY2F0aW9uSWQg
PSAwOwotICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxl
LkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlwZSxwY2hU
ZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJOb3RpZmljYXRpb25F
cnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVtb3Zl
Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUlNldHRpbmdzCi17Ci0gICAgICAg
SVZSU2V0dGluZ3MgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2V0dGlu
Z3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0dGluZ3Mp
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9yTmFtZUZy
b21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
SW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShlRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxyZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChzdHJpbmcg
cGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0Qm9v
bChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBw
Y2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCi0g
ICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24scGNoU2V0
dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGZsb2F0
IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxmbFZhbHVl
LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0U3RyaW5nKHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFsdWUscmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFi
bGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVmIHBlRXJy
b3IpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBwY2hTZWN0
aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2wocGNo
U2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3RyaW5nIHBj
aFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJbnQz
MihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGZsb2F0IEdldEZsb2F0KHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJv
ciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0
U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5HZXRTdHJpbmco
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBwZUVycm9y
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJpbmcgcGNo
U2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3IpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBjaFNl
Y3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlvbihwY2hT
ZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci19Ci0KLQotcHVi
bGljIGNsYXNzIENWUlNjcmVlbnNob3RzCi17Ci0gICAgICAgSVZSU2NyZWVuc2hvdHMgRm5UYWJs
ZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFjZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFyc2hhbC5Q
dHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hvdChy
ZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0cmlu
ZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUlNj
cmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJlZiBwT3V0
U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
UlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBbXSBwU3Vw
cG9ydGVkVHlwZXMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGludCkgcFN1
cHBvcnRlZFR5cGVzLkxlbmd0aCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90UHJvcGVy
dHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJv
cikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3VsdCA9IEZu
VGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJlZiBwRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNob3RIYW5k
bGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVWUlNjcmVl
bnNob3RFcnJvciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9
IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhhbmRsZSxm
aWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5z
aG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxm
bG9hdCBmbFByb2dyZXNzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVlbnNob3RI
YW5kbGUsZmxQcm9ncmVzcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNob3Qo
cmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFtZSxz
dHJpbmcgcGNoVlJGaWxlbmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBPdXRTY3JlZW5z
aG90SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9
IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFuZGxlLHBj
aFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBTdWJtaXRT
Y3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0
cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5hbWUp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3VyY2VQcmV2
aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMKLXsKLSAg
ICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZXNvdXJjZXMo
SW50UHRyIHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJS
ZXNvdXJjZXMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJlZFJlc291
cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVuQnVmZmVy
TGVuKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkxvYWRT
aGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVuKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQg
R2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hSZXNv
dXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZlckxlbikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZXNvdXJj
ZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkscGNoUGF0
aEJ1ZmZlcix1bkJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCi17Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdEludGVybmFs
IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAg
aW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICBb
RGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9TaHV0ZG93
bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCld
Ci0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJW
Ul9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNk
ZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVzZW50KCk7
Ci0gICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAi
VlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzUnVudGlt
ZUluc3RhbGxlZCgpOwotICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBF
bnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsKLSAgICAg
ICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5D
ZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2VuZXJpY0lu
dGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5nIHBjaElu
dGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNkZWNs
KV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9u
VmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBwY2hJbnRl
cmZhY2VWZXJzaW9uKTsKLSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwg
RW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxp
bmdDb252ZW50aW9uLkNkZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIHVpbnQg
R2V0SW5pdFRva2VuKCk7Ci19Ci0KLQotcHVibGljIGVudW0gRVZSRXllCi17Ci0gICAgICAgRXll
X0xlZnQgPSAwLAotICAgICAgIEV5ZV9SaWdodCA9IDEsCi19Ci1wdWJsaWMgZW51bSBFVGV4dHVy
ZVR5cGUKLXsKLSAgICAgICBEaXJlY3RYID0gMCwKLSAgICAgICBPcGVuR0wgPSAxLAotICAgICAg
IFZ1bGthbiA9IDIsCi0gICAgICAgSU9TdXJmYWNlID0gMywKLSAgICAgICBEaXJlY3RYMTIgPSA0
LAotfQotcHVibGljIGVudW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBBdXRvID0gMCwKLSAgICAg
ICBHYW1tYSA9IDEsCi0gICAgICAgTGluZWFyID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2lu
Z1Jlc3VsdAotewotICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAotICAgICAgIENhbGlicmF0aW5n
X0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEwMSwK
LSAgICAgICBSdW5uaW5nX09LID0gMjAwLAotICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5nZSA9IDIw
MSwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKLXsKLSAgICAgICBJbnZhbGlk
ID0gMCwKLSAgICAgICBITUQgPSAxLAotICAgICAgIENvbnRyb2xsZXIgPSAyLAotICAgICAgIEdl
bmVyaWNUcmFja2VyID0gMywKLSAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCi19Ci1wdWJs
aWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCi17Ci0gICAgICAgSW52YWxpZCA9IDAsCi0g
ICAgICAgTGVmdEhhbmQgPSAxLAotICAgICAgIFJpZ2h0SGFuZCA9IDIsCi19Ci1wdWJsaWMgZW51
bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgotewotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTZWF0
ZWQgPSAwLAotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCi0gICAgICAgVHJh
Y2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFVHJh
Y2tlZERldmljZVByb3BlcnR5Ci17Ci0gICAgICAgUHJvcF9JbnZhbGlkID0gMCwKLSAgICAgICBQ
cm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAotICAgICAgIFByb3BfTW9kZWxO
dW1iZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAx
MDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCi0gICAgICAg
UHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nID0gMTAwNSwKLSAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9u
X1N0cmluZyA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyA9IDEw
MDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAx
MDA4LAotICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0gMTAwOSwK
LSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgUHJvcF9E
ZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAotICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBl
cmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAotICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9y
bV9NYXRyaXgzNCA9IDEwMTMsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVf
Qm9vbCA9IDEwMTQsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEw
MTUsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKLSAgICAgICBQcm9w
X0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAotICAgICAgIFByb3BfRlBHQVZlcnNpb25f
VWludDY0ID0gMTAxOSwKLSAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKLSAg
ICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xl
VmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9C
b29sID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCA9IDEwMjQsCi0gICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0g
MTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAy
NiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAotICAgICAgIFBy
b3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBQcm9w
X0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKLSAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29sID0g
MTAzMCwKLSAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAgICBQ
cm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCi0gICAgICAgUHJv
cF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCi0gICAgICAgUHJvcF9Q
YXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VW
U3luY19Cb29sID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNf
RmxvYXQgPSAyMDAxLAotICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIs
Ci0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKLSAgICAgICBQcm9wX0N1
cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCi0gICAgICAgUHJvcF9QcmV2aW91c1VuaXZl
cnNlSWRfVWludDY0ID0gMjAwNSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25f
VWludDY0ID0gMjAwNiwKLSAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAotICAg
ICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQg
PSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAgICAgICBQ
cm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAotICAgICAgIFByb3BfRGlzcGxh
eU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tD
bGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAx
NSwKLSAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKLSAgICAgICBQcm9wX0Rpc3Bs
YXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9h
dCA9IDIwMTksCi0gICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAotICAgICAgIFByb3BfTGVu
c0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9G
bG9hdCA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAyNCwK
LSAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAotICAgICAgIFByb3Bf
VXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdh
cmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAotICAgICAgIFByb3BfRGlzcGxheUZQR0FWZXJz
aW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25f
VWludDY0ID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0
ID0gMjAzMSwKLSAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIs
Ci0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCi0gICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIwMzYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlN
Q0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVt
Q2hhbm5lbHNfSW50MzIgPSAyMDQwLAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0Jp
bmFyeSA9IDIwNDEsCi0gICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0
MiwKLSAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKLSAgICAgICBQ
cm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlw
ZV9JbnQzMiA9IDMwMDIsCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAotICAg
ICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKLSAgICAgICBQcm9wX0F4aXMzVHlwZV9J
bnQzMiA9IDMwMDUsCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAotICAgICAg
IFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBQcm9wX0ZpZWxk
T2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdS
aWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdy
ZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19G
bG9hdCA9IDQwMDMsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9h
dCA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCA9
IDQwMDUsCi0gICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKLSAgICAgICBQcm9w
X0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ19TdHJpbmcgPSA1MDAyLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
Tm90UmVhZHlfU3RyaW5nID0gNTAwNiwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyA9IDUwMDcsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxl
cnRMb3dfU3RyaW5nID0gNTAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9TdGFydCA9IDUxMDAsCi0gICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5k
ID0gNTE1MCwKLSAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCi0gICAg
ICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAotICAgICAgIFByb3BfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCA9IDEwOTk5LAotfQotcHVibGljIGVudW0gRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCi0gICAgICAgVHJhY2tlZFBy
b3BfV3JvbmdEYXRhVHlwZSA9IDEsCi0gICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFz
cyA9IDIsCi0gICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCi0gICAgICAgVHJhY2tlZFByb3BfSW52YWxp
ZERldmljZSA9IDUsCi0gICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0g
NiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAotICAg
ICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKLSAgICAgICBU
cmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIFRyYWNrZWRQcm9wX1Blcm1p
c3Npb25EZW5pZWQgPSAxMCwKLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0g
MTEsCi19Ci1wdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncwotewotICAgICAgIFN1Ym1pdF9EZWZh
dWx0ID0gMCwKLSAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDEs
Ci0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKLSAgICAgICBTdWJtaXRfUmVzZXJ2
ZWQgPSA0LAotfQotcHVibGljIGVudW0gRVZSU3RhdGUKLXsKLSAgICAgICBVbmRlZmluZWQgPSAt
MSwKLSAgICAgICBPZmYgPSAwLAotICAgICAgIFNlYXJjaGluZyA9IDEsCi0gICAgICAgU2VhcmNo
aW5nX0FsZXJ0ID0gMiwKLSAgICAgICBSZWFkeSA9IDMsCi0gICAgICAgUmVhZHlfQWxlcnQgPSA0
LAotICAgICAgIE5vdFJlYWR5ID0gNSwKLSAgICAgICBTdGFuZGJ5ID0gNiwKLSAgICAgICBSZWFk
eV9BbGVydF9Mb3cgPSA3LAotfQotcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAg
VlJFdmVudF9Ob25lID0gMCwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
PSAxMDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAxMDEsCi0g
ICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKLSAgICAgICBWUkV2ZW50
X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIFZSRXZl
bnRfSXBkQ2hhbmdlZCA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgPSAx
MDYsCi0gICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAotICAgICAgIFZSRXZlbnRfV2F0Y2hk
b2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCi0gICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNo
YW5nZWQgPSAxMTAsCi0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCi0gICAg
ICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKLSAgICAgICBWUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKLSAgICAgICBWUkV2
ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCi0gICAgICAgVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAs
Ci0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCi0gICAgICAgVlJFdmVudF9N
b3VzZUJ1dHRvblVwID0gMzAyLAotICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMwMywKLSAg
ICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCi0gICAgICAgVlJFdmVudF9TY3JvbGwgPSAz
MDUsCi0gICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1
cmVkID0gNDAwLAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAg
ICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCi0gICAgICAgVlJFdmVudF9TY2VuZUZv
Y3VzR2FpbmVkID0gNDAzLAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQg
PSA0MDQsCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKLSAgICAgICBW
UkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgVlJFdmVudF9I
aWRlUmVuZGVyTW9kZWxzID0gNDEwLAotICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9
IDQxMSwKLSAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBWUkV2ZW50
X092ZXJsYXlIaWRkZW4gPSA1MDEsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQg
PSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAg
ICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCi0gICAgICAgVlJFdmVudF9E
YXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCi0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCA9
IDUwNiwKLSAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAotICAgICAgIFZSRXZlbnRf
SW1hZ2VMb2FkZWQgPSA1MDgsCi0gICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0g
ICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5
R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRG
b2N1c0xvc3QgPSA1MTIsCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5n
ZWQgPSA1MTMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQs
Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAotICAgICAgIFZS
RXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKLSAgICAgICBWUkV2ZW50X0ltYWdlRmFp
bGVkID0gNTE3LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgs
Ci0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKLSAgICAgICBWUkV2ZW50
X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQg
PSA1MjIsCi0gICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1MjMs
Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKLSAg
ICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAotICAgICAg
IFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAotICAgICAgIFZSRXZlbnRfTm90aWZp
Y2F0aW9uX0hpZGRlbiA9IDYwMSwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbklu
dGVyYWN0aW9uID0gNjAyLAotICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCA9
IDYwMywKLSAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCi0gICAgICAgVlJFdmVudF9Qcm9jZXNz
UXVpdCA9IDcwMSwKLSAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3MDIs
Ci0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAotICAgICAgIFZSRXZlbnRf
RHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFI
YXNDaGFuZ2VkID0gODAwLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgwMywK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgVlJFdmVudF9CYWNrZ3Jv
dW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCi0gICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5n
c0hhdmVDaGFuZ2VkID0gODUxLAotICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hh
c0NoYW5nZWQgPSA4NTIsCi0gICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODUzLAotICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2Vk
ID0gODU0LAotICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1LAot
ICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAotICAgICAgIFZSRXZlbnRfTUNJbWFn
ZVVwZGF0ZWQgPSAxMDAwLAotICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0g
MTEwMCwKLSAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAotICAg
ICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9h
cmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwK
LSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAotICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKLSAgICAg
ICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRp
b25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAotICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCi0gICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0
b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9S
ZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0Vk
aXRpbmdTdXJmYWNlID0gMTU1MCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFi
bGVDYXB0dXJlID0gMTYwMCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxl
Q2FwdHVyZSA9IDE2MDEsCi0gICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlM
ZXZlbCA9IDE2MDIsCi0gICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUw
LAotICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwK
LSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAotfQot
cHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lk
bGUgPSAwLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0g
MSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1lb3V0
ID0gMiwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfQotcHVi
bGljIGVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtID0gMCwKLSAg
ICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKLSAgICAgICBrX0VCdXR0b25fR3Jp
cCA9IDIsCi0gICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCi0gICAgICAga19FQnV0dG9u
X0RQYWRfVXAgPSA0LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKLSAgICAgICBr
X0VCdXR0b25fRFBhZF9Eb3duID0gNiwKLSAgICAgICBrX0VCdXR0b25fQSA9IDcsCi0gICAgICAg
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCA9
IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlz
MiA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9B
eGlzNCA9IDM2LAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIsCi0gICAg
ICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayA9IDIsCi0gICAgICAga19FQnV0dG9uX01heCA9IDY0LAotfQotcHVibGljIGVu
dW0gRVZSTW91c2VCdXR0b24KLXsKLSAgICAgICBMZWZ0ID0gMSwKLSAgICAgICBSaWdodCA9IDIs
Ci0gICAgICAgTWlkZGxlID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUK
LXsKLSAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlk
ZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19Ci1wdWJsaWMgZW51
bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLXsKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25l
ID0gMCwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCi0gICAgICAga19l
Q29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1Ry
aWdnZXIgPSAzLAotfQotcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0KLXB1YmxpYyBlbnVtIEVDb2xsaXNp
b25Cb3VuZHNTdHlsZQotewotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIg
PSAwLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwKLSAg
ICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAotICAgICAgIENPTExJU0lP
Tl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZ
TEVfTk9ORSA9IDQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19
Ci1wdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAg
ICBVbmtub3duT3ZlcmxheSA9IDEwLAotICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwKLSAgICAg
ICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgT3ZlcmxheUxpbWl0RXhjZWVkZWQgPSAx
MywKLSAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCi0gICAgICAgS2V5VG9vTG9uZyA9
IDE1LAotICAgICAgIE5hbWVUb29Mb25nID0gMTYsCi0gICAgICAgS2V5SW5Vc2UgPSAxNywKLSAg
ICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKLSAgICAgICBJbnZhbGlkVHJhY2tlZERldmlj
ZSA9IDE5LAotICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKLSAgICAgICBUaHVtYm5haWxD
YW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDIzLAotICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAg
VW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAotICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNlID0gMjYs
Ci0gICAgICAgTm9OZWlnaGJvciA9IDI3LAotICAgICAgIFRvb01hbnlNYXNrUHJpbWl0aXZlcyA9
IDI5LAotICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkFw
cGxpY2F0aW9uVHlwZQotewotICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAotICAgICAg
IFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAotICAgICAgIFZSQXBwbGljYXRpb25fT3ZlcmxheSA9
IDIsCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKLSAgICAgICBWUkFwcGxp
Y2F0aW9uX1V0aWxpdHkgPSA0LAotICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAotICAgICAgIFZSQXBwbGlj
YXRpb25fTWF4ID0gNywKLX0KLXB1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKLXsKLSAgICAg
ICBOb25lID0gMCwKLSAgICAgICBTdWNjZXNzID0gMSwKLSAgICAgICBGYWlsID0gMiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCi17Ci0gICAgICAgT0sgPSAwLAotICAgICAg
IEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAgICBOb3RpZmljYXRpb25RdWV1ZUZ1
bGwgPSAxMDEsCi0gICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgU3lz
dGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCi19Ci1wdWJsaWMgZW51bSBFVlJJ
bml0RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBVbmtub3duID0gMSwKLSAgICAg
ICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAotICAgICAgIEluaXRfSW5zdGFsbGF0
aW9uQ29ycnVwdCA9IDEwMSwKLSAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgPSAxMDIs
Ci0gICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCi0gICAgICAgSW5pdF9GYWN0b3J5Tm90
Rm91bmQgPSAxMDQsCi0gICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAg
ICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCi0gICAgICAgSW5pdF9Vc2VyQ29uZmlnRGly
ZWN0b3J5SW52YWxpZCA9IDEwNywKLSAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAg
ICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCi0gICAgICAgSW5pdF9QYXRoUmVnaXN0cnlO
b3RGb3VuZCA9IDExMCwKLSAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKLSAgICAgICBJ
bml0X05vTG9nUGF0aCA9IDExMiwKLSAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxl
ID0gMTEzLAotICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgSW5p
dF9SZXRyeSA9IDExNSwKLSAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwKLSAg
ICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgSW5pdF9TZXR0aW5n
c0luaXRGYWlsZWQgPSAxMTgsCi0gICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCi0gICAg
ICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBJbml0X05vU2VydmVyRm9yQmFj
a2dyb3VuZEFwcCA9IDEyMSwKLSAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9y
ID0gMTIyLAotICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAg
ICAgICBJbml0X0ludGVybmFsID0gMTI0LAotICAgICAgIEluaXRfSG1kRHJpdmVySWRJc05vbmUg
PSAxMjUsCi0gICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAg
ICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCi0gICAgICAgSW5pdF9WUk1vbml0b3JT
dGFydHVwRmFpbGVkID0gMTI4LAotICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBv
cnRlZCA9IDEyOSwKLSAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCi0g
ICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKLSAgICAgICBJbml0
X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAotICAgICAgIEluaXRfVlJEYXNoYm9h
cmROb3RGb3VuZCA9IDEzMywKLSAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCA9
IDEzNCwKLSAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIERyaXZlcl9Vbmtub3du
ID0gMjAxLAotICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAotICAgICAgIERyaXZlcl9O
b3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCi0g
ICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAotICAgICAgIERyaXZlcl9Ob3RDYWxpYnJhdGVk
ID0gMjA2LAotICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCi0gICAgICAg
RHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKLSAgICAgICBEcml2ZXJfVHJhY2tlZERl
dmljZUludGVyZmFjZVVua25vd24gPSAyMDksCi0gICAgICAgRHJpdmVyX0htZERyaXZlcklkT3V0
T2ZCb3VuZHMgPSAyMTEsCi0gICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwK
LSAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBJUENfQ29ubmVjdEZh
aWxlZCA9IDMwMSwKLSAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAotICAg
ICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKLSAgICAgICBJUENfTXV0ZXhJbml0
RmFpbGVkID0gMzA0LAotICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCi0gICAgICAgSVBDX0NvbXBv
c2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAotICAgICAgIElQQ19Db21wb3NpdG9ySW52YWxpZENv
bm5lY3RSZXNwb25zZSA9IDMwNywKLSAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlw
bGVBdHRlbXB0cyA9IDMwOCwKLSAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKLSAgICAgICBDb21wb3Np
dG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCi0gICAgICAgQ29tcG9zaXRvcl9PdmVy
bGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZh
aWxlZCA9IDQwNCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1
c1J1bnRpbWUgPSAxMDAwLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVu
RGV2aWNlID0gMTEwMSwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1Jl
cXVlc3RDb25maWdTdGFydCA9IDExMDIsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Tm9TdG9yZWRDb25maWcgPSAxMTAzLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyA9IDExMDQsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vU21hbGwgPSAxMTA1LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
SW5pdFpMaWIgPSAxMTA2LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFk
RmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAotICAgICAgIFZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBW
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCi0gICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCi0gICAgICAg
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAot
ICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAotfQotcHVibGlj
IGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBNb25v
ID0gMSwKLSAgICAgICBTdGVyZW8gPSAyLAotICAgICAgIEN1YmVtYXAgPSAzLAotICAgICAgIE1v
bm9QYW5vcmFtYSA9IDQsCi0gICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAotfQotcHVibGljIGVu
dW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCi17Ci0gICAgICAgUHJldmlldyA9IDAs
Ci0gICAgICAgVlIgPSAxLAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17
Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAotICAgICAg
IEludmFsaWRIYW5kbGUgPSAxMDEsCi0gICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9
IDEwMiwKLSAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCi0gICAgICAgSVBDRmFpbHVyZSA9IDEw
NCwKLSAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIFNoYXJl
ZE1lbW9yeUZhaWx1cmUgPSAxMDYsCi0gICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJlID0gMTA3
LAotICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBJbnZhbGlkR0xUZXh0
dXJlSWQgPSAxMDksCi0gICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCi0g
ICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAgICBTaGFyZWRUZXh0dXJl
RmFpbHVyZSA9IDExMiwKLSAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAotICAgICAgIElu
dmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXplID0gMTE1
LAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIERp
c3RvcnRlZCA9IDAsCi0gICAgICAgVW5kaXN0b3J0ZWQgPSAxLAotICAgICAgIE1heGltdW1VbmRp
c3RvcnRlZCA9IDIsCi0gICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCi19Ci1wdWJs
aWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
QXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKLSAgICAgICBOb01hbmlmZXN0ID0gMTAxLAotICAg
ICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCi0gICAgICAgSW52YWxpZEluZGV4ID0gMTAzLAotICAg
ICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKLSAgICAgICBJUENGYWlsZWQgPSAxMDUsCi0g
ICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKLSAgICAgICBJbnZhbGlkTWFu
aWZlc3QgPSAxMDcsCi0gICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAgICAgIExh
dW5jaEZhaWxlZCA9IDEwOSwKLSAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDEx
MCwKLSAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAotICAgICAgIE9sZEFwcGxpY2F0aW9u
UXVpdHRpbmcgPSAxMTIsCi0gICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCi0gICAgICAg
SXNUZW1wbGF0ZSA9IDExNCwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKLSAgICAgICBQ
cm9wZXJ0eU5vdFNldCA9IDIwMSwKLSAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIsCi0gICAg
ICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKLX0KLXB1YmxpYyBlbnVtIEVWUkFwcGxpY2F0aW9u
UHJvcGVydHkKLXsKLSAgICAgICBOYW1lX1N0cmluZyA9IDAsCi0gICAgICAgTGF1bmNoVHlwZV9T
dHJpbmcgPSAxMSwKLSAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAotICAgICAg
IEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCi0gICAgICAgQXJndW1lbnRzX1N0cmluZyA9IDE0LAot
ICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKLSAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwK
LSAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAotICAgICAgIEltYWdlUGF0aF9TdHJpbmcgPSA1
MiwKLSAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCi0gICAgICAgSXNEYXNoYm9hcmRPdmVybGF5
X0Jvb2wgPSA2MCwKLSAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKLSAgICAgICBJc0luc3Rh
bmNlZF9Cb29sID0gNjIsCi0gICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCi0gICAgICAgTGFz
dExhdW5jaFRpbWVfVWludDY0ID0gNzAsCi19Ci1wdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25TdGF0ZQotewotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAw
LAotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCi0g
ICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0g
MTEsCi0gICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwK
LX0KLXB1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBPSyA9
IDEsCi0gICAgICAgV2FybmluZyA9IDEwMCwKLSAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9uTWF5
SGF2ZU1vdmVkID0gMTAxLAotICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0gMTAy
LAotICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKLSAgICAgICBFcnJv
ciA9IDIwMCwKLSAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCi0g
ICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKLSAgICAgICBFcnJvcl9QbGF5
QXJlYUludmFsaWQgPSAyMDMsCi0gICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9
IDIwNCwKLX0KLXB1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCi17Ci0gICAgICAgTGl2
ZSA9IDEsCi0gICAgICAgVGVtcCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFQ2hhcGVyb25lSW1wb3J0
RmxhZ3MKLXsKLSAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAotfQotcHVi
bGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAg
ICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKLSAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDEwMiwK
LSAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCi0gICAgICAgVGV4dHVyZUlzT25X
cm9uZ0RldmljZSA9IDEwNCwKLSAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0g
MTA1LAotICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAotICAgICAgIElu
ZGV4T3V0T2ZSYW5nZSA9IDEwNywKLSAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4LAotfQot
cHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKLXsKLSAgICAgICBOb25lID0gMCwKLSAg
ICAgICBNb3VzZSA9IDEsCi19Ci1wdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlCi17
Ci0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKLSAgICAgICBWUk92ZXJs
YXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBWUk92ZXJsYXlU
cmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1Ry
YWNrZWRDb21wb25lbnQgPSAzLAotfQotcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MKLXsKLSAg
ICAgICBOb25lID0gMCwKLSAgICAgICBDdXJ2ZWQgPSAxLAotICAgICAgIFJHU1M0WCA9IDIsCi0g
ICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAotICAgICAgIEFjY2VwdHNHYW1lcGFkRXZlbnRzID0g
NCwKLSAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKLSAgICAgICBTZW5kVlJTY3JvbGxFdmVu
dHMgPSA2LAotICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKLSAgICAgICBTaG93VG91
Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCi0gICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0ludGVybmFs
UHJvY2VzcyA9IDksCi0gICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAotICAgICAgIFNp
ZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAotICAgICAgIFBhbm9yYW1hID0gMTIsCi0gICAgICAgU3Rl
cmVvUGFub3JhbWEgPSAxMywKLSAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwK
LSAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKLX0KLXB1YmxpYyBlbnVtIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZQotewotICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAotICAgICAgIEJ1
dHRvblByZXNzXzEgPSAxLAotICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAotICAgICAgIEJ1dHRv
blByZXNzXzMgPSAzLAotICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQsCi0gICAg
ICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAotICAgICAgIEFwcGxpY2F0
aW9uUXVpdCA9IDYsCi19Ci1wdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKLXsKLSAg
ICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAga19FR2FtZXBh
ZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCi0gICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1v
ZGVTdWJtaXQgPSAyLAotfQotcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQot
ewotICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAg
ICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAotfQotcHVi
bGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KLXsKLSAgICAgICBVcCA9IDAsCi0gICAgICAgRG93
biA9IDEsCi0gICAgICAgTGVmdCA9IDIsCi0gICAgICAgUmlnaHQgPSAzLAotICAgICAgIENvdW50
ID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
VHlwZQotewotICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rhbmds
ZSA9IDAsCi0gICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0g
MSwKLX0KLXB1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBOb25lID0g
MCwKLSAgICAgICBMb2FkaW5nID0gMTAwLAotICAgICAgIE5vdFN1cHBvcnRlZCA9IDIwMCwKLSAg
ICAgICBJbnZhbGlkQXJnID0gMzAwLAotICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwKLSAgICAg
ICBOb1NoYXBlcyA9IDMwMiwKLSAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKLSAgICAgICBU
b29NYW55VmVydGljZXMgPSAzMDQsCi0gICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAg
ICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKLSAgICAgICBOb3RFbm91Z2hOb3JtYWxzID0gMzA3
LAotICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLSAgICAgICBJbnZhbGlkVGV4dHVy
ZSA9IDQwMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAg
SXNTdGF0aWMgPSAxLAotICAgICAgIElzVmlzaWJsZSA9IDIsCi0gICAgICAgSXNUb3VjaGVkID0g
NCwKLSAgICAgICBJc1ByZXNzZWQgPSA4LAotICAgICAgIElzU2Nyb2xsZWQgPSAxNiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICBUcmFuc2llbnQgPSAwLAot
ICAgICAgIFBlcnNpc3RlbnQgPSAxLAotICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZh
bHVlID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCi17Ci0gICAgICAg
Tm9uZSA9IDAsCi0gICAgICAgQXBwbGljYXRpb24gPSAxMDAsCi0gICAgICAgQ29udGFjdF9EaXNh
YmxlZCA9IDIwMCwKLSAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCi0gICAgICAgQ29udGFj
dF9BY3RpdmUgPSAyMDIsCi19Ci1wdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi17Ci0gICAg
ICAgTm9uZSA9IDAsCi0gICAgICAgSVBDRmFpbGVkID0gMSwKLSAgICAgICBXcml0ZUZhaWxlZCA9
IDIsCi0gICAgICAgUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgSnNvblBhcnNlRmFpbGVkID0gNCwK
LSAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAotfQotcHVibGljIGVudW0gRVZS
U2NyZWVuc2hvdEVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgUmVxdWVzdEZhaWxl
ZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBOb3RGb3Vu
ZCA9IDEwMSwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKLSAgICAgICBTY3JlZW5zaG90
QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5F
eHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092ZXJsYXlf
dCBvdmVybGF5OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU3RhdHVz
X3Qgc3RhdHVzOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfSXBkX3Qg
aXBkOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVyb25lX3Qg
Y2hhcGVyb25lOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUGVyZm9y
bWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVi
bGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOwotICAgICAgIFtGaWVsZE9m
ZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Q
b3NlUmVzZXQ7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JlZW5z
aG90X3Qgc2NyZWVuc2hvdDsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRpb25M
YXVuY2g7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0aW5nQ2Ft
ZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJs
aWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OwotICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8gVGhpcyBo
YXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZwotfQotCi0KLVtTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1Ymxp
YyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7Ci0gICAgICAgW0ZpZWxk
T2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOwotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0XQotICAg
ICAgIHB1YmxpYyBmbG9hdCBtMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTI7Ci0gICAgICAgcHVi
bGljIGZsb2F0IG0zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKLSAgICAgICBwdWJsaWMgZmxv
YXQgbTU7Ci0gICAgICAgcHVibGljIGZsb2F0IG02OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNzsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbTg7Ci0gICAgICAgcHVibGljIGZsb2F0IG05OwotICAgICAg
IHB1YmxpYyBmbG9hdCBtMTA7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMTsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRyaXg0NF90
Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCi0gICAgICAgcHVibGlj
IGZsb2F0IG0xOwotICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bTM7Ci0gICAgICAgcHVibGljIGZsb2F0IG00OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNTsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbTY7Ci0gICAgICAgcHVibGljIGZsb2F0IG03OwotICAgICAgIHB1
YmxpYyBmbG9hdCBtODsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTk7Ci0gICAgICAgcHVibGljIGZs
b2F0IG0xMDsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTExOwotICAgICAgIHB1YmxpYyBmbG9hdCBt
MTI7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMzsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTE0Owot
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Ci17Ci0gICAgICAgcHVibGljIGZs
b2F0IHYwOyAvL2Zsb2F0WzNdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotICAgICAgIHB1Ymxp
YyBmbG9hdCB2MjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgdjA7IC8vZmxv
YXRbNF0KLSAgICAgICBwdWJsaWMgZmxvYXQgdjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHYyOwot
ICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Ci17Ci0gICAgICAgcHVibGljIGRv
dWJsZSB2MDsgLy9kb3VibGVbM10KLSAgICAgICBwdWJsaWMgZG91YmxlIHYxOwotICAgICAgIHB1
YmxpYyBkb3VibGUgdjI7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHYwOyAv
L2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAg
ICAgIHB1YmxpYyBkb3VibGUgdzsKLSAgICAgICBwdWJsaWMgZG91YmxlIHg7Ci0gICAgICAgcHVi
bGljIGRvdWJsZSB5OwotICAgICAgIHB1YmxpYyBkb3VibGUgejsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAg
ICAgcHVibGljIGZsb2F0IHI7Ci0gICAgICAgcHVibGljIGZsb2F0IGc7Ci0gICAgICAgcHVibGlj
IGZsb2F0IGI7Ci0gICAgICAgcHVibGljIGZsb2F0IGE7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Ci17Ci0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCi0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2
Q29ybmVyczI7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUmVjdDJf
dAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgcHVibGlj
IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0
IHJmUmVkMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0KLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTA7IC8v
ZmxvYXRbMl0KLSAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAg
ICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCi0gICAgICAgcHVibGljIEVUZXh0dXJl
VHlwZSBlVHlwZTsKLSAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVHJhY2tl
ZERldmljZVBvc2VfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmc7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7Ci0g
ICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYkRldmlj
ZUlzQ29ubmVjdGVkOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHVN
aW47Ci0gICAgICAgcHVibGljIGZsb2F0IHZNaW47Ci0gICAgICAgcHVibGljIGZsb2F0IHVNYXg7
Ci0gICAgICAgcHVibGljIGZsb2F0IHZNYXg7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAg
ICAgcHVibGljIHVsb25nIG1fbkltYWdlOwotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wRGV2aWNl
OyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BQaHlzaWNh
bERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAgICAgcHVibGlj
IEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCi0gICAgICAgcHVibGljIHVp
bnQgbV9uUXVldWVGYW1pbHlJbmRleDsKLSAgICAgICBwdWJsaWMgdWludCBtX25XaWR0aDsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uRm9ybWF0
OwotICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAot
ewotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNv
dXJjZSAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWUgKgotICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNrOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ29udHJvbGxlcl90Ci17Ci0gICAgICAgcHVibGljIHVpbnQgYnV0dG9uOwotfQotW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfTW91
c2VfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCB4OwotICAgICAgIHB1YmxpYyBmbG9hdCB5Owot
ICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0gICAgICAgcHVi
bGljIGZsb2F0IHhkZWx0YTsKLSAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOwotICAgICAgIHB1
YmxpYyB1aW50IHJlcGVhdENvdW50OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKLXsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJGaW5nZXJE
b3duOwotICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotICAgICAgIHB1
YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlGaXJz
dDsKLSAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBwdWJsaWMgZmxvYXQg
ZlZhbHVlWVJhdzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgcHVibGljIHVsb25n
IHVsVXNlclZhbHVlOwotICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOwotfQotW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
UHJvY2Vzc190Ci17Ci0gICAgICAgcHVibGljIHVpbnQgcGlkOwotICAgICAgIHB1YmxpYyB1aW50
IG9sZFBpZDsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1
YmxpYyBib29sIGJGb3JjZWQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKLXsKLSAgICAgICBwdWJsaWMgdWxv
bmcgb3ZlcmxheUhhbmRsZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgcHVibGljIHVpbnQg
c3RhdHVzU3RhdGU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgcHVibGljIGJ5dGUgY05l
d0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0LGNOZXdJ
bnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OwotICAgICAgIHB1YmxpYyB1bG9uZyB1VXNlclZh
bHVlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IFZSRXZlbnRfSXBkX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJzOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNVbml2ZXJz
ZTsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUmVzZXJ2
ZWRfdAotewotICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7Ci0gICAgICAgcHVibGljIHVs
b25nIHJlc2VydmVkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wg
YlJlc2V0QnlTeXN0ZW1NZW51OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgaGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Ci19Ci1bU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBwaWQ7Ci0gICAgICAgcHVibGlj
IHVpbnQgdW5BcmdzSGFuZGxlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAotewotICAg
ICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IG5WaXN1
YWxNb2RlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHB1YmxpYyB1aW50IHVu
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIHB1
YmxpYyB1bG9uZyBjb250YWluZXI7Ci0gICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBWUkV2ZW50X3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7Ci0gICAg
ICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OwotICAgICAgIHB1YmxpYyBmbG9hdCBl
dmVudEFnZVNlY29uZHM7Ci0gICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSGlkZGVu
QXJlYU1lc2hfdAotewotICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8vIGNvbnN0
IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xl
Q291bnQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBz
dHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHg7Ci0gICAg
ICAgcHVibGljIGZsb2F0IHk7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAotewotICAgICAgIHB1YmxpYyB1
aW50IHVuUGFja2V0TnVtOwotICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7Ci0g
ICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBwdWJsaWMgVlJDb250
cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KLSAgICAgICBwdWJs
aWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVy
QXhpc190IHJBeGlzMjsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMzsK
LSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKLX0KLS8vIFRoaXMgc3Ry
dWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5k
IE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQp
XSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCi17Ci0gICAgICAgcHVi
bGljIHVpbnQgdW5QYWNrZXROdW07Ci0gICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOwotICAgICAgIHB1YmxpYyBW
UkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQotICAgICAg
IHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOwotICAgICAgIHB1YmxpYyBWUkNvbnRy
b2xsZXJBeGlzX3QgckF4aXMyOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4
aXMzOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OwotICAgICAgIHB1
YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBhY2tldE51
bTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51bEJ1dHRv
blByZXNzZWQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9IHRoaXMu
dWxCdXR0b25Ub3VjaGVkOwotICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0aGlzLnJB
eGlzMDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7Ci0gICAg
ICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOwotICAgICAgICAgICAgICB1
bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4
aXM0ID0gdGhpcy5yQXhpczQ7Ci0gICAgICAgfQotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCi17
Ci0gICAgICAgcHVibGljIHVpbnQgc2l6ZTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKLSAgICAgICBw
dWJsaWMgZmxvYXQgc2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOwotICAgICAg
IHB1YmxpYyBmbG9hdCBhbHBoYTsKLSAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKLSAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxlOwotICAg
ICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWREaXZzOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWRT
Y2FsZTsKLSAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Ci19Ci1bU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJhVmlkZW9T
dHJlYW1GcmFtZUhlYWRlcl90Ci17Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKLSAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7Ci0gICAgICAgcHVi
bGljIHVpbnQgbkhlaWdodDsKLSAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhlbDsKLSAg
ICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKLSAgICAgICBwdWJsaWMgVHJhY2tlZERl
dmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Ci17
Ci0gICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgotICAgICAgIHB1
YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1p
bmcKLXsKLSAgICAgICBwdWJsaWMgdWludCBtX25TaXplOwotICAgICAgIHB1YmxpYyB1aW50IG1f
bkZyYW1lSW5kZXg7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7Ci0gICAgICAgcHVibGljIHVpbnQg
bV9uTnVtRHJvcHBlZEZyYW1lczsKLSAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2plY3Rpb25G
bGFnczsKLSAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwotICAg
ICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0
IG1fZmxQb3N0U3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3RhbFJlbmRl
ckdwdU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1zOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOwotICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZXNl
bnRDYWxsQ3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBwdWJsaWMg
ZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2Zs
TmV3UG9zZXNSZWFkeU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVSZWFkeU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAg
ICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7Ci0gICAgICAgcHVibGlj
IGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBwdWJsaWMgVHJhY2tl
ZERldmljZVBvc2VfdCBtX0htZFBvc2U7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25QaWQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQ
cmVzZW50czsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVt
RHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2pl
Y3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2FkaW5nOwot
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAgICAgIHB1
YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICBwdWJsaWMgdWludCBtX25O
dW1UaW1lZE91dDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRP
dXQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5
SW50ZXJzZWN0aW9uUGFyYW1zX3QKLXsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZTb3Vy
Y2U7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJl
c3VsdHNfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OwotICAgICAgIHB1
YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90IHZV
VnM7Ci0gICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFu
Z2xlX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOwotICAgICAgIHB1Ymxp
YyBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0aDsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgcHVibGljIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdAotewotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBwdWJsaWMg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVu
ZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90
IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7Ci0gICAgICAgcHVibGljIEhtZE1hdHJp
eDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKLSAgICAgICBwdWJsaWMgdWludCB1UHJv
cGVydGllczsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3Iz
X3QgdlBvc2l0aW9uOwotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGlj
IGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKLXsKLSAgICAg
ICBwdWJsaWMgY2hhciB1bldpZHRoOwotICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0OwotICAg
ICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fQotLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0aWJpbGl0
eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90X1Bh
Y2tlZAotewotICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7Ci0gICAgICAgcHVibGljIGNoYXIg
dW5IZWlnaHQ7Ci0gICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsgLy8gY29u
c3QgdWludDhfdCAqCi0gICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJNb2RlbF9U
ZXh0dXJlTWFwX3QgdW5wYWNrZWQpCi0gICAgICAgewotICAgICAgICAgICAgICB1bnBhY2tlZC51
bldpZHRoID0gdGhpcy51bldpZHRoOwotICAgICAgICAgICAgICB1bnBhY2tlZC51bkhlaWdodCA9
IHRoaXMudW5IZWlnaHQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVNYXBEYXRh
ID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKLSAgICAgICB9Ci19Ci1bU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAotewotICAg
ICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVy
TW9kZWxfVmVydGV4X3QgKgotICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7Ci0gICAg
ICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCi0gICAgICAg
cHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OwotICAgICAgIHB1YmxpYyBpbnQgZGlmZnVzZVRl
eHR1cmVJZDsKLX0KLS8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNv
bXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3RfUGFj
a2VkCi17Ci0gICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qgc3RydWN0
IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgcHVibGljIHVpbnQgdW5WZXJ0ZXhD
b3VudDsKLSAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVpbnQxNl90
ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgcHVibGljIGlu
dCBkaWZmdXNlVGV4dHVyZUlkOwotICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVuZGVy
TW9kZWxfdCB1bnBhY2tlZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJWZXJ0
ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5WZXJ0
ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQucklu
ZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5Ucmlh
bmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgICAgICAgIHVucGFja2Vk
LmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7Ci0gICAgICAgfQotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRl
ck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKLXsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgTm90
aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdlRGF0YTsg
Ly8gdm9pZCAqCi0gICAgICAgcHVibGljIGludCBtX25XaWR0aDsKLSAgICAgICBwdWJsaWMgaW50
IG1fbkhlaWdodDsKLSAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09wZW5WUkNv
bnRleHQKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6
SVZSU3lzdGVtICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFz
cyB2cjo6SVZSQ2hhcGVyb25lICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25l
U2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgot
ICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJSZXNv
dXJjZXMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNsYXNz
IHZyOjpJVlJSZW5kZXJNb2RlbHMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJFeHRlbmRl
ZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgotICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGlj
YXRpb25zICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xh
c3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJTY3Jl
ZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKLX0KLQotcHVibGljIGNsYXNz
IE9wZW5WUgotewotCi0gICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5hbChyZWYg
RVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5pdEludGVy
bmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICB9Ci0KLSAgICAgICBw
dWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLSAgICAg
ICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOwotICAgICAgIH0KLQotICAg
ICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0g
ICAgICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9ySG1kRXJy
b3IoRVZSSW5pdEVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1kRXJyb3Io
ZXJyb3IpKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBHZXRHZW5l
cmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9yKTsKLSAg
ICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9uVmFs
aWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCi0gICAgICAgewotICAgICAgICAgICAgICBy
ZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZhY2VW
ZXJzaW9uKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0SW5pdFRv
a2VuKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkdldElu
aXRUb2tlbigpOwotICAgICAgIH0KLQotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhE
cml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50
IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKLSAgICAgICBwdWJsaWMgY29uc3QgdWlu
dCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7Ci0gICAgICAgcHVibGljIGNvbnN0IHVp
bnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7
Ci0gICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIg
PSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAw
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKLSAg
ICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1
aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7Ci0gICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOwotICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLSAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAw
MDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9
IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhhbmRsZUlu
dmFsaWQgPSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCA9IDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1fVmVyc2lv
biA9ICJJVlJTeXN0ZW1fMDE1IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkV4dGVu
ZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRD
YW1lcmFfMDAzIjsKLSAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGljYXRpb25L
ZXlMZW5ndGggPSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9NaW1lVHlw
ZV9Ib21lQXBwID0gInZyL2hvbWUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18w
MDYiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lXzAwMyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDaGFwZXJv
bmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAi
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggPSAx
Mjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGgg
PSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0g
ImJhc2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfVGlwID0gInRpcCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250
cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3RhdHVzIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklW
UlJlbmRlck1vZGVsc18wMDUiOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Ob3RpZmlj
YXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUk5v
dGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0
ZWFtdnIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXF1aXJl
SG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3RyaW5n
ID0gImZvcmNlZEhtZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJv
Y2Vzc1BpcGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFi
bGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURl
YnVnWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlE
ZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lz
dGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VE
b21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9y
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jv
b2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVy
cyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVf
Qm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9J
bnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zm
c2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1h
bmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0g
Im5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVsdGlw
bGllciI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93QXN5
bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCA9
ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVj
dGlvbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFk
ZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIg
PSAiZGVmYXVsdE1pcnJvclZpZXciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmlu
ZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21B
cHBMYXVuY2giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0RGFz
aGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3ZlcmxheUFw
cHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQiOwot
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0g
ImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5k
SW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJy
ZXRhaWxEZW1vIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSXBk
T2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlz
YWJsZWltdSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX1Vz
ZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50
MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0
YXRpb24iOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EQkhp
c3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAi
bW9kZWxOdW1iZXIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5k
b3dYX0ludDMyID0gIndpbmRvd1giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5k
b3dIZWlnaHQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5kZXJX
aWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zs
b2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVu
Y3kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TZWN0
aW9uID0gInVzZXJpbnRlcmZhY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
VXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9w
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1p
emVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5z
aG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOwotICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9v
bCA9ICJEb05vdERpc3R1cmIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5
Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNj
YWxlWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09m
ZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOwotICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhp
bmciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9uID0gInBl
cmZjaGVjayI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hldXJpc3Rp
Y0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJu
T25seU9uY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9BbGxvd1Rp
bWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NP
bkV4aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0RGF0YV9G
bG9hdCA9ICJwZXJmVGVzdERhdGEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKLSAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNTdHlsZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91
bmRQZXJpbWV0ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJr
ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
UGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zs
b2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlz
aW9uQm91bmRzQ29sb3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFHIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFf
SW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFibGVDYW1l
cmEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJv
dW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9v
bCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9
ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc1N0
cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOwotICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5
YmFja0RldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19PblJl
Y29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja01pcnJvckRldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9h
dWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmlu
ZyA9ICJvZmZSZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
YXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZlNjcmVl
bnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0
ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9X
YXRjaGRvZ1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJf
QXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfU2Vj
dGlvbiA9ICJkYXNoYm9hcmQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFz
aGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFy
Y2FkZU1vZGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxza2luX1Nl
Y3Rpb24gPSAibW9kZWxza2lucyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9E
cml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18w
MDEiOwotCi0gICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9Ci0KLSAgICAg
ICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOwotCi0gICAgICAgY2xh
c3MgQ09wZW5WUkNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1YmxpYyBDT3BlblZS
Q29udGV4dCgpIHsgQ2xlYXIoKTsgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFy
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9w
VlJPdmVybGF5ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxz
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICBtX3BWUlRy
YWNrZWRDYW1lcmEgPSBudWxsOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgdm9p
ZCBDaGVja0NsZWFyKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYg
KFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZSU3lzdGVt
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwot
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCi0gICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVW
UkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJm
YWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lW
UlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0g
bmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKLSAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9y
Lk5vbmU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVu
VlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVyb25l
X1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
SW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBuZXcg
Q1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25lU2V0dXAo
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxsKQotICAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJy
b3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1By
ZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3Ig
PT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVyZmFjZSk7
Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9w
VlJDaGFwZXJvbmVTZXR1cDsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1Ymxp
YyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BW
UkNvbXBvc2l0b3IgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21wb3NpdG9y
KHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUk92ZXJsYXkgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCByZWYgZUVy
cm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQ
dHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJbnRlcmZh
Y2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1fcFZST3ZlcmxheTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyBD
VlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAobV9w
VlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24s
IHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNl
ICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcgQ1ZSUmVu
ZGVyTW9kZWxzKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVkRGlzcGxh
eSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsK
LSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxsKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVy
cm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXkocEludGVy
ZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUlNldHRpbmdzID09IG51bGwpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRH
ZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24sIHJlZiBl
RXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IElu
dFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5ncyhwSW50
ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVi
bGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVy
b3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlvbnNfVmVy
c2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRl
cmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9IG5ldyBD
VlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5zaG90cygp
Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCi0gICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJ
bml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJT
Y3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKLSAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNob3Rz
OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNrZWRDYW1l
cmEgVlJUcmFja2VkQ2FtZXJhKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJhY2tlZENh
bWVyYSA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0lu
dGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJlZiBlRXJy
b3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0
ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNrZWRDYW1l
cmEocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICBwcml2YXRl
IENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAgIHByaXZh
dGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7Ci0gICAgICAgICAgICAgIHByaXZhdGUgQ1ZSUmVu
ZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkV4
dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKLSAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkFw
cGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKLSAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJT
Y3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUlRy
YWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgIH07Ci0KLSAgICAgICBwcml2
YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCA9
IG51bGw7Ci0gICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFsX01vZHVs
ZUNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGdldAotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQgPT0g
bnVsbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxfTW9kdWxl
Q29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOwotICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0YXRp
YyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVy
bmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0
YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9Ci0KLSAg
ICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFu
ZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIEluaXQo
cmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9u
VHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSk7Ci0gICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQu
Q2xlYXIoKTsKLQotICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJyb3IuTm9u
ZSkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgICAgICAgIGJv
b2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lzdGVtX1Zl
cnNpb24pOwotICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKLSAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOwotICAgICAgICAg
ICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKLSAgICAgICB9Ci0KLSAgICAgICAv
KiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUg
aW50ZXJmYWNlIGFyZQotICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCi0gICAg
ICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IFNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLX0KLQotCi0KLX0KLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2MGY3YTQx
OGQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorKysgL2Rldi9udWxs
CkBAIC0xLDM3ODkgKzAsMCBAQAoteyJ0eXBlZGVmcyI6W3sidHlwZWRlZiI6ICJ2cjo6Z2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9Ci0seyJ0eXBlZGVmIjogInZyOjpn
bEludF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OmdsVUludF90Iiwi
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQ
cm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3QifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZlbnRfRGF0YV90In0KLSx7InR5cGVk
ZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBlIjogInN0cnVjdCB2cjo6VlJDb250
cm9sbGVyU3RhdGUwMDFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIs
InR5cGUiOiAidWludDY0X3QifQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRs
ZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTY3JlZW5zaG90SGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlwZSI6ICJ1bmlvbiBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUkNv
bXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6
OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZSTm90
aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OkhtZEVy
cm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6
SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0KLSx7InR5cGVkZWYiOiAidnI6OkNv
bG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn0KLSx7InR5cGVkZWYiOiAi
dnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQi
fQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNsYXNzIiwidHlwZSI6ICJlbnVtIHZy
OjpFVHJhY2tlZERldmljZUNsYXNzIn0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNraW5nVW5pdmVy
c2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0KLSx7
InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsInR5cGUiOiAiZW51bSB2cjo6
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpUcmFja2VkUHJvcGVy
dHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KLSx7InR5
cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUiOiAiZW51bSB2cjo6RVZSU3VibWl0
RmxhZ3MifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90IiwidHlwZSI6ICJlbnVtIHZyOjpF
VlJTdGF0ZSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpDb2xsaXNpb25Cb3VuZHNTdHlsZV90IiwidHlw
ZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUk92ZXJsYXlFcnJvciJ9Ci0seyJ0
eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkZpcm13
YXJlRXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21wb3NpdG9yRXJyb3IiLCJ0eXBlIjog
ImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUlNjcmVl
bnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNjcmVlbnNob3RFcnJvciJ9Ci1dLAot
ImVudW1zIjpbCi0gICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXllIiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1l
IjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVGV4dHVyZVR5
cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVf
T3BlbkdMIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9WdWxr
YW4iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX0lPU3VyZmFj
ZSIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0WDEy
IiwidmFsdWUiOiAiNCJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sb3JTcGFj
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkNvbG9yU3BhY2VfQXV0byIsInZhbHVl
IjogIjAifQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9HYW1tYSIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5lYXIiLCJ2YWx1ZSI6ICIyIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1Jlc3VsdCIsInZhbHVlcyI6IFsg
Ci0gICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQiLCJ2YWx1ZSI6
ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX0luUHJv
Z3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRf
Q2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUiOiAiMjAwIn0KLSAgICAgICAseyJu
YW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjIwMSJ9
Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwidmFs
dWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19ITUQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyIiwidmFsdWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRE
ZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSIsInZhbHVlcyI6IFsgCi0g
ICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkIiwidmFsdWUiOiAi
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9SaWdo
dEhhbmQiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFsdWUiOiAiMiJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5IiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAwIn0K
LSAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJfU3RyaW5nIiwidmFsdWUiOiAiMTAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6
ICIxMDAyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyIs
InZhbHVlIjogIjEwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sIiwidmFsdWUiOiAiMTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Ry
YWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDYifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDcifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmciLCJ2YWx1ZSI6ICIxMDA4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjogIjEwMTAifQotICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2YWx1ZSI6ICIxMDExIn0KLSAgICAg
ICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQiLCJ2YWx1ZSI6
ICIxMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9N
YXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2Fy
ZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIsInZhbHVlIjogIjEwMTUifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIiwidmFs
dWUiOiAiMTAxNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWlu
dDY0IiwidmFsdWUiOiAiMTAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRlBH
QVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIxIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sIiwidmFsdWUiOiAiMTAyMyJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCIsInZhbHVlIjogIjEwMjQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sIiwidmFsdWUiOiAiMTAyNiJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wiLCJ2YWx1ZSI6ICIx
MDI3In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRf
U3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNs
YXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhc0Nh
bWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RyaXZl
clZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzIifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCIsInZh
bHVlIjogIjEwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
IiwidmFsdWUiOiAiMTAzNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Nl
Y29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsInZhbHVlIjogIjIwMDIifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAw
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCIsInZh
bHVlIjogIjIwMDQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRf
VWludDY0IiwidmFsdWUiOiAiMjAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlG
aXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAwNiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIyMDA3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVlIjogIjIwMDgifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQiLCJ2YWx1ZSI6ICIyMDA5In0KLSAg
ICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDEw
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRvcklEX0ludDMyIiwidmFsdWUiOiAi
MjAxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmci
LCJ2YWx1ZSI6ICIyMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VS
aWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUiOiAiMjAxNSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjogIjIw
MTYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyIiwidmFsdWUi
OiAiMjAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCIs
InZhbHVlIjogIjIwMTgifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCIsInZhbHVlIjogIjIwMTkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NQ
cmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIxIn0KLSAgICAgICAseyJuYW1lIjog
IlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUiOiAiMjAyMiJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjMifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0IiwidmFsdWUiOiAiMjAy
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQiLCJ2YWx1
ZSI6ICIyMDI1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDI3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmciLCJ2YWx1ZSI6ICIyMDI4
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCIsInZh
bHVlIjogIjIwMjkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMzIi
fQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiIs
InZhbHVlIjogIjIwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90SG9yaXpv
bnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzQifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQi
LCJ2YWx1ZSI6ICIyMDM1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzcifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFsdWUiOiAiMjAzOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyIiwidmFsdWUiOiAiMjAz
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50
MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjA0MiJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwidmFsdWUiOiAiMzAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0IiwidmFsdWUiOiAiMzAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDIifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDAzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMzVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDUifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzNFR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDA2In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
IiwidmFsdWUiOiAiMzAwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3Bf
RmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiNDAw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9h
dCIsInZhbHVlIjogIjQwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1Jhbmdl
TWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDUifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3RyaW5nIiwidmFsdWUiOiAiNDAwNiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICI1
MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJp
bmciLCJ2YWx1ZSI6ICI1MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0
aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1MDAyIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyIsInZhbHVl
IjogIjUwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVh
ZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDUifQotICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nIiwidmFs
dWUiOiAiNTAwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwidmFsdWUiOiAiNTAwOCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCIsInZhbHVl
IjogIjUxMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjog
IjEwOTk5In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlRyYWNrZWRQcm9wX1N1Y2Nlc3Mi
LCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGF0YVR5
cGUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGV2
aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0J1
ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJv
cF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlIiwidmFsdWUiOiAi
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxl
bmd0aCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfTm90WWV0
QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Q
ZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjExIn0KLV19Ci0sICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlN1Ym1p
dF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlN0
YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVf
T2ZmIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZyIs
InZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQi
LCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHkiLCJ2YWx1ZSI6
ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHlfQWxlcnQiLCJ2YWx1ZSI6ICI0
In0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVhZHkiLCJ2YWx1ZSI6ICI1In0KLSAg
ICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2YWx1ZSI6ICI3In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkIiwidmFsdWUiOiAiMTAx
In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQiLCJ2YWx1
ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCIsInZhbHVlIjogIjEwNCJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA2In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSIsInZhbHVlIjogIjEw
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCIs
InZhbHVlIjogIjEwOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1dhdGNoZG9nV2FrZVVw
UmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMwMiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
VG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjogIjQwMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZhbHVlIjogIjQwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0IiwidmFsdWUiOiAiNDAyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCIsInZhbHVlIjogIjQwMyJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkIiwidmFsdWUi
OiAiNDA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQiLCJ2
YWx1ZSI6ICI0MDUifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdl
ZCIsInZhbHVlIjogIjQwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFsdWUiOiAiNDA3In0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMiLCJ2YWx1ZSI6ICI0MTEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hvd24iLCJ2YWx1ZSI6ICI1MDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlkZGVuIiwidmFsdWUiOiAiNTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkIiwidmFsdWUiOiAi
NTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQiLCJ2
YWx1ZSI6ICI1MDMifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkIiwidmFsdWUiOiAiNTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
U2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjogIjUxMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0IiwidmFsdWUiOiAiNTEyIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkIiwidmFs
dWUiOiAiNTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0
b25Eb3duIiwidmFsdWUiOiAiNTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1MTYifQotICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUxNyJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwidmFsdWUiOiAiNTE4In0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QiLCJ2YWx1ZSI6ICI1MjAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90VGFrZW4iLCJ2YWx1ZSI6ICI1MjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkIiwidmFsdWUiOiAi
NTIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJv
YXJkIiwidmFsdWUiOiAiNTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCIsInZhbHVlIjogIjUyNSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biIsInZhbHVlIjogIjYw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4iLCJ2YWx1
ZSI6ICI2MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5J
bnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05v
dGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9R
dWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjogIjcwMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2YWx1ZSI6ICI3MDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdl
ZCIsInZhbHVlIjogIjgwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVRl
bXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MDMifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0IiwidmFsdWUiOiAiODA0In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFs
dWUiOiAiODIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdI
YXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2Ft
ZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUyIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCIs
InZhbHVlIjogIjg1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Vudmlyb25tZW50U2V0
dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVlIjogIjkwMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFsdWUiOiAiMTAwMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCIsInZhbHVlIjogIjExMDAi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIiwidmFs
dWUiOiAiMTEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2xvc2VkIiwi
dmFsdWUiOiAiMTIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2hhcklu
cHV0IiwidmFsdWUiOiAiMTIwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJk
RG9uZSIsInZhbHVlIjogIjEyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMzAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCIsInZhbHVlIjogIjEzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUiOiAiMTMwNCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRl
IiwidmFsdWUiOiAiMTMwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3Jf
TWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4iLCJ2YWx1ZSI6ICIxNDAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biIs
InZhbHVlIjogIjE0MTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAwIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0i
LCJ2YWx1ZSI6ICIxNTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVy
YV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAzIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSIs
InZhbHVlIjogIjE1NTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQotICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUiLCJ2YWx1ZSI6ICIxNjAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwiLCJ2
YWx1ZSI6ICIxNjAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlf
Q2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAiMTAwMDAifQotICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQiLCJ2YWx1ZSI6ICIxOTk5
OSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZlbCIs
InZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5r
bm93biIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQiLCJ2YWx1
ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRi
eSIsInZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQnV0dG9u
SWQiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX0VCdXR0b25fU3lzdGVtIiwidmFs
dWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQXBwbGljYXRpb25NZW51Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fR3JpcCIsInZhbHVlIjog
IjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfTGVmdCIsInZhbHVlIjogIjMi
fQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfVXAiLCJ2YWx1ZSI6ICI0In0KLSAg
ICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0IiwidmFsdWUiOiAiNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjcifQotICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjogIjMxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRv
bl9BeGlzMiIsInZhbHVlIjogIjM0In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlz
MyIsInZhbHVlIjogIjM1In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzNCIsInZh
bHVlIjogIjM2In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFk
IiwidmFsdWUiOiAiMzIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVHJp
Z2dlciIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EYXNoYm9h
cmRfQmFjayIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX01heCIs
InZhbHVlIjogIjY0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk1vdXNlQnV0
dG9uIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJNb3VzZUJ1dHRvbl9MZWZ0Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX1JpZ2h0IiwidmFs
dWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX01pZGRsZSIsInZhbHVl
IjogIjQifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUhpZGRlbkFyZWFNZXNoVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX1N0YW5k
YXJkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9J
bnZlcnNlIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVz
aF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19lSGlkZGVuQXJl
YU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1ZSI6ICIzIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUiLCJ2YWx1ZXMi
OiBbIAotICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2
ZW50cyIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNvbGxp
c2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyIsInZhbHVlIjogIjIi
fQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCIsInZh
bHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05F
IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxF
X0NPVU5UIiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9V
bmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTIifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQiLCJ2YWx1ZSI6ICIx
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBl
IiwidmFsdWUiOiAiMTQifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5VG9v
TG9uZyIsInZhbHVlIjogIjE1In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJy
b3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIxOCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSIsInZhbHVlIjogIjE5In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIiLCJ2YWx1ZSI6
ICIyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50QmVE
ZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIzIn0KLSAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMjQifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSIsInZhbHVlIjogIjI1In0K
LSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlIiwi
dmFsdWUiOiAiMjYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJv
ciIsInZhbHVlIjogIjI3In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Rvb01h
bnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6ICIzMCJ9Ci1dfQotLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAg
IHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVlIjogIjUifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVlIjogIjcifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZhbHVlIjogIjEifQotICAgICAgICx7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAKLSAg
ICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9PSyIsInZhbHVlIjogIjAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQi
LCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9O
b3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEifQotICAgICAgICx7Im5hbWUiOiAi
VlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSIsInZhbHVlIjogIjEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFs
dWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSSW5p
dEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0IiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCIs
InZhbHVlIjogIjEwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwidmFsdWUiOiAiMTA1In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJl
Y3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kIiwidmFsdWUi
OiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRo
IiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9M
b2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCIsInZhbHVlIjogIjExNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1JldHJ5IiwidmFsdWUiOiAiMTE1
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2Vy
IiwidmFsdWUiOiAiMTE2In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfQW5v
dGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZhbHVlIjogIjExOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biIsInZhbHVlIjogIjExOSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzIiwidmFs
dWUiOiAiMTIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJG
b3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IiLCJ2YWx1ZSI6ICIxMjIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlB
cHBzIiwidmFsdWUiOiAiMTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
SW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEyNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQiLCJ2YWx1ZSI6ICIx
MjYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3Vu
ZCIsInZhbHVlIjogIjEyNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZS
TW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkIiwidmFsdWUiOiAi
MTI5In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFsdWUiOiAiMTMxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MiLCJ2
YWx1ZSI6ICIxMzIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwidmFsdWUiOiAiMTM0In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQiLCJ2YWx1ZSI6ICIyMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24iLCJ2YWx1ZSI6ICIy
MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24iLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdExv
YWRlZCIsInZhbHVlIjogIjIwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6ICIyMDUifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyMDYifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCIs
InZhbHVlIjogIjIwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biIsInZhbHVlIjogIjIw
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRP
ZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAiMjEyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAwIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkIiwidmFsdWUiOiAi
MzAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIsInZhbHVlIjogIjMwNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0
b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzIiwi
dmFsdWUiOiAiMzA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFsdWUiOiAiNDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSIs
InZhbHVlIjogIjQwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Db21wb3NpdG9y
X092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkIiwidmFsdWUiOiAiNDA0
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEwMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UiLCJ2
YWx1ZSI6ICIxMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0IiwidmFsdWUiOiAiMTEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9O
b1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnIiwidmFsdWUiOiAiMTEw
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiIsInZhbHVl
IjogIjExMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMTA3In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
U2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFy
dCIsInZhbHVlIjogIjExMDkifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQiLCJ2YWx1ZSI6ICIxMTEw
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTExMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yIiwidmFs
dWUiOiAiMTExMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIsInZhbHVlIjogIjExMTMifQotICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZCIsInZhbHVlIjogIjIwMDAifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTW9ubyIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6ICI1In0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZp
ZXciLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJW
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQiLCJ2YWx1ZSI6ICIxMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSIsInZh
bHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZh
bGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIsInZhbHVlIjogIjEwMyJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlIiwidmFsdWUiOiAi
MTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRl
ZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIsInZhbHVlIjogIjEwNiJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUi
LCJ2YWx1ZSI6ICIxMDcifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCIsInZhbHVlIjogIjEwOSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1l
cmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlIiwidmFs
dWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJh
bWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJu
YW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUiLCJ2YWx1
ZSI6ICIxMTUifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIsInZhbHVlIjogIjEifQotICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCIs
InZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAiTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyIs
InZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25FcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJy
b3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4Iiwi
dmFsdWUiOiAiMTAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Vbmtu
b3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEwNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlm
ZXN0IiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmci
LCJ2YWx1ZSI6ICIxMTAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0xh
dW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmciLCJ2YWx1ZSI6ICIxMTIifQotICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkIiwidmFs
dWUiOiAiMTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBs
YXRlIiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjIw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFtZXRl
ciIsInZhbHVlIjogIjIwMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBs
aWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9y
eV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICIxMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyIsInZhbHVlIjogIjE0
In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nIiwi
dmFsdWUiOiAiMTUifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rl
c2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZhbHVlIjogIjUxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nIiwidmFsdWUi
OiAiNTIifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9T
dHJpbmciLCJ2YWx1ZSI6ICI1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1ZSI6ICI2MCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sIiwidmFsdWUiOiAi
NjEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2Vk
X0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCIsInZhbHVlIjogIjcw
In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25fTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6ICIxMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2giLCJ2
YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9O
ZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmciLCJ2YWx1ZSI6ICIx
MDAifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5n
X0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92ZWQi
LCJ2YWx1ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIxMDMifQotICAgICAg
ICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvciIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jh
c2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QiLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIyMDMifQotICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlk
IiwidmFsdWUiOiAiMjA0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAg
ICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAi
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVWZXJz
aW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9y
X0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiIsInZhbHVlIjog
IjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRv
ckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0
ZWQiLCJ2YWx1ZSI6ICIxMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1ZSI6ICIxMDgifQotXX0KLSwgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QiLCJ2YWx1ZXMiOiBbIAot
ICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lIiwidmFsdWUiOiAiMCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSIsInZhbHVlIjog
IjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50IiwidmFsdWUiOiAi
MyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlGbGFncyIsInZhbHVl
cyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vbmUiLCJ2YWx1ZSI6ICIw
In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX0N1cnZlZCIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUkdTUzRYIiwidmFsdWUiOiAiMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiIsInZhbHVl
IjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRF
dmVudHMiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1No
b3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjogIjYifQotICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMiLCJ2YWx1ZSI6ICI3In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsIiwi
dmFsdWUiOiAiOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93
bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsIiwidmFsdWUiOiAiMTAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkIiwidmFsdWUi
OiAiMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEiLCJ2YWx1
ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFt
YSIsInZhbHVlIjogIjEzIn0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NvcnRX
aXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0KLSAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZhbHVlIjogIjE1In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zIiwidmFs
dWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291
bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXki
LCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1l
IjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkIiwidmFsdWUiOiAiMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCIsInZhbHVl
IjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5w
dXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMiLCJ2YWx1ZSI6ICIxIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIiwidmFsdWVzIjog
WyAKLSAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9VcCIsInZhbHVlIjogIjAifQot
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Eb3duIiwidmFsdWUiOiAiMSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xlZnQiLCJ2YWx1ZSI6ICIyIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmlnaHQiLCJ2YWx1ZSI6ICIzIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291bnQiLCJ2YWx1ZSI6ICI0In0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIk92ZXJsYXlJbnRlcnNl
Y3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5h
bWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlIiwidmFsdWUiOiAi
MSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwi
dmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vbmUiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
IiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9O
b3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZhbHVlIjogIjMwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMiLCJ2YWx1ZSI6ICIzMDIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzIiwidmFs
dWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55
VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2Rl
bEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIzMDUifQotICAgICAgICx7Im5hbWUi
OiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMzA2In0KLSAg
ICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzIiwidmFs
dWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91
Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiNDAwIn0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAg
ICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyIsInZhbHVlIjogIjEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUiLCJ2YWx1ZSI6
ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkIiwi
dmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkVW
Uk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2Vy
VmFsdWUiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5v
dGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRVZSTm90aWZp
Y2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90
aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5h
bWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJs
ZWQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5
bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQotXX0KLSwgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkIiwidmFsdWUiOiAiNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZh
dWx0IiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNj
cmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kIiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFs
dWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX1NjcmVlbnNo
b3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9Ci1dfQotXSwKLSJjb25zdHMiOlt7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAg
ICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kIiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5U
cmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVHJh
Y2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VsSW52
YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVU
YWdfdCIsICJjb25zdHZhbCI6ICIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuRmxv
YXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJj
b25zdHZhbCI6ICIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSW50MzJQcm9wZXJ0
eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6
ICIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVWludDY0UHJvcGVydHlUYWciLCJj
b25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMyJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI0In0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
SGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjMwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuT3Bl
blZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMy
X3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5D
b250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAi
Y29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191bE92ZXJsYXlIYW5k
bGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3ZlcmxheUhhbmRsZV90IiwgImNvbnN0
dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIwIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1fVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTeXN0ZW1fMDE1In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJFeHRlbmRlZERpc3BsYXlf
MDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSVHJhY2tl
ZENhbWVyYV8wMDMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhBcHBsaWNhdGlv
bktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIx
MjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX01pbWVUeXBlX0hvbWVBcHAiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvaG9tZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvZ2FtZV90aGVhdGVy
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJBcHBsaWNhdGlv
bnNfMDA2In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJDaGFwZXJv
bmVfMDAzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVTZXR1cF9WZXJz
aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNo
YXBlcm9uZVNldHVwXzAwNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAiSVZSQ29tcG9zaXRv
cl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IklWUkNvbXBvc2l0b3JfMDIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVy
bGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFs
IjogIjEyOCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4In0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUNvdW50IiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0In0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzIifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5XzAxNCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJnZGMyMDE1In0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2UifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0aXAifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhhbmRncmlwIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhdHVzIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZW5kZXJNb2RlbHNfMDA1
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMjU2In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSTm90aWZpY2F0aW9uc18wMDIi
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGluZ3NfMDAyIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJlSG1kIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmciLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkRHJpdmVyIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkSG1k
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3Bs
YXlEZWJ1ZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EZWJ1Z1By
b2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0aW9uIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVnWCJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3BsYXlEZWJ1
Z1kifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRVc2VEb21l
UHJvamVjdGlvbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWlnaHQifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZERvbWVS
YWRpdXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfR3JpZENvbG9y
X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJn
cmlkQ29sb3IifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAicGxheUFyZWFDb2xvciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzaG93U3RhZ2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlyZWN0TW9kZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJl
Y3RNb2RlRWRpZFZpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVha2VycyJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVz
X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYXNlc3RhdGlvblBvd2VyTWFu
YWdlbWVudCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9OZXZlcktp
bGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2pl
Y3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZvcmNl
UmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Zv
cmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlZmF1bHRNaXJyb3JWaWV3
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2hv
d01pcnJvclZpZXcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTWly
cm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9z
aXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFz
aGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJsZUhv
bWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5h
YmxlSG9tZUFwcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZXRJ
bml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIn0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInJldGFpbERlbW8ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImlwZE9mZnNldCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2VkaXNhbWJpZ3VhdGlvbiJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlv
bkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImRpc2FtYmlndWF0aW9uZGVidWcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnliYXNlc3RhdGlvbiJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYmhpc3RvcnkifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2ZXJfbnVsbCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlcmlhbE51bWJlciJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmciLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxOdW1iZXIifQot
LHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dYIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93WSJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dXaWR0aCJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93SGVpZ2h0In0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlcldpZHRoIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJIZWln
aHQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3lu
Y1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheUZyZXF1ZW5jeSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZXJpbnRlcmZhY2UifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25U
b3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJT
dGF0dXNBbHdheXNPblRvcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlcklu
dGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdHMifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNjcmVlbnNob3RU
eXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibm90aWZp
Y2F0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTm90aWZpY2F0aW9uc19E
b05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJEb05vdERpc3R1cmIifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tl
eWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAia2V5Ym9hcmQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
S2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIlNjYWxlWSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0TGVmdFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRSaWdodFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0WSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU21v
b3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNt
b290aGluZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TZWN0aW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZjaGVjayJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9v
bCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJoZXVyaXN0
aWNBY3RpdmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5SW5I
TURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
YXJuSW5ITUQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ3YXJuT25seU9uY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfQWxs
b3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09uRXhpdCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVzdERhdGEifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNvbGxpc2lvbkJvdW5kcyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJv
dW5kc1N0eWxlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9u
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29s
bGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3Rh
bmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFS
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
QiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJjYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29s
bGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmFG
b3JSb29tVmlldyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUci
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1h
Ql9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzU3Ry
ZW5ndGgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXVkaW8ifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUGxheWJh
Y2tEZXZpY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUmVjb3Jk
RGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJvblJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01pcnJvckRldmljZSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlBsYXliYWNr
RGV2aWNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZSZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9mZlJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInZpdmVIRE1JR2FpbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93
ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfUG93ZXJPZmZP
bkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlck9mZk9uRXhpdCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJf
VHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGltZW91dCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNz
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImF1dG9MYXVu
Y2hTdGVhbVZST25CdXR0b25QcmVzcyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
RGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9EYXNo
Ym9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1vZGUifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
IklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0KLV0sCi0ic3RydWN0cyI6W3sic3Ry
dWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm0i
LCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kTWF0
cml4NDRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCBbNF1bNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNfdCIsImZpZWxkcyI6
IFsKLXsgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbM10ifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ2
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3Rv
cjNkX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZG91
YmxlIFszXSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yMl90IiwiZmllbGRzIjogWwot
eyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInci
LCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBl
IjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9
LAoteyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImciLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZp
ZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
SG1kUXVhZF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInZDb3JuZXJzIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6
OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlRvcExlZnQiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCi17ICJmaWVsZG5hbWUiOiAidkJv
dHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9XX0KLSx7
InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRu
YW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRuYW1l
IjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQotLHsic3RydWN0IjogInZy
OjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJlVHlwZSIsICJmaWVsZHR5cGUiOiAi
ZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCi17ICJmaWVsZG5hbWUiOiAiZUNvbG9yU3BhY2UiLCAi
ZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1dfQotLHsic3RydWN0IjogInZyOjpU
cmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRf
dCJ9LAoteyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZy
OjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2QW5ndWxhclZlbG9jaXR5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVU
cmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nUmVzdWx0In0s
Ci17ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAot
eyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5kc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUi
OiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ1TWF4Iiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInZNYXgiLCAiZmllbGR0eXBl
IjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpWUlZ1bGthblRleHR1cmVEYXRhX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
VmtEZXZpY2VfVCAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wUGh5c2ljYWxEZXZpY2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoteyAiZmllbGRuYW1lIjog
Im1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtJbnN0YW5jZV9UICoifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUXVldWVfVCAq
In0sCi17ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJbmRleCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0dXJlRGF0YV90IiwiZmllbGRzIjog
WwoteyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgSUQz
RDEyUmVzb3VyY2UgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcENvbW1hbmRRdWV1ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAi
bV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJidXR0
b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50
X01vdXNlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1
Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAi
eGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInlkZWx0YSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJyZXBlYXRDb3VudCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYkZpbmdlckRvd24iLCAiZmll
bGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAiZmxTZWNvbmRzRmluZ2VyRG93biIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJmVmFsdWVYRmlyc3QiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWUZpcnN0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImZWYWx1ZVhSYXciLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWVJhdyIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFsdWUiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCi17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uSWQiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Byb2Nlc3NfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17
ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmll
bGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQotLHsic3RydWN0Ijog
InZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJvdmVy
bGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJzdGF0dXNTdGF0
ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
S2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjTmV3SW5wdXQiLCAiZmll
bGR0eXBlIjogImNoYXIgWzhdIn0sCi17ICJmaWVsZG5hbWUiOiAidVVzZXJWYWx1ZSIsICJmaWVs
ZHR5cGUiOiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfSXBkX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFwZXJvbmVfdCIsImZpZWxkcyI6IFsK
LXsgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRVbml2ZXJzZSIsICJmaWVsZHR5cGUi
OiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCIsImZp
ZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxldmVsIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYlJlc2V0QnlTeXN0ZW1NZW51IiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JlZW5zaG90
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogInR5cGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IiwiZmll
bGRzIjogWwoteyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQot
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvcGVydHlf
dCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjb250YWluZXIiLCAiZmllbGR0eXBlIjog
IlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKLXsgImZpZWxkbmFtZSI6ICJwcm9wIiwgImZp
ZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In1dfQotLHsic3RydWN0
IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZl
ZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1Jlc2VydmVkX3QifSwKLXsgImZp
ZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
Q29udHJvbGxlcl90In0sCi17ICJmaWVsZG5hbWUiOiAibW91c2UiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCi17ICJmaWVsZG5hbWUiOiAic2Nyb2xsIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xsX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvY2Vzc190In0s
Ci17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKLXsgImZpZWxkbmFtZSI6ICJvdmVybGF5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3ZlcmxheV90In0sCi17ICJmaWVsZG5hbWUi
OiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU3RhdHVzX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X0tleWJvYXJkX3QifSwKLXsgImZpZWxkbmFtZSI6ICJpcGQiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoteyAiZmllbGRuYW1lIjogImNoYXBlcm9uZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBlcm9uZV90In0sCi17ICJmaWVsZG5h
bWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0b3VjaFBhZE1vdmUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCJ9LAoteyAiZmllbGRu
YW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdF90In0sCi17ICJm
aWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJhcHBsaWNh
dGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QifSwKLXsgImZpZWxkbmFtZSI6ICJjYW1lcmFTdXJmYWNlIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCJ9LAoteyAiZmllbGRu
YW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
TWVzc2FnZU92ZXJsYXlfdCJ9LAoteyAiZmllbGRuYW1lIjogInByb3BlcnR5IiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogImV2ZW50VHlwZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFja2VkRGV2aWNlSW5kZXgi
LCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICJmaWVsZG5hbWUiOiAi
ZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjog
ImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90In1dfQotLHsic3RydWN0IjogInZy
OjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBWZXJ0ZXhE
YXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0sCi17
ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhpc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAi
eSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSQ29udHJvbGxl
clN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidW5QYWNrZXROdW0iLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAidWxCdXR0b25QcmVzc2Vk
IiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVsQnV0dG9uVG91
Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJyQXhpcyIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3QgWzVdIn1dfQotLHsi
c3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncyIsImZpZWxkcyI6IFsKLXsg
ImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRu
YW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKLXsgImZpZWxkbmFtZSI6ICJh
bnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAic2NhbGUi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZGlzdGFuY2UiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYWxwaGEiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAidU9mZnNldCIsICJmaWVsZHR5cGUiOiAiZmxvYXQi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFt
ZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3Jp
ZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3JpZFdpZHRo
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImdyaWRTY2FsZSIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFuc2Zvcm0iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q2Ft
ZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjog
ImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUifSwKLXsgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCi17ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QifV19Ci0seyJzdHJ1Y3QiOiAi
dnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBjaEtl
eSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICJmaWVsZG5hbWUiOiAicGNoVmFs
dWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q29t
cG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25TaXpl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkZyYW1lSW5k
ZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJh
bWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJt
X25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGltZUluU2Vjb25kcyIsICJmaWVsZHR5
cGUiOiAiZG91YmxlIn0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZVN1Ym1pdEdwdU1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxQb3N0U3VibWl0R3B1TXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvdGFsUmVuZGVy
R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBv
c2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6
ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFtZUludGVydmFsTXMiLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZXNlbnRDYWxsQ3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRGb3JQcmVzZW50
Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFN1Ym1p
dEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdh
aXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXMiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRl
clN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9IbWRQ
b3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMiLCJmaWVsZHMiOiBbCi17ICJmaWVs
ZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJm
aWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lcyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURy
b3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtTG9hZGluZyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzTG9hZGlu
ZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9w
cGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmciLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURyb3BwZWRG
cmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2RGlyZWN0aW9uIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVPcmln
aW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn1dfQot
LHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCi17ICJmaWVsZG5hbWUiOiAidlVWcyIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJmRGlzdGFu
Y2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpJbnRlcnNlY3Rp
b25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvcExl
ZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxUb3BMZWZ0
WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsV2lkdGgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbEhlaWdodCIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlvbk1hc2tDaXJj
bGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWCIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWSIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsUmFkaXVzIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91cykiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJz
ZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCi17ICJmaWVsZG5hbWUiOiAibV9DaXJjbGUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNsZV90In1dfQotLHsic3Ry
dWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51
bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIn0sCi17ICJmaWVs
ZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjogIlZST3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQotLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9D
b21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1Rv
Q29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVQ
cm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVudFByb3BlcnRpZXMifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90IiwiZmllbGRzIjogWwoteyAiZmllbGRu
YW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInJmVGV4dHVyZUNvb3JkIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCBbMl0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1RleHR1cmVN
YXBfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1bldpZHRoIiwgImZpZWxkdHlwZSI6
ICJ1aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInVuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1
aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInJ1YlRleHR1cmVNYXBEYXRhIiwgImZpZWxkdHlw
ZSI6ICJjb25zdCB1aW50OF90ICoifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX3Qi
LCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiclZlcnRleERhdGEiLCAiZmllbGR0eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKiJ9LAoteyAiZmllbGRuYW1l
IjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29uc3QgdWludDE2X3QgKiJ9LAoteyAi
ZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwgImZpZWxkdHlwZSI6ICJUZXh0dXJl
SURfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJiU2Nyb2xsV2hlZWxWaXNpYmxlIiwg
ImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Tm90aWZpY2F0aW9uQml0
bWFwX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9wSW1hZ2VEYXRhIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAi
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkJ5dGVzUGVyUGl4ZWwiLCAiZmllbGR0eXBl
IjogImludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkNPcGVuVlJDb250ZXh0IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSU3lzdGVtICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZSIsICJmaWVs
ZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9w
VlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZVNl
dHVwICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBvc2l0b3IiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUk92ZXJs
YXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVybGF5ICoifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlc291cmNl
cyAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJNb2RlbHMiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSRXh0
ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5
ICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdzIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSQXBwbGljYXRpb25z
IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoifSwKLXsgImZpZWxk
bmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJU
cmFja2VkQ2FtZXJhICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNjcmVlbnNob3RzIiwgImZp
ZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKiJ9XX0KLV0sCi0ibWV0aG9kcyI6
W3sKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4NDRfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewot
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UHJvamVjdGlvblJhdyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmTGVmdCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmlnaHQiICwicGFyYW10
eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZlRvcCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQm90dG9tIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVEaXN0b3J0aW9u
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5
ZVRvSGVhZFRyYW5zZm9ybSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFRpbWVTaW5jZUxhc3RWc3luYyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZTZWNvbmRzU2luY2VMYXN0
VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
dWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2NF90ICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiaW50
MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5B
ZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImJJc1Zpc2li
bGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU9yaWdp
biIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9z
ZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXNldFNlYXRlZFplcm9Qb3Nl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFNlYXRlZFplcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5k
aWNlc09mQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tlZERldmljZUNsYXNzIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFzcyJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJh
Y2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blRyYWNrZWREZXZpY2VJbmRl
eEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERl
dmljZUFjdGl2aXR5TGV2ZWwiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFRGV2aWNlQWN0
aXZpdHlMZXZlbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERldmljZUlu
ZGV4Rm9yQ29udHJvbGxlclJvbGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZp
Y2VJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkQ29udHJvbGxlclJv
bGUiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzJUcmFja2VkRGV2aWNl
UHJvcGVydHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBy
b3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VWludDY0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmlu
Z1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50V2l0aFBvc2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2Vk
RGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0iLAotICAgICAgICJy
ZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJFdmVudFR5cGUifQot
ICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1lc2giLAotICAgICAgICJyZXR1cm50
eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFSGlkZGVu
QXJlYU1lc2hUeXBlIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBDb250
cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJTdGF0ZVNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29u
dHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
VHJhY2tlZERldmljZVBvc2VfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlRyaWdnZXJIYXB0
aWNQdWxzZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5cGUiOiAidW5zaWduZWQgc2hvcnQi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWROYW1lRnJvbUVudW0iLAotICAgICAg
ICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQnV0dG9u
SWQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21F
bnVtIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVBeGlzVHlwZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYXB0dXJl
SW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxl
YXNlSW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogImJvb2wiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1ZXN0IiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVxdWVzdCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzcG9uc2VCdWZmZXIi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVzcG9u
c2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJGaXJtd2FyZUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmciLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0V2luZG93Qm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogImlu
dDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuWSIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5ZU91
dHB1dFZpZXdwb3J0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5YIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERYR0lP
dXRwdXRJbmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUi
OiAiaW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVyT3V0cHV0SW5k
ZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNv
bnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1lcmEiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhc0NhbWVyYSIg
LCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRD
YW1lcmFGcmFtZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogIm5E
ZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWln
aHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
bkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2ljcyIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3RvcjJf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRlciIgLCJwYXJhbXR5cGUiOiAidnI6
OkhtZFZlY3RvcjJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFQ
cm9qZWN0aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxaTmVhciIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmbFpGYXIiICwicGFyYW10
eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFByb2plY3Rpb24iICwicGFy
YW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWRDYW1lcmFIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Vmlk
ZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBG
cmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhl
YWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInZyOjpWUlRleHR1cmVCb3Vu
ZHNfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
aFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3Qi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0Qx
MURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZvaWQg
KioifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjog
InZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6
OmdsVUludF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFy
YW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2Vk
Q2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJl
R0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJh
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNhdGlvbk1hbmlmZXN0IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQ
YXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FwcGxpY2F0
aW9uSW5zdGFsbGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bkNvdW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVuIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBs
aWNhdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwS2V5cyIgLCJhcnJheV9jb3VudCI6
ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6QXBwT3ZlcnJpZGVLZXlz
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFw
cGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlw
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBsaWNhdGlvbiIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRp
b25zRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIg
KiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmciLAotICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
UHJvcGVydHkifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQcm9wZXJ0eVZhbHVlQnVmZmVy
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3Bl
cnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9w
ZXJ0eVVpbnQ2NCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiQXV0b0xhdW5jaCIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBs
aWNhdGlvbkF1dG9MYXVuY2giLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBhcmFt
dHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZlckxl
biIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAotICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFw
cEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRN
aW1lVHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50
cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3MiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZm
ZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1BcHBsaWNh
dGlvblByZWxhdW5jaENoZWNrIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1bWVudHMiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFdvcmtpbmdEaXJlY3Rv
cnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9uU3RhdGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFBsYXlBcmVhU2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhUmVjdCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZvIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29sb3IiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
ImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRD
b2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMiICwicGFyYW10eXBlIjogImludCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIiAs
InBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRDYW1l
cmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRDb2xvcl90ICoifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zpc2libGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjb25maWdGaWxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAi
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVNpemUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJlY3QiLAotICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJwdW5RdWFkc0Nv
dW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1
YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BsYXlBcmVh
U2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8iLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJheV9jb3VudCI6ICJ1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMi
OiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsb2FkRnJvbURpc2si
LAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVy
b25lQ29uZmlnRmlsZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8iLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsImFy
cmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJ
bmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAi
cHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIiwKLSAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291bnQi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRvQnVmZmVyIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5ndGgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuSW1wb3J0RmxhZ3MiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRUcmFja2luZ1Nw
YWNlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4ifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNraW5n
U3BhY2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVyUG9z
ZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBvc2VB
cnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUi
OiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1blJlbmRl
clBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQ
b3NlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEdhbWVQ
b3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dEdhbWVQb3NlIiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU3VibWl0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29t
cG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBz
dHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJu
U3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJTdWJtaXRGbGFncyJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQcmVzZW50SGFuZG9mZiIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RnJhbWVUaW1pbmciLAot
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29tcG9z
aXRvcl9GcmFtZVRpbWluZyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5GcmFtZXNBZ28i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRG
cmFtZVRpbWluZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGltaW5nIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAotICAgICAgICJyZXR1cm50eXBlIjog
ImZsb2F0IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZlU3RhdHMiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiblN0YXRzU2l6ZUluQnl0ZXMiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlVG9D
b2xvciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMi
ICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZhZGVJbiIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVu
dEdyaWRBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlNldFNreWJveE92ZXJyaWRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9z
aXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
VGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJlQ291bnQiICwicGFyYW10eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JHb1RvQmFjayIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvclF1aXQiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIklzRnVsbHNjcmVlbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVudFNj
ZW5lRm9jdXNQcm9jZXNzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2VuZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJvcldpbmRvdyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU1pcnJvcldpbmRvdyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNNaXJyb3JXaW5kb3dWaXNp
YmxlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3Np
dG9yRHVtcEltYWdlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJvY2VzcyIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVuZFJlbmRlcmluZyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwi
cGFyYW10eXBlIjogInZvaWQgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VN
aXJyb3JUZXh0dXJlRDNEMTEiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMVNoYWRlclJlc291cmNl
VmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRNaXJyb3JUZXh0dXJlR0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
Z2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6Omds
U2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VTaGFyZWRHTFRleHR1cmUiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImdsVGV4dHVyZUlkIiAsInBhcmFt
dHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlVu
bG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNl
X1QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZm
ZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
RmluZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJsYXlL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEhpZ2hR
dWFsaXR5T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1
aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheU5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5
SW1hZ2VEYXRhIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiRW5hYmxlZCIgLCJw
YXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUZsYWci
LAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10eXBlIjogImJvb2wgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZSZWQiICwicGFyYW10eXBlIjogImZs
b2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmVkIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZHcmVlbiIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQmx1ZSIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUFscGhhIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZB
bHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92
ZXJsYXlBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlRleGVsQXNwZWN0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRleGVsQXNwZWN0
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3JkZXIiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5U29ydE9yZGVyIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1blNv
cnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjog
ImZsb2F0In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5V2lkdGhJbk1ldGVycyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZk1pbkRpc3Rh
bmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBm
TWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVU
ZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUZXh0dXJlQ29s
b3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVyZUJvdW5kcyIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheVRleHR1
cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFuc2Zv
cm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVRyYWNraW5n
T3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFja2luZ09y
aWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICoifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVHJh
Y2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlU
cmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVPdmVybGF5IiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNPdmVybGF5VmlzaWJs
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNvb3JkaW5h
dGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dE92
ZXJsYXlFdmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXZl
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhvZCIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUlucHV0TWV0aG9kIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1ldGhvZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVy
bGF5TW91c2VTY2FsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRWZWN0b3IyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU1vdXNlU2Nh
bGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVj
dG9yMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBQYXJhbXMiICwi
cGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1z
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1bHRzIiAsInBhcmFtdHlwZSI6ICJz
dHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092ZXJsYXkiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxOZXdGb2N1c092
ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24i
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVsVG8iICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVy
bGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVE
aXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlSYXciLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5IZWlnaHQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXB0
aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92
ZXJsYXlGcm9tRmlsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVyZUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBO
YXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRl
eHR1cmVUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQ29sb3JTcGFjZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4
dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0
aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhlaWdodCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlRGFzaGJvYXJkT3Zlcmxh
eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFRodW1ibmFpbEhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IklzRGFzaGJvYXJkVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJ
ZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93RGFzaGJvYXJkIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
U2hvd0tleWJvYXJkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlSW5wdXRNb2Rl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRl
eHRJbnB1dExpbmVNb2RlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRGVzY3JpcHRpb24i
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVu
Q2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmRGb3JPdmVybGF5IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1v
ZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFk
VGV4dElucHV0TGluZU1vZGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJvYXJkVGV4dCIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtleWJvYXJkIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFj
a2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUmVjdDJfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2siLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE1hc2tQcmlt
aXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5OdW1NYXNrUHJpbWl0
aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2FnZU92ZXJsYXkiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENhcHRpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjBU
ZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjNUZXh0IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFJlbmRlck1v
ZGVsX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVy
TW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1v
ZGVsX3QgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVJlbmRlck1vZGVsIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
X0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVyZUlkIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
cFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90ICoqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJS
ZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkZyZWVUZXh0dXJlIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkVGV4dHVy
ZUQzRDExX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVy
ZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKioifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjog
InZyOjpUZXh0dXJlSURfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEc3RUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRl
eHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExVGV4dHVyZTJEIiAsInBhcmFtdHlw
ZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxO
YW1lIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbEluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVy
TW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbENvdW50IiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21wb25l
bnRDb3VudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENv
bXBvbmVudE5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29t
cG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZUxlbiIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50QnV0dG9uTWFzayIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENvbXBvbmVudFN0YXRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENv
bXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHZyOjpWUkNv
bnRyb2xsZXJTdGF0ZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwU3RhdGUiICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbXBvbmVudFN0YXRlIiAsInBhcmFt
dHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkwiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAg
ICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWlsVVJMTGVuIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hS
ZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuT3JpZ2luYWxQYXRoTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1v
ZGVsRXJyb3IifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk5vdGlmaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNyZWF0ZU5vdGlmaWNhdGlv
biIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25UeXBl
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAic3R5bGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBJbWFnZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3RpZmljYXRpb25CaXRtYXBfdCAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlvbklkIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW1v
dmVOb3RpZmljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJOb3RpZmljYXRp
b25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAibm90
aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0
aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZv
cmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldEJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdz
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
dHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMyX3QifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
Y3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRTdHJpbmciLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEJvb2wi
LAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0
aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUi
OiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5WYWx1ZUxlbiIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlJlbW92ZUtleUluU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGlu
Z3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSG9va1NjcmVlbnNob3QiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBTdXBwb3J0ZWRUeXBlcyIgLCJhcnJh
eV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OkVWUlNjcmVlbnNo
b3RUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUi
OiAiaW50In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
Y3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNo
b3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmaWxlbmFt
ZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFtZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNjaEZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxQcm9ncmVz
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJUYWtl
U3RlcmVvU2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNo
b3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91
dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU3VibWl0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
c2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNvdXJjZVByZXZpZXdGaWxl
bmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZXNvdXJjZXMiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNvdXJjZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291
cmNlcyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVzb3VyY2VGdWxsUGF0aCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQ
YXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci1d
Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNhMTBmOTUxZGM1NjM5M2RjYWM5YmI4MGU4MzQyMGJjNGE5MTUzYjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NjkgKzAsMCBAQAot
Ly89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24sIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IEhlYWRlciBmb3IgZmxhdHRl
ZCBTdGVhbUFQSS4gVXNlIHRoaXMgZm9yIGJpbmRpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzLgotLy8g
VGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBpdC4KLS8vCi0vLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLSNpZm5kZWYgX19PUEVOVlJfQVBJX0ZMQVRfSF9fCi0jZGVmaW5l
IF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotI2lmIGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQo
IF9fY2xhbmdfXyApCi0jcHJhZ21hIG9uY2UKLSNlbmRpZgotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LSNkZWZpbmUgRVhURVJOX0MgZXh0ZXJuICJDIgotI2Vsc2UKLSNkZWZpbmUgRVhURVJOX0MKLSNl
bmRpZgotCi0jZGVmaW5lIE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFIF9fc3RkY2FsbAotCi0vLyBP
UEVOVlIgQVBJIGV4cG9ydCBtYWNybwotI2lmIGRlZmluZWQoIF9XSU4zMiApICYmICFkZWZpbmVk
KCBfWDM2MCApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCi0gICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2RlY2xzcGVjKCBkbGxleHBvcnQgKQotICAgICAg
ICNlbGlmIGRlZmluZWQoIE9QRU5WUl9BUElfTk9ETEwgKQotICAgICAgICNkZWZpbmUgU19BUEkg
RVhURVJOX0MKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZpbmUgU19BUEkgZXh0ZXJuICJDIiBf
X2RlY2xzcGVjKCBkbGxpbXBvcnQgKSAKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBP
UlRTCi0jZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5W
Ul9BUElfRVhQT1JUUyApCi0gICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2F0dHJpYnV0
ZV9fICgodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZp
bmUgU19BUEkgRVhURVJOX0MKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBPUlRTCi0j
ZWxzZSAvLyAhV0lOMzIKLSAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkK
LSAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2Vsc2UKLSAgICAgICAjZGVm
aW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUwot
I2VuZGlmCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2lmIGRlZmluZWQoIF9fV0lOMzIgKQot
dHlwZWRlZiBjaGFyIGJvb2w7Ci0jZWxzZQotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbmRpZgot
Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVp
bnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotCi0KLS8vIE9wZW5WUiBDb25zdGFudHMKLQotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAz
Mjc2ODsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRleF9I
bWQgPSAwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4VHJhY2tlZERldmljZUNv
dW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5k
ZXhPdGhlciA9IDQyOTQ5NjcyOTQ7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFj
a2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gNDI5NDk2NzI5NTsKLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuSW52YWxpZFByb3BlcnR5VGFnID0gMDsKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50
IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU3Ry
aW5nUHJvcGVydHlUYWcgPSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1kTWF0
cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1k
TWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
SG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyA9IDMwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOwotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplID0gMzI3Njg7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQg
PSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcga191bE92ZXJsYXlIYW5kbGVJbnZhbGlk
ID0gMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blNjcmVlbnNob3RIYW5kbGVJbnZh
bGlkID0gMDsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lz
dGVtXzAxNSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9u
ID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJUcmFj
a2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENhbWVyYV8wMDMiOwotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGludCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0hvbWVBcHAgPSAidnIvaG9tZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVfdGhlYXRl
ciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFw
cGxpY2F0aW9uc18wMDYiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJDaGFwZXJvbmVfVmVyc2lv
biA9ICJJVlJDaGFwZXJvbmVfMDAzIjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25l
U2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAiOwotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4TmFtZUxlbmd0aCA9IDEyODsK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVzQ291bnQgPSAzMjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZST3ZlcmxheV9WZXJzaW9u
ID0gIklWUk92ZXJsYXlfMDE0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxl
cl9Db21wb25lbnRfR0RDMjAxNSA9ICJnZGMyMDE1IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNlIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwID0gInRpcCI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0g
InN0YXR1cyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0g
IklWUlJlbmRlck1vZGVsc18wMDUiOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTm90
aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUk5vdGlm
aWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKLXN0YXRpYyBjb25z
dCBjaGFyICogSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUht
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0
cmluZyA9ICJmb3JjZWREcml2ZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZS
X0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRl
YnVnUHJvY2Vzc1BpcGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJs
ZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVEaXN0b3J0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0gImRpc3BsYXlEZWJ1Z1giOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAi
ZGlzcGxheURlYnVnWSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VuZFN5
c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sID0gInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xl
dmVsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBk
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9
ICJiYWNrZ3JvdW5kIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24i
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERv
bWVSYWRpdXMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9T
dHJpbmcgPSAiZ3JpZENvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Q
bGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2UiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAi
YWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZp
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRf
SW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zs
b2F0ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFz
ZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9h
dCA9ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVj
dGlvbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rp
b25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9q
ZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJh
ZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1p
cnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JW
aWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENv
bXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21B
cHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5h
YmxlSG9tZUFwcCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2V0SW5pdGlh
bERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7Ci1zdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMy
ID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8iOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0
aG91c2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVf
Qm9vbCA9ICJkaXNhYmxlaW11IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3Vz
ZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50MzIg
PSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0
aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7Ci1z
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJo
aXN0b3J5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZl
cl9udWxsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3Ry
aW5nID0gInNlcmlhbE51bWJlciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndpbmRvd1giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5kb3dIZWlnaHQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJl
bmRlcldpZHRoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRf
SW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9T
ZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxv
YXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJ
bnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5
c09uVG9wIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6
ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3RzIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAi
c2NyZWVuc2hvdFR5cGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3RpZmljYXRpb25z
X1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX05v
dGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLXN0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3Jp
YWxDb21wbGV0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NjYWxl
WCA9ICJTY2FsZVgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVm
dFggPSAiT2Zmc2V0TGVmdFgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9P
ZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fy
bk9ubHlPbmNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0
b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfVGVzdERhdGFfRmxvYXQgPSAicGVyZlRlc3REYXRh
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAi
Y29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91
bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29s
bGlzaW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHND
ZW50ZXJNYXJrZXJPbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9
ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29s
b3JHYW1tYVIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29s
bGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRz
X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxl
Q2FtZXJhRm9yUm9vbVZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91
bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAiY2Ft
ZXJhQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFf
Qm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1l
cmFfQm91bmRzU3RyZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5YmFj
a0RldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNl
X1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1
ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZp
Y2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9T
dHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9h
dWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1R1cm5PZmZTY3JlZW5z
VGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5P
ZmZDb250cm9sbGVyc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxl
RGFzaGJvYXJkIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1v
ZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfbW9kZWxz
a2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Ry
aXZlcl9FbmFibGVfQm9vbCA9ICJlbmFibGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTY3Jl
ZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3RzXzAwMSI7Ci1zdGF0aWMgY29uc3QgY2hh
ciAqIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEiOwotCi0vLyBPcGVu
VlIgRW51bXMKLQotdHlwZWRlZiBlbnVtIEVWUkV5ZQotewotICAgICAgIEVWUkV5ZV9FeWVfTGVm
dCA9IDAsCi0gICAgICAgRVZSRXllX0V5ZV9SaWdodCA9IDEsCi19IEVWUkV5ZTsKLQotdHlwZWRl
ZiBlbnVtIEVUZXh0dXJlVHlwZQotewotICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9E
aXJlY3RYID0gMCwKLSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwK
LSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfVnVsa2FuID0gMiwKLSAgICAgICBFVGV4
dHVyZVR5cGVfVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywKLSAgICAgICBFVGV4dHVyZVR5cGVf
VGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwKLX0gRVRleHR1cmVUeXBlOwotCi10eXBlZGVmIGVu
dW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0F1dG8gPSAw
LAotICAgICAgIEVDb2xvclNwYWNlX0NvbG9yU3BhY2VfR2FtbWEgPSAxLAotICAgICAgIEVDb2xv
clNwYWNlX0NvbG9yU3BhY2VfTGluZWFyID0gMiwKLX0gRUNvbG9yU3BhY2U7Ci0KLXR5cGVkZWYg
ZW51bSBFVHJhY2tpbmdSZXN1bHQKLXsKLSAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdS
ZXN1bHRfVW5pbml0aWFsaXplZCA9IDEsCi0gICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgRVRyYWNraW5nUmVz
dWx0X1RyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgPSAxMDEsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgPSAyMDAsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSA9IDIwMSwK
LX0gRVRyYWNraW5nUmVzdWx0OwotCi10eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VDbGFzcwot
ewotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQg
PSAwLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0hNRCA9
IDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfQ29udHJv
bGxlciA9IDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIgPSAzLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERl
dmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwKLX0gRVRyYWNrZWREZXZpY2VDbGFzczsK
LQotdHlwZWRlZiBlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0gMCwKLSAgICAg
ICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9
IDEsCi0gICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVf
UmlnaHRIYW5kID0gMiwKLX0gRVRyYWNrZWRDb250cm9sbGVyUm9sZTsKLQotdHlwZWRlZiBlbnVt
IEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW5fVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsCi0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW5fVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nID0gMSwKLSAgICAgICBFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbl9UcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0gMiwKLX0gRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW47Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tlZERldmljZVByb3Bl
cnR5Ci17Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ludmFsaWQgPSAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3Ry
aW5nID0gMTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTW9kZWxOdW1i
ZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vy
aWFsTnVtYmVyX1N0cmluZyA9IDEwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgPSAxMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgPSAxMDA1LAotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9T
dHJpbmcgPSAxMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJkd2Fy
ZVJldmlzaW9uX1N0cmluZyA9IDEwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmluZyA9IDEwMDgsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmlu
ZyA9IDEwMDksCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUlzV2ly
ZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rl
dmljZUlzQ2hhcmdpbmdfQm9vbCA9IDEwMTEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKLSAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCA9
IDEwMTMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sID0gMTAxNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgPSAxMDE1LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQgPSAxMDE3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZVZl
cnNpb25fVWludDY0ID0gMTAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RlBHQVZlcnNpb25fVWludDY0ID0gMTAxOSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfVlJDVmVyc2lvbl9VaW50NjQgPSAxMDIwLAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0gMTAyMSwKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgPSAxMDIz
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVT
eXN0ZW1XaXRoSG1kX0Jvb2wgPSAxMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0gMTAyNSwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgPSAx
MDI2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VDYW5Qb3dlck9m
Zl9Cb29sID0gMTAyNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdh
cmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2xhc3NfSW50MzIgPSAxMDI5LAotICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9IYXNDYW1lcmFfQm9vbCA9IDEwMzAsCi0gICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJl
ZF9Cb29sID0gMTAzMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVml2ZVN5
c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgPSAxMDMzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wgPSAyMDAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zX0Zsb2F0ID0gMjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgPSAyMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ID0gMjAw
NSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUZpcm13YXJlVmVy
c2lvbl9VaW50NjQgPSAyMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9J
c09uRGVza3RvcF9Cb29sID0gMjAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCA9IDIwMDksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ID0gMjAxMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmlu
ZyA9IDIwMTIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlUmlnaHRfU3RyaW5nID0gMjAxMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0VkaWRQcm9kdWN0SURfSW50MzIgPSAyMDE1LAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFUb0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgPSAy
MDE2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NUeXBlX0lu
dDMyID0gMjAxNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdD
T2Zmc2V0X0Zsb2F0ID0gMjAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RGlzcGxheUdDU2NhbGVfRmxvYXQgPSAyMDE5LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyA9IDIwMjEsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIs
Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9h
dCA9IDIwMjMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJS
aWdodFVfRmxvYXQgPSAyMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9M
ZW5zQ2VudGVyUmlnaHRWX0Zsb2F0ID0gMjAyNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9
IDIwMjcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJl
RGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgPSAyMDMw
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDIwMzEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F1
ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyID0gMjAzMywKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9m
Vmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29s
ID0gMjAzNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgPSAyMDM3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgPSAyMDM5LAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0lu
dDMyID0gMjA0MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1D
SW1hZ2VEYXRhX0JpbmFyeSA9IDIwNDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgPSAyMDQyLAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyA9IDMwMDAsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAw
MSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczBUeXBlX0ludDMyID0g
MzAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczFUeXBlX0ludDMy
ID0gMzAwMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczJUeXBlX0lu
dDMyID0gMzAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczNUeXBl
X0ludDMyID0gMzAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczRU
eXBlX0ludDMyID0gMzAwNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29u
dHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCA9IDQwMDAsCi0gICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0g
NDAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0ID0gNDAwMywKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgPSA0MDA0
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11
bU1ldGVyc19GbG9hdCA9IDQwMDUsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X01vZGVMYWJlbF9TdHJpbmcgPSA0MDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5n
X1N0cmluZyA9IDUwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nID0g
NTAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERl
dmljZVJlYWR5QWxlcnRfU3RyaW5nID0gNTAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCi0gICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5
X1N0cmluZyA9IDUwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgPSA1MDA4LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgPSA1MTAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kID0gNTE1MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVXNlckNv
bmZpZ1BhdGhfU3RyaW5nID0gNjAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kID0g
MTA5OTksCi19IEVUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IKLXsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFBy
b3BfU3VjY2VzcyA9IDAsCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9w
X1dyb25nRGF0YVR5cGUgPSAxLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2Vk
UHJvcF9Xcm9uZ0RldmljZUNsYXNzID0gMiwKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvcl9UcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAotICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlID0gNSwKLSAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0gNiwKLSAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5
RGV2aWNlID0gNywKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfU3Ry
aW5nRXhjZWVkc01heGltdW1MZW5ndGggPSA4LAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJv
cl9UcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvcl9UcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkID0gMTAsCi0gICAgICAgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gPSAxMSwKLX0gRVRy
YWNrZWRQcm9wZXJ0eUVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU3VibWl0RmxhZ3MKLXsKLSAg
ICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfRGVmYXVsdCA9IDAsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAxLAotICAgICAgIEVW
UlN1Ym1pdEZsYWdzX1N1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDIsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X1Jlc2VydmVkID0gNCwKLX0gRVZSU3VibWl0RmxhZ3M7Ci0KLXR5cGVkZWYg
ZW51bSBFVlJTdGF0ZQotewotICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfVW5kZWZpbmVkID0gLTEs
Ci0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9PZmYgPSAwLAotICAgICAgIEVWUlN0YXRlX1ZSU3Rh
dGVfU2VhcmNoaW5nID0gMSwKLSAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1NlYXJjaGluZ19BbGVy
dCA9IDIsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9SZWFkeSA9IDMsCi0gICAgICAgRVZSU3Rh
dGVfVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9Ob3RS
ZWFkeSA9IDUsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TdGFuZGJ5ID0gNiwKLSAgICAgICBF
VlJTdGF0ZV9WUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCi19IEVWUlN0YXRlOwotCi10eXBl
ZGVmIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm9u
ZSA9IDAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZUFjdGl2YXRl
ZCA9IDEwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3Rp
dmF0ZWQgPSAxMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgPSAxMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgPSAxMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
VHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfRW50ZXJTdGFuZGJ5TW9kZSA9IDEwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9M
ZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNr
ZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEwOCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9X
YXRjaGRvZ1dha2VVcFJlcXVlc3RlZCA9IDEwOSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgPSAxMTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfUHJvcGVydHlDaGFuZ2VkID0gMTExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1
dHRvblByZXNzID0gMjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVG91Y2ggPSAyMDIs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVW50b3VjaCA9IDIwMywKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfTW91c2VCdXR0b25Eb3duID0gMzAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vdXNlQnV0dG9uVXAgPSAzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
Rm9jdXNFbnRlciA9IDMwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Gb2N1c0xlYXZl
ID0gMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Njcm9sbCA9IDMwNSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVyZWQgPSA0MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X1NjZW5lRm9jdXNHYWluZWQgPSA0MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
U2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQgPSA0MDQsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfU2NlbmVGb2N1c0NoYW5nZWQgPSA0MDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
SW5wdXRGb2N1c0NoYW5nZWQgPSA0MDYsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Nl
bmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzID0gNDExLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9PdmVybGF5SGlkZGVuID0gNTAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZEFjdGl2YXRlZCA9IDUwMiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkID0gNTA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZFJlcXVlc3RlZCA9IDUwNSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXNldERh
c2hib2FyZCA9IDUwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZW5kZXJUb2FzdCA9
IDUwNywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUxvYWRlZCA9IDUwOCwKLSAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEwLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgPSA1MTEsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgPSA1MTIsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biA9IDUxNCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VGYWlsZWQgPSA1MTcsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgsCi0gICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgPSA1MjAsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFRha2VuID0gNTIxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgPSA1MjIsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkID0gNTIzLAotICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc1RvRGFzaGJvYXJkID0gNTI0LAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2Vk
ID0gNTI1LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9
IDYwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuID0g
NjAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbkludGVy
YWN0aW9uID0gNjAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9E
ZXN0cm95ZWQgPSA2MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdCA9IDcwMCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qcm9jZXNzUXVpdCA9IDcwMSwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ID0gNzAyLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXRBY2tub3dsZWRnZWQgPSA3MDMsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCA9IDgwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgPSA4MDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNo
YW5nZWQgPSA4MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VS
ZXNldCA9IDgwNCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2
ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQmFja2dyb3VuZFNl
dHRpbmdIYXNDaGFuZ2VkID0gODUwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NhbWVy
YVNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
UmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MywKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTQsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCA9IDEwMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0gMTEwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkID0gMTEwMSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9LZXlib2FyZENsb3NlZCA9IDEyMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkRG9uZSA9IDEyMDIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCA9IDEzMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCA9IDEzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25MaXN0
VXBkYXRlZCA9IDEzMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25N
aW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0
aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duID0gMTQwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0
MDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3Vu
ZHNTaG93biA9IDE0MTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNIaWRkZW4gPSAxNDExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRlb1N0cmVhbSA9IDE1
MDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X0VuYWJsZUNhcHR1cmUgPSAxNjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSA9IDE2MDEsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgPSAxNjAyLAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCA9IDE2NTAs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3Rh
cnQgPSAxMDAwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVjaWZpY19S
ZXNlcnZlZF9FbmQgPSAxOTk5OSwKLX0gRVZSRXZlbnRUeXBlOwotCi10eXBlZGVmIGVudW0gRURl
dmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZl
bF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLAotICAgICAgIEVEZXZpY2VBY3Rpdml0
eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwKLSAgICAg
ICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFj
dGlvbl9UaW1lb3V0ID0gMiwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfSBFRGV2aWNlQWN0aXZpdHlMZXZlbDsKLQotdHlw
ZWRlZiBlbnVtIEVWUkJ1dHRvbklkCi17Ci0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N5
c3RlbSA9IDAsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9
IDEsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0dyaXAgPSAyLAotICAgICAgIEVWUkJ1
dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0xlZnQgPSAzLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9EUGFkX1VwID0gNCwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9SaWdo
dCA9IDUsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfRG93biA9IDYsCi0gICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0EgPSA3LAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
QXhpczAgPSAzMiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczEgPSAzMywKLSAg
ICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczIgPSAzNCwKLSAgICAgICBFVlJCdXR0b25J
ZF9rX0VCdXR0b25fQXhpczMgPSAzNSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhp
czQgPSAzNiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCA9
IDMyLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAzMywK
LSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgPSAyLAotICAgICAg
IEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9NYXggPSA2NCwKLX0gRVZSQnV0dG9uSWQ7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VC
dXR0b25fTGVmdCA9IDEsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9SaWdo
dCA9IDIsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9NaWRkbGUgPSA0LAot
fSBFVlJNb3VzZUJ1dHRvbjsKLQotdHlwZWRlZiBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsK
LSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0g
MCwKLSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2Ug
PSAxLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTWF4
ID0gMywKLX0gRUhpZGRlbkFyZWFNZXNoVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQotewotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250cm9sbGVy
QXhpc19Ob25lID0gMCwKLSAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250
cm9sbGVyQXhpc19Kb3lzdGljayA9IDIsCi0gICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tf
ZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAzLAotfSBFVlJDb250cm9sbGVyQXhpc1R5cGU7Ci0K
LXR5cGVkZWYgZW51bSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlCi17Ci0gICAgICAgRVZS
Q29udHJvbGxlckV2ZW50T3V0cHV0VHlwZV9Db250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMg
PSAwLAotICAgICAgIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50
T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZTsKLQot
dHlwZWRlZiBlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQotewotICAgICAgIEVDb2xsaXNpb25C
b3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBF
Q29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUg
PSAxLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxF
X1NRVUFSRVMgPSAyLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9OT05FID0gNCwKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5
bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19IEVDb2xsaXNpb25Cb3VuZHNT
dHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlFcnJvcgotewotICAgICAgIEVWUk92ZXJs
YXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob25lID0gMCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfVW5rbm93bk92ZXJsYXkgPSAxMCwKLSAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZEhhbmRsZSA9IDExLAotICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgRVZST3Zl
cmxheUVycm9yX1ZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkID0gMTMsCi0gICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5cGUgPSAx
NCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyA9IDE1
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9OYW1lVG9vTG9uZyA9IDE2
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlJblVzZSA9IDE3LAot
ICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUg
PSAxOCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNr
ZWREZXZpY2UgPSAxOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwLAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJv
cl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCA9IDIyLAotICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMjMsCi0gICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX1VuYWJsZVRvTG9hZEZpbGUgPSAyNSwKLSAgICAgICBFVlJP
dmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgPSAyNiwKLSAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciA9IDI3LAotICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMg
PSAyOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSA9IDMwLAotfSBFVlJPdmVybGF5RXJyb3I7Ci0KLXR5cGVkZWYgZW51bSBFVlJBcHBsaWNh
dGlvblR5cGUKLXsKLSAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdGhl
ciA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU2NlbmUgPSAx
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LAotICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsCi0g
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fTWF4ID0gNywKLX0gRVZSQXBw
bGljYXRpb25UeXBlOwotCi10eXBlZGVmIGVudW0gRVZSRmlybXdhcmVFcnJvcgotewotICAgICAg
IEVWUkZpcm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIEVWUkZp
cm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX1N1Y2Nlc3MgPSAxLAotICAgICAgIEVWUkZpcm13
YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfSBFVlJGaXJtd2FyZUVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uRXJyb3IKLXsKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEw
MCwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX05vdGlm
aWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAgIEVWUk5v
dGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFs
cmVhZHlFeGlzdHMgPSAxMDMsCi19IEVWUk5vdGlmaWNhdGlvbkVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX05vbmUg
PSAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Vbmtub3duID0gMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEw
MCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3Jy
dXB0ID0gMTAxLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50
RExMTm90Rm91bmQgPSAxMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
RmlsZU5vdEZvdW5kID0gMTAzLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0ZhY3RvcnlOb3RGb3VuZCA9IDEwNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkID0gMTA3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkID0gMTA5LAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kID0g
MTEwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCA9
IDExMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggPSAx
MTIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90
V3JpdGFibGUgPSAxMTMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfQXBw
SW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfUmV0cnkgPSAxMTUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5p
dENhbmNlbGVkQnlVc2VyID0gMTE2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkID0gMTE4LAotICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biA9IDExOSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgPSAxMjEsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBv
c2l0b3IgPSAxMjIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90QXZh
aWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9JbnRlcm5hbCA9IDEyNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSA9IDEyNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgPSAx
MjgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRv
Z05vdFN1cHBvcnRlZCA9IDEyOSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlID0gMTMwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzID0gMTMxLAotICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0g
MTMyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90
Rm91bmQgPSAxMzMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmRTdGFydHVwRmFpbGVkID0gMTM0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9E
cml2ZXJfVW5rbm93biA9IDIwMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0htZFVua25vd24gPSAyMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9Ob3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9SdW50aW1lT3V0T2ZEYXRlID0gMjA0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Ecml2ZXJfSG1kSW5Vc2UgPSAyMDUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkID0gMjA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkID0gMjA3LAotICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kID0gMjA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
cml2ZXJJZE91dE9mQm91bmRzID0gMjExLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkID0gMjEyLAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgPSAzMDEsCi0gICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgPSAzMDIsCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywK
LSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCA9IDMw
NCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCA9IDMwNSwKLSAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVk
ID0gMzA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvcklu
dmFsaWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWly
ZWQgPSA0MDEsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSA9IDQwMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgPSA0MDQsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29u
bmVjdFRvT2N1bHVzUnVudGltZSA9IDEwMDAsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlID0gMTEwMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyA9IDExMDMsCi0gICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZp
Z1Rvb0JpZyA9IDExMDQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsID0gMTEwNSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiA9
IDExMDYsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRh
dGFTdGFydCA9IDExMDgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCA9IDExMDksCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
R2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgPSAxMTExLAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2Vy
RGF0YUVycm9yID0gMTExMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5k
ID0gMjAwMCwKLX0gRVZSSW5pdEVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdFR5
cGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX05vbmUgPSAw
LAotICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ubyA9IDEsCi0g
ICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAg
ICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1hcCA9IDMsCi0gICAg
ICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEg
PSA1LAotfSBFVlJTY3JlZW5zaG90VHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
c19WUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKLSAgICAgICBFVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNf
VlIgPSAxLAotfSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXM7Ci0KLXR5cGVkZWYgZW51
bSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IKLXsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCA9IDEwMCwKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSA9
IDEwMSwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9IDEwMiwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzID0gMTAzLAotICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlID0gMTA0
LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob3RT
dXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAotICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmlu
Z0ZhaWx1cmUgPSAxMDcsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX1N0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkID0gMTA5LAot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
U2hhcmVkVGV4dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVy
ZUZhaWx1cmUgPSAxMTIsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUgPSAxMTMsCi0gICAgICAgRVZSVHJhY2tlZENhbWVy
YUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1l
QnVmZmVyU2l6ZSA9IDExNSwKLX0gRVZSVHJhY2tlZENhbWVyYUVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsCi0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0
b3J0ZWQgPSAxLAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCA9IDIsCi0gICAgICAgRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZV9NQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTID0gMywKLX0gRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLXsKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5
RXhpc3RzID0gMTAwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX05vTWFuaWZlc3QgPSAxMDEsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxp
Y2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgRVZSQXBw
bGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0lQQ0ZhaWxl
ZCA9IDEwNSwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9B
cHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEwNywKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24gPSAx
MDgsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNo
RmFpbGVkID0gMTA5LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0gMTEwLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25R
dWl0dGluZyA9IDExMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25F
cnJvcl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
X1ZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBsYXRlID0gMTE0LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxsID0gMjAwLAotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Byb3BlcnR5Tm90U2V0ID0g
MjAxLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25v
d25Qcm9wZXJ0eSA9IDIwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRp
b25FcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAotfSBFVlJBcHBsaWNhdGlvbkVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotewotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hU
eXBlX1N0cmluZyA9IDExLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNh
dGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nID0gMTIsCi0gICAgICAgRVZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmcg
PSAxMywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Bcmd1bWVudHNfU3RyaW5nID0gMTQsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9W
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyA9IDE1LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rlc2NyaXB0aW9uX1N0cmluZyA9IDUw
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05l
d3NVUkxfU3RyaW5nID0gNTEsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyA9IDUyLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9TdHJpbmcgPSA1MywKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hi
b2FyZE92ZXJsYXlfQm9vbCA9IDYwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJB
cHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCA9IDYxLAotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgPSA2
MiwKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9J
c0ludGVybmFsX0Jvb2wgPSA2MywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgPSA3MCwKLX0gRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0
YXRlCi17Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fTm9uZSA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0
aW5nRm9yRXh0ZXJuYWxMYXVuY2ggPSAxMSwKLSAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRp
b25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVuY2hlZCA9IDIwLAotfSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZTsKLQotdHlwZWRlZiBlbnVtIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0g
MSwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCi0gICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1v
dmVkID0gMTAxLAotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNl
U3RhdGlvblJlbW92ZWQgPSAxMDIsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9X
YXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvciA9IDIwMCwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIwMSwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsCi0gICAgICAg
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsCi0g
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZh
bGlkID0gMjA0LAotfSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlOwotCi10eXBlZGVmIGVudW0g
RUNoYXBlcm9uZUNvbmZpZ0ZpbGUKLXsKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9MaXZl
ID0gMSwKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9UZW1wID0gMiwKLX0gRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGU7Ci0KLXR5cGVkZWYgZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKLXsKLSAg
ICAgICBFQ2hhcGVyb25lSW1wb3J0RmxhZ3NfRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0g
MSwKLX0gRUNoYXBlcm9uZUltcG9ydEZsYWdzOwotCi10eXBlZGVmIGVudW0gRVZSQ29tcG9zaXRv
ckVycm9yCi17Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX05v
bmUgPSAwLAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9SZXF1
ZXN0RmFpbGVkID0gMSwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJy
b3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3Jf
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCi0gICAgICAgRVZSQ29tcG9z
aXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlID0gMTAyLAotICAgICAg
IEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Jc05vdFNjZW5lQXBwbGljYXRp
b24gPSAxMDMsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1Rl
eHR1cmVJc09uV3JvbmdEZXZpY2UgPSAxMDQsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAg
ICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1NoYXJlZFRleHR1cmVzTm90
U3VwcG9ydGVkID0gMTA2LAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JF
cnJvcl9JbmRleE91dE9mUmFuZ2UgPSAxMDcsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgPSAxMDgsCi19IEVWUkNvbXBvc2l0b3JF
cnJvcjsKLQotdHlwZWRlZiBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCi17Ci0gICAgICAgVlJP
dmVybGF5SW5wdXRNZXRob2RfTm9uZSA9IDAsCi0gICAgICAgVlJPdmVybGF5SW5wdXRNZXRob2Rf
TW91c2UgPSAxLAotfSBWUk92ZXJsYXlJbnB1dE1ldGhvZDsKLQotdHlwZWRlZiBlbnVtIFZST3Zl
cmxheVRyYW5zZm9ybVR5cGUKLXsKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3Zl
cmxheVRyYW5zZm9ybV9BYnNvbHV0ZSA9IDAsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlw
ZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1PdmVybGF5ID0g
MiwKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9UcmFj
a2VkQ29tcG9uZW50ID0gMywKLX0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZTsKLQotdHlwZWRlZiBl
bnVtIFZST3ZlcmxheUZsYWdzCi17Ci0gICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSA9IDAsCi0g
ICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVkID0gMSwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19S
R1NTNFggPSAyLAotICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0gMywKLSAg
ICAgICBWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0gICAgICAgVlJP
dmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUsCi0gICAgICAgVlJPdmVybGF5RmxhZ3Nf
U2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3Vj
aHBhZEV2ZW50cyA9IDcsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xs
V2hlZWwgPSA4LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRl
cm5hbFByb2Nlc3MgPSA5LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxs
ZWwgPSAxMCwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwK
LSAgICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLAotICAgICAgIFZST3ZlcmxheUZs
YWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhO
b25TY2VuZU92ZXJsYXlzID0gMTQsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFz
aGJvYXJkID0gMTUsCi19IFZST3ZlcmxheUZsYWdzOwotCi10eXBlZGVmIGVudW0gVlJNZXNzYWdl
T3ZlcmxheVJlc3BvbnNlCi17Ci0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRv
blByZXNzXzAgPSAwLAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18xID0gMSwKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9
IDIsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAot
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkg
PSA0LAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRl
Q2xpZW50T3ZlcmxheSA9IDUsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0FwcGxp
Y2F0aW9uUXVpdCA9IDYsCi19IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKLQotdHlwZWRlZiBl
bnVtIEVHYW1lcGFkVGV4dElucHV0TW9kZQotewotICAgICAgIEVHYW1lcGFkVGV4dElucHV0TW9k
ZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAgRUdhbWVwYWRUZXh0
SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAotICAgICAgIEVH
YW1lcGFkVGV4dElucHV0TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCA9IDIsCi19
IEVHYW1lcGFkVGV4dElucHV0TW9kZTsKLQotdHlwZWRlZiBlbnVtIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGUKLXsKLSAgICAgICBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlX2tfRUdhbWVwYWRU
ZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGVfa19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEsCi19
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGU7Ci0KLXR5cGVkZWYgZW51bSBFT3ZlcmxheURpcmVj
dGlvbgotewotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fVXAgPSAw
LAotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0g
ICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9MZWZ0ID0gMiwKLSAgICAg
ICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1JpZ2h0ID0gMywKLSAgICAgICBF
T3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0NvdW50ID0gNCwKLX0gRU92ZXJsYXlE
aXJlY3Rpb247Ci0KLXR5cGVkZWYgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZVR5cGUKLXsKLSAgICAgICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5
cGVfT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlID0gMCwKLSAgICAg
ICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGVfT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0gMSwKLX0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVUeXBlOwotCi10eXBlZGVmIGVudW0gRVZSUmVuZGVyTW9kZWxFcnJvcgotewot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vbmUgPSAwLAot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAx
MDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90U3Vw
cG9ydGVkID0gMjAwLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVy
cm9yX0ludmFsaWRBcmcgPSAzMDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vU2hhcGVzID0gMzAyLAotICAgICAgIEVWUlJlbmRlck1v
ZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzID0gMzAzLAotICAgICAg
IEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9
IDMwNCwKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0
aXBsZVRleHR1cmVzID0gMzA1LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJN
b2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgRVZS
UmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0g
MzA4LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0ludmFs
aWRUZXh0dXJlID0gNDAwLAotfSBFVlJSZW5kZXJNb2RlbEVycm9yOwotCi10eXBlZGVmIGVudW0g
RVZSQ29tcG9uZW50UHJvcGVydHkKLXsKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNv
bXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0gMSwKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0
eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9IDIsCi0gICAgICAgRVZSQ29tcG9uZW50
UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQgPSA0LAotICAgICAgIEVWUkNv
bXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVzc2VkID0gOCwKLSAgICAg
ICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzU2Nyb2xsZWQgPSAx
NiwKLX0gRVZSQ29tcG9uZW50UHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRp
b25UeXBlCi17Ci0gICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQgPSAwLAotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCi0gICAgICAgRVZSTm90aWZp
Y2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCi19IEVWUk5vdGlm
aWNhdGlvblR5cGU7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQotewotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0Nv
bnRhY3RfRGlzYWJsZWQgPSAyMDAsCi0gICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFj
dF9FbmFibGVkID0gMjAxLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0
aXZlID0gMjAyLAotfSBFVlJOb3RpZmljYXRpb25TdHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNl
dHRpbmdzRXJyb3IKLXsKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9O
b25lID0gMCwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9JUENGYWls
ZWQgPSAxLAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFp
bGVkID0gMiwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9SZWFkRmFp
bGVkID0gMywKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1Vu
c2V0U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsCi19IEVWUlNldHRpbmdzRXJyb3I7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Jf
VlJTY3JlZW5zaG90RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZS
U2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQgPSAxLAotICAgICAgIEVWUlNjcmVlbnNob3RF
cnJvcl9WUlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAotICAgICAg
IEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCA9IDEwMSwKLSAg
ICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwg
PSAxMDIsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX1NjcmVl
bnNob3RBbHJlYWR5SW5Qcm9ncmVzcyA9IDEwOCwKLX0gRVZSU2NyZWVuc2hvdEVycm9yOwotCi0K
LS8vIE9wZW5WUiB0eXBlZGVmcwotCi10eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRl
eF90OwotdHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwotdHlwZWRlZiB1aW50NjRf
dCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotdHlwZWRlZiB2b2lkICogZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlX3Q7Ci10eXBlZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50
X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgdWlu
dDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotdHlw
ZWRlZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLXR5cGVkZWYgdWludDY0X3QgVHJhY2tl
ZENhbWVyYUhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7Ci10
eXBlZGVmIHVpbnQzMl90IFZSQ29tcG9uZW50UHJvcGVydGllczsKLXR5cGVkZWYgaW50MzJfdCBU
ZXh0dXJlSURfdDsKLXR5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLXR5cGVkZWYg
RVZSSW5pdEVycm9yIEhtZEVycm9yOwotdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKLXR5cGVkZWYg
RUNvbG9yU3BhY2UgQ29sb3JTcGFjZTsKLXR5cGVkZWYgRVRyYWNraW5nUmVzdWx0IEhtZFRyYWNr
aW5nUmVzdWx0OwotdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VDbGFz
czsKLXR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLXR5cGVkZWYgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBUcmFja2VkRGV2aWNlUHJvcGVydHk7
Ci10eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBUcmFja2VkUHJvcGVydHlFcnJvcjsKLXR5
cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190OwotdHlwZWRlZiBFVlJTdGF0ZSBW
UlN0YXRlX3Q7Ci10eXBlZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNT
dHlsZV90OwotdHlwZWRlZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci10eXBlZGVm
IEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOwotdHlwZWRlZiBFVlJDb21wb3NpdG9y
RXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7Ci10eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJvciBWUlNj
cmVlbnNob3RzRXJyb3I7Ci0KLS8vIE9wZW5WUiBTdHJ1Y3RzCi0KLXR5cGVkZWYgc3RydWN0IEht
ZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOyAvL2Zsb2F0WzNdWzRdCi19IEht
ZE1hdHJpeDM0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBm
bG9hdCBtWzRdWzRdOyAvL2Zsb2F0WzRdWzRdCi19IEhtZE1hdHJpeDQ0X3Q7Ci0KLXR5cGVkZWYg
c3RydWN0IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107IC8vZmxvYXRbM10KLX0g
SG1kVmVjdG9yM190OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBm
bG9hdCB2WzRdOyAvL2Zsb2F0WzRdCi19IEhtZFZlY3RvcjRfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SG1kVmVjdG9yM2RfdAotewotICAgICAgIGRvdWJsZSB2WzNdOyAvL2RvdWJsZVszXQotfSBIbWRW
ZWN0b3IzZF90OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOyAvL2Zsb2F0WzJdCi19IEhtZFZlY3RvcjJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgSG1k
UXVhdGVybmlvbl90Ci17Ci0gICAgICAgZG91YmxlIHc7Ci0gICAgICAgZG91YmxlIHg7Ci0gICAg
ICAgZG91YmxlIHk7Ci0gICAgICAgZG91YmxlIHo7Ci19IEhtZFF1YXRlcm5pb25fdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgSG1kQ29sb3JfdAotewotICAgICAgIGZsb2F0IHI7Ci0gICAgICAgZmxvYXQg
ZzsKLSAgICAgICBmbG9hdCBiOwotICAgICAgIGZsb2F0IGE7Ci19IEhtZENvbG9yX3Q7Ci0KLXR5
cGVkZWYgc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkNv
cm5lcnNbNF07IC8vc3RydWN0IHZyOjpIbWRWZWN0b3IzX3RbNF0KLX0gSG1kUXVhZF90OwotCi10
eXBlZGVmIHN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2
VG9wTGVmdDsKLSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX0gSG1k
UmVjdDJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBmbG9hdCByZlJlZFsyXTsgLy9mbG9hdFsyXQotICAgICAgIGZsb2F0IHJmR3JlZW5bMl07
IC8vZmxvYXRbMl0KLSAgICAgICBmbG9hdCByZkJsdWVbMl07IC8vZmxvYXRbMl0KLX0gRGlzdG9y
dGlvbkNvb3JkaW5hdGVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFRleHR1cmVfdAotewotICAgICAg
IHZvaWQgKiBoYW5kbGU7IC8vIHZvaWQgKgotICAgICAgIGVudW0gRVRleHR1cmVUeXBlIGVUeXBl
OwotICAgICAgIGVudW0gRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19IFRleHR1cmVfdDsKLQot
dHlwZWRlZiBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdAotewotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2VmVsb2NpdHk7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2QW5ndWxhclZl
bG9jaXR5OwotICAgICAgIGVudW0gRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICBib29sIGJQb3NlSXNWYWxpZDsKLSAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsK
LX0gVHJhY2tlZERldmljZVBvc2VfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRz
X3QKLXsKLSAgICAgICBmbG9hdCB1TWluOwotICAgICAgIGZsb2F0IHZNaW47Ci0gICAgICAgZmxv
YXQgdU1heDsKLSAgICAgICBmbG9hdCB2TWF4OwotfSBWUlRleHR1cmVCb3VuZHNfdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9u
SW1hZ2U7Ci0gICAgICAgc3RydWN0IFZrRGV2aWNlX1QgKiBtX3BEZXZpY2U7IC8vIHN0cnVjdCBW
a0RldmljZV9UICoKLSAgICAgICBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICogbV9wUGh5c2lj
YWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKgotICAgICAgIHN0cnVjdCBW
a0luc3RhbmNlX1QgKiBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAg
ICAgc3RydWN0IFZrUXVldWVfVCAqIG1fcFF1ZXVlOyAvLyBzdHJ1Y3QgVmtRdWV1ZV9UICoKLSAg
ICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbldp
ZHRoOwotICAgICAgIHVpbnQzMl90IG1fbkhlaWdodDsKLSAgICAgICB1aW50MzJfdCBtX25Gb3Jt
YXQ7Ci0gICAgICAgdWludDMyX3QgbV9uU2FtcGxlQ291bnQ7Ci19IFZSVnVsa2FuVGV4dHVyZURh
dGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgc3Ry
dWN0IElEM0QxMlJlc291cmNlICogbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNvdXJj
ZSAqCi0gICAgICAgc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIG1fcENvbW1hbmRRdWV1ZTsg
Ly8gc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqCi0gICAgICAgdWludDMyX3QgbV9uTm9kZU1h
c2s7Ci19IEQzRDEyVGV4dHVyZURhdGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Db250
cm9sbGVyX3QKLXsKLSAgICAgICB1aW50MzJfdCBidXR0b247Ci19IFZSRXZlbnRfQ29udHJvbGxl
cl90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4
OwotICAgICAgIGZsb2F0IHk7Ci0gICAgICAgdWludDMyX3QgYnV0dG9uOwotfSBWUkV2ZW50X01v
dXNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKLXsKLSAgICAgICBmbG9h
dCB4ZGVsdGE7Ci0gICAgICAgZmxvYXQgeWRlbHRhOwotICAgICAgIHVpbnQzMl90IHJlcGVhdENv
dW50OwotfSBWUkV2ZW50X1Njcm9sbF90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLSAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOwotICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKLSAgICAgICBmbG9h
dCBmVmFsdWVZRmlyc3Q7Ci0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBm
VmFsdWVZUmF3OwotfSBWUkV2ZW50X1RvdWNoUGFkTW92ZV90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0g
ICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19IFZSRXZlbnRfTm90aWZpY2F0aW9uX3Q7
Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWludDMyX3Qg
cGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7Ci19IFZS
RXZlbnRfUHJvY2Vzc190OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewot
ICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci19IFZSRXZlbnRfT3ZlcmxheV90OwotCi10
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVz
U3RhdGU7Ci19IFZSRXZlbnRfU3RhdHVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfS2V5
Ym9hcmRfdAotewotICAgICAgIGNoYXIgKiBjTmV3SW5wdXRbOF07IC8vY2hhcls4XQotICAgICAg
IHVpbnQ2NF90IHVVc2VyVmFsdWU7Ci19IFZSRXZlbnRfS2V5Ym9hcmRfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgVlJFdmVudF9JcGRfdAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX0gVlJFdmVu
dF9JcGRfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9DaGFwZXJvbmVfdAotewotICAgICAg
IHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7Ci0gICAgICAgdWludDY0X3QgbV9uQ3VycmVu
dFVuaXZlcnNlOwotfSBWUkV2ZW50X0NoYXBlcm9uZV90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWlu
dDY0X3QgcmVzZXJ2ZWQxOwotfSBWUkV2ZW50X1Jlc2VydmVkX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRlbGl0
eUxldmVsOwotfSBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewotICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0
ZW1NZW51OwotfSBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdDsKLQotdHlwZWRlZiBzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAg
ICAgdWludDMyX3QgdHlwZTsKLX0gVlJFdmVudF9TY3JlZW5zaG90X3Q7Ci0KLXR5cGVkZWYgc3Ry
dWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVz
czsKLX0gVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAg
IHVpbnQzMl90IHVuQXJnc0hhbmRsZTsKLX0gVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Owot
Ci10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fSBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZl
bnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlOwotfSBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
Y29udGFpbmVyOwotICAgICAgIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotfSBW
UkV2ZW50X1Byb3BlcnR5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsK
LSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90ICogcFZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVj
dCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci19
IEhpZGRlbkFyZWFNZXNoX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAot
ewotICAgICAgIGZsb2F0IHg7Ci0gICAgICAgZmxvYXQgeTsKLX0gVlJDb250cm9sbGVyQXhpc190
OwotCi10eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZV90Ci17Ci0gICAgICAgdWludDMy
X3QgdW5QYWNrZXROdW07Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOwotICAgICAg
IHVpbnQ2NF90IHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBzdHJ1Y3QgVlJDb250cm9sbGVyQXhp
c190IHJBeGlzWzVdOyAvL3N0cnVjdCB2cjo6VlJDb250cm9sbGVyQXhpc190WzVdCi19IFZSQ29u
dHJvbGxlclN0YXRlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRp
bmdzCi17Ci0gICAgICAgdWludDMyX3Qgc2l6ZTsKLSAgICAgICBib29sIGN1cnZlZDsKLSAgICAg
ICBib29sIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZTsKLSAgICAgICBmbG9hdCBkaXN0
YW5jZTsKLSAgICAgICBmbG9hdCBhbHBoYTsKLSAgICAgICBmbG9hdCB1T2Zmc2V0OwotICAgICAg
IGZsb2F0IHZPZmZzZXQ7Ci0gICAgICAgZmxvYXQgdVNjYWxlOwotICAgICAgIGZsb2F0IHZTY2Fs
ZTsKLSAgICAgICBmbG9hdCBncmlkRGl2czsKLSAgICAgICBmbG9hdCBncmlkV2lkdGg7Ci0gICAg
ICAgZmxvYXQgZ3JpZFNjYWxlOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IHRyYW5zZm9y
bTsKLX0gQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3M7Ci0KLXR5cGVkZWYgc3RydWN0IENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIGVudW0gRVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSBlRnJhbWVUeXBlOwotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotICAgICAg
IHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOwotICAgICAgIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVI
ZWFkZXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QKLXsKLSAgICAgICBj
aGFyICogcGNoS2V5OyAvLyBjb25zdCBjaGFyICoKLSAgICAgICBjaGFyICogcGNoVmFsdWU7IC8v
IGNvbnN0IGNoYXIgKgotfSBBcHBPdmVycmlkZUtleXNfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQ29t
cG9zaXRvcl9GcmFtZVRpbWluZwotewotICAgICAgIHVpbnQzMl90IG1fblNpemU7Ci0gICAgICAg
dWludDMyX3QgbV9uRnJhbWVJbmRleDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNl
bnRzOwotICAgICAgIHVpbnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fblJlcHJvamVjdGlvbkZs
YWdzOwotICAgICAgIGRvdWJsZSBtX2ZsU3lzdGVtVGltZUluU2Vjb25kczsKLSAgICAgICBmbG9h
dCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgZmxvYXQgbV9mbFBvc3RTdWJtaXRHcHVNczsK
LSAgICAgICBmbG9hdCBtX2ZsVG90YWxSZW5kZXJHcHVNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29t
cG9zaXRvclJlbmRlckdwdU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1
TXM7Ci0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7Ci0gICAgICAgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBmbG9hdCBtX2ZsUHJlc2VudENhbGxD
cHVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZvclByZXNlbnRDcHVNczsKLSAgICAgICBmbG9h
dCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2FsbGVk
TXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBtX2Zs
TmV3RnJhbWVSZWFkeU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRN
czsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOwotICAgICAgIGZsb2F0
IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IG1fSG1kUG9zZTsKLX0gQ29tcG9zaXRvcl9GcmFtZVRpbWluZzsKLQotdHlwZWRlZiBzdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAgICAgICB1aW50MzJfdCBtX25O
dW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVz
OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1M
b2FkaW5nOwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAg
ICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHVpbnQzMl90
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICB1aW50MzJfdCBtX25OdW1U
aW1lZE91dDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19IENvbXBvc2l0b3JfQ3VtdWxh
dGl2ZVN0YXRzOwotCi10eXBlZGVmIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNf
dAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdlNvdXJjZTsKLSAgICAgICBzdHJ1Y3Qg
SG1kVmVjdG9yM190IHZEaXJlY3Rpb247Ci0gICAgICAgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luOwotfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdDsKLQotdHlwZWRl
ZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190Ci17Ci0gICAgICAgc3RydWN0
IEhtZFZlY3RvcjNfdCB2UG9pbnQ7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Tm9ybWFs
OwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlVWczsKLSAgICAgICBmbG9hdCBmRGlzdGFu
Y2U7Ci19IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Ci17Ci0gICAgICAgZmxvYXQgbV9mbFRvcExlZnRY
OwotICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WTsKLSAgICAgICBmbG9hdCBtX2ZsV2lkdGg7Ci0g
ICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLX0gSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsKLSAgICAgICBmbG9h
dCBtX2ZsQ2VudGVyWDsKLSAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWTsKLSAgICAgICBmbG9hdCBt
X2ZsUmFkaXVzOwotfSBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKLXsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVsOwotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7Ci0gICAgICAgVlJDb21wb25lbnRQ
cm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfSBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IzX3QgdlBvc2l0aW9uOwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1h
bDsKLSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsgLy9mbG9hdFsyXQotfSBSZW5kZXJN
b2RlbF9WZXJ0ZXhfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
Ci17Ci0gICAgICAgdWludDE2X3QgdW5XaWR0aDsKLSAgICAgICB1aW50MTZfdCB1bkhlaWdodDsK
LSAgICAgICB1aW50OF90ICogcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fSBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVs
X3QKLXsKLSAgICAgICBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QgKiByVmVydGV4RGF0YTsg
Ly8gY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgdWludDMy
X3QgdW5WZXJ0ZXhDb3VudDsKLSAgICAgICB1aW50MTZfdCAqIHJJbmRleERhdGE7IC8vIGNvbnN0
IHVpbnQxNl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgVGV4
dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsKLX0gUmVuZGVyTW9kZWxfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wg
YlNjcm9sbFdoZWVsVmlzaWJsZTsKLX0gUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dDsKLQotdHlwZWRlZiBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICB2b2lk
ICogbV9wSW1hZ2VEYXRhOyAvLyB2b2lkICoKLSAgICAgICBpbnQzMl90IG1fbldpZHRoOwotICAg
ICAgIGludDMyX3QgbV9uSGVpZ2h0OwotICAgICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsK
LX0gTm90aWZpY2F0aW9uQml0bWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENPcGVuVlJDb250ZXh0
Ci17Ci0gICAgICAgaW50cHRyX3QgbV9wVlJTeXN0ZW07IC8vIGNsYXNzIHZyOjpJVlJTeXN0ZW0g
KgotICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVy
b25lICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6
SVZSQ2hhcGVyb25lU2V0dXAgKgotICAgICAgIGludHB0cl90IG1fcFZSQ29tcG9zaXRvcjsgLy8g
Y2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKgotICAgICAgIGludHB0cl90IG1fcFZST3ZlcmxheTsg
Ly8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgotICAgICAgIGludHB0cl90IG1fcFZSUmVzb3VyY2Vz
OyAvLyBjbGFzcyB2cjo6SVZSUmVzb3VyY2VzICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUlJlbmRl
ck1vZGVsczsgLy8gY2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqCi0gICAgICAgaW50cHRyX3Qg
bV9wVlJFeHRlbmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgot
ICAgICAgIGludHB0cl90IG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNzIHZyOjpJVlJTZXR0aW5ncyAq
Ci0gICAgICAgaW50cHRyX3QgbV9wVlJBcHBsaWNhdGlvbnM7IC8vIGNsYXNzIHZyOjpJVlJBcHBs
aWNhdGlvbnMgKgotICAgICAgIGludHB0cl90IG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xhc3Mg
dnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIGludHB0cl90IG1fcFZSU2NyZWVuc2hvdHM7
IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqCi19IENPcGVuVlJDb250ZXh0OwotCi0KLXR5
cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
LSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKLSAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OwotfSBWUkV2
ZW50X0RhdGFfdDsKLQotLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUgc2VydmVyIHRvIGFsbCBy
dW5uaW5nIGFwcGxpY2F0aW9ucyAqLwotc3RydWN0IFZSRXZlbnRfdAotewotICAgICAgIHVpbnQz
Ml90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KLSAgICAgICBUcmFja2VkRGV2aWNl
SW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7Ci0gICAgICAgZmxvYXQgZXZlbnRBZ2VTZWNvbmRz
OwotICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgYXMg
aXRzIHNpemUgaXMgdmFyaWFibGUKLSAgICAgICBWUkV2ZW50X0RhdGFfdCBkYXRhOwotfTsKLQot
Ci10eXBlZGVmIHVuaW9uCi17Ci0gICAgICAgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1f
UmVjdGFuZ2xlOwotICAgICAgIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKLX0g
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLXN0cnVjdCBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKLXsKLSAgICAgICBFVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCBtX1ByaW1pdGl2ZTsKLX07Ci0K
LQotLy8gT3BlblZSIEZ1bmN0aW9uIFBvaW50ZXIgVGFibGVzCi0KLXN0cnVjdCBWUl9JVlJTeXN0
ZW1fRm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRS
ZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUpKHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3Qg
KiBwbkhlaWdodCk7Ci0gICAgICAgc3RydWN0IEhtZE1hdHJpeDQ0X3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRQcm9qZWN0aW9uTWF0cml4KShFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJa
LCBmbG9hdCBmRmFyWik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByb2plY3Rpb25SYXcpKEVWUkV5ZSBlRXllLCBmbG9hdCAqIHBmTGVmdCwgZmxvYXQgKiBwZlJp
Z2h0LCBmbG9hdCAqIHBmVG9wLCBmbG9hdCAqIHBmQm90dG9tKTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcHV0ZURpc3RvcnRpb24pKEVWUkV5ZSBlRXllLCBmbG9h
dCBmVSwgZmxvYXQgZlYsIHN0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIHBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXMpOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0RXllVG9IZWFkVHJhbnNmb3JtKShFVlJFeWUgZUV5ZSk7Ci0gICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRpbWVTaW5jZUxhc3RWc3luYyko
ZmxvYXQgKiBwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWludDY0X3QgKiBwdWxGcmFtZUNvdW50
ZXIpOwotICAgICAgIGludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREM0Q5QWRh
cHRlckluZGV4KSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
WEdJT3V0cHV0SW5mbykoaW50MzJfdCAqIHBuQWRhcHRlckluZGV4KTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEaXNwbGF5T25EZXNrdG9wKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREaXNwbGF5VmlzaWJpbGl0eSkoYm9vbCBi
SXNWaXNpYmxlT25EZXNrdG9wKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50MzJf
dCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlJlc2V0U2VhdGVkWmVyb1Bvc2UpKCk7Ci0gICAgICAgc3RydWN0IEht
ZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTZWF0ZWRaZXJvUG9zZVRv
U3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSkoKTsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzKShFVHJhY2tlZERl
dmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVu
VHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZUluZGV4QXJy
YXlDb3VudCwgVHJhY2tlZERldmljZUluZGV4X3QgdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUlu
ZGV4KTsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1
bkRldmljZUlkKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQXBwbHlU
cmFuc2Zvcm0pKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dFBvc2UsIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlLCBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCAqIHBUcmFuc2Zvcm0pOwotICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJv
bGUpKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKTsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29udHJvbGxlclJv
bGVGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRUcmFja2VkRGV2aWNlQ2xhc3MpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc1RyYWNrZWREZXZp
Y2VDb25uZWN0ZWQpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgpOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sVHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgZmxv
YXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQ2
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VWludDY0VHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNYXRyaXgzNFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJy
b3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3Qg
dW5CdWZmZXJTaXplLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGNo
YXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSko
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqUG9sbE5leHRFdmVudCkoc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpQb2xsTmV4dEV2ZW50V2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50LCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBjaGFyICogKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0pKEVWUkV2ZW50VHlw
ZSBlVHlwZSk7Ci0gICAgICAgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRIaWRkZW5BcmVhTWVzaCkoRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVz
aFR5cGUgdHlwZSk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENv
bnRyb2xsZXJTdGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9y
aWdpbiwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFZSQ29u
dHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJT
dGF0ZVNpemUsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3Nl
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVHJpZ2dlckhhcHRpY1B1
bHNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMy
X3QgdW5BeGlzSWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QnV0dG9uSWROYW1lRnJvbUVudW0p
KEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKShFVlJDb250cm9sbGVy
QXhpc1R5cGUgZUF4aXNUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqQ2FwdHVyZUlucHV0Rm9jdXMpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlJlbGVhc2VJbnB1dEZvY3VzKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MpKCk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpEcml2ZXJEZWJ1Z1JlcXVlc3Qp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hSZXF1ZXN0LCBj
aGFyICogcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplKTsK
LSAgICAgICBFVlJGaXJtd2FyZUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9y
bUZpcm13YXJlVXBkYXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKLSAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNrbm93bGVkZ2VRdWl0X0V4aXRp
bmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdl
UXVpdF9Vc2VyUHJvbXB0KSgpOwotfTsKLQotc3RydWN0IFZSX0lWUkV4dGVuZGVkRGlzcGxheV9G
blRhYmxlCi17Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdpbmRv
d0JvdW5kcykoaW50MzJfdCAqIHBuWCwgaW50MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRo
LCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0RXllT3V0cHV0Vmlld3BvcnQpKEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqIHBuWCwg
dWludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7
Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERYR0lPdXRwdXRJbmZv
KShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgsIGludDMyX3QgKiBwbkFkYXB0ZXJPdXRwdXRJbmRl
eCk7Ci19OwotCi1zdHJ1Y3QgVlJfSVZSVHJhY2tlZENhbWVyYV9GblRhYmxlCi17Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0pKEVWUlRyYWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOwotICAgICAgIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhhc0NhbWVyYSkoVHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICogcEhhc0NhbWVyYSk7Ci0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJh
RnJhbWVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAq
IHBuSGVpZ2h0LCB1aW50MzJfdCAqIHBuRnJhbWVCdWZmZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFJbnRyaW5z
aWNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICogcEZvY2FsTGVuZ3RoLCBIbWRWZWN0
b3IyX3QgKiBwQ2VudGVyKTsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFQcm9qZWN0aW9uKShUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxv
YXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCBIbWRNYXRyaXg0NF90ICogcFByb2plY3Rpb24pOwot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFj
cXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJ
bmRleCwgVHJhY2tlZENhbWVyYUhhbmRsZV90ICogcEhhbmRsZSk7Ci0gICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFt
aW5nU2VydmljZSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhKTsKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqIHBGcmFtZUJ1ZmZl
ciwgdWludDMyX3QgbkZyYW1lQnVmZmVyU2l6ZSwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90ICogcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRlb1N0
cmVhbVRleHR1cmVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgVlJUZXh0dXJlQm91bmRzX3QgKiBwVGV4
dHVyZUJvdW5kcywgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRW
aWRlb1N0cmVhbVRleHR1cmVEM0QxMSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2Ft
ZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRDNEMTFE
ZXZpY2VPclJlc291cmNlLCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1l
SGVhZGVyU2l6ZSk7Ci0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBn
bFVJbnRfdCAqIHBnbFRleHR1cmVJZCwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICog
cEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlVmlkZW9TdHJl
YW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgZ2xVSW50
X3QgZ2xUZXh0dXJlSWQpOwotfTsKLQotc3RydWN0IFZSX0lWUkFwcGxpY2F0aW9uc19GblRhYmxl
Ci17Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVs
bFBhdGgsIGJvb2wgYlRlbXBvcmFyeSk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBw
Y2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKShjaGFyICogcGNoQXBwS2V5KTsK
LSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9u
Q291bnQpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCkodWludDMyX3QgdW5BcHBsaWNhdGlvbklu
ZGV4LCBjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQpKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICog
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7Ci0gICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbikoY2hhciAqIHBj
aFRlbXBsYXRlQXBwS2V5LCBjaGFyICogcGNoTmV3QXBwS2V5LCBzdHJ1Y3QgQXBwT3ZlcnJpZGVL
ZXlzX3QgKiBwS2V5cywgdWludDMyX3QgdW5LZXlzKTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5
cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hhciAqIHBjaEFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hEYXNoYm9hcmRPdmVy
bGF5KShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gpKGNoYXIgKiBwY2hBcHBLZXkpOwotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJZGVudGlmeUFw
cGxpY2F0aW9uKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBjaEFwcEtleSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb2Nl
c3NJZCkoY2hhciAqIHBjaEFwcEtleSk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0pKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZykoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIGNoYXIgKiBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1
aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4sIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBw
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGlj
YXRpb25Qcm9wZXJ0eUJvb2wpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVy
dHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb3BlcnR5VWlu
dDY0KShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwg
RVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNo
YXIgKiBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNoYXIgKiBwY2hBcHBL
ZXkpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAqIHBjaEFwcEtleSwgY2hh
ciAqIHBjaE1pbWVUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hh
ciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1p
bWVUeXBlcykoY2hhciAqIHBjaEFwcEtleSwgY2hhciAqIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWlu
dDMyX3QgdW5NaW1lVHlwZXNCdWZmZXIpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSkoY2hhciAqIHBj
aE1pbWVUeXBlLCBjaGFyICogcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cykodWludDMyX3QgdW5I
YW5kbGUsIGNoYXIgKiBwY2hBcmdzLCB1aW50MzJfdCB1bkFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdGFydGluZ0FwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRUcmFuc2l0aW9uU3RhdGUpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENo
ZWNrKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0pKEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqSXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCkoKTsKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoSW50ZXJuYWxQ
cm9jZXNzKShjaGFyICogcGNoQmluYXJ5UGF0aCwgY2hhciAqIHBjaEFyZ3VtZW50cywgY2hhciAq
IHBjaFdvcmtpbmdEaXJlY3RvcnkpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKSgpOwotfTsKLQotc3RydWN0IFZSX0lW
UkNoYXBlcm9uZV9GblRhYmxlCi17Ci0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbGlicmF0aW9uU3RhdGUpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFBsYXlBcmVhU2l6ZSkoZmxvYXQgKiBw
U2l6ZVgsIGZsb2F0ICogcFNpemVaKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UGxheUFyZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEluZm8pKCk7Ci0gICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFNjZW5lQ29sb3IpKHN0cnVjdCBIbWRDb2xv
cl90IGNvbG9yKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm91
bmRzQ29sb3IpKHN0cnVjdCBIbWRDb2xvcl90ICogcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVt
T3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgc3RydWN0
IEhtZENvbG9yX3QgKiBwT3V0cHV0Q2FtZXJhQ29sb3IpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpBcmVCb3VuZHNWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpGb3JjZUJvdW5kc1Zpc2libGUpKGJvb2wgYkZvcmNlKTsKLX07
Ci0KLXN0cnVjdCBWUl9JVlJDaGFwZXJvbmVTZXR1cF9GblRhYmxlCi17Ci0gICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbW1pdFdvcmtpbmdDb3B5KShFQ2hhcGVyb25lQ29u
ZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqUmV2ZXJ0V29ya2luZ0NvcHkpKCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNpemVYLCBmbG9hdCAqIHBT
aXplWik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdQ
bGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3QgKiByZWN0KTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8pKHN0cnVj
dCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVDb2xsaXNpb25Cb3Vu
ZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1
YWRzQ291bnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJ
bmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291
bnQpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEZy
b21EaXNrKShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3Jr
aW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMy
X3QgdW5UYWdDb3VudCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBUYWdzQnVmZmVyLCB1aW50
MzJfdCAqIHB1blRhZ0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFk
c0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRf
dCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRXhwb3J0TGl2ZVRvQnVmZmVyKShjaGFyICogcEJ1
ZmZlciwgdWludDMyX3QgKiBwbkJ1ZmZlckxlbmd0aCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcpKGNoYXIgKiBwQnVmZmVy
LCB1aW50MzJfdCBuSW1wb3J0RmxhZ3MpOwotfTsKLQotc3RydWN0IFZSX0lWUkNvbXBvc2l0b3Jf
Rm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRUcmFj
a2luZ1NwYWNlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsKLSAgICAgICBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNraW5n
U3BhY2UpKCk7Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqV2FpdEdldFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQ
b3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRMYXN0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFJlbmRlclBvc2VB
cnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgc3RydWN0IFRyYWNrZWREZXZp
Y2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291bnQp
OwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRl
dmljZUluZGV4LCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRHYW1lUG9zZSk7Ci0gICAgICAgRVZSQ29t
cG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0KShFVlJFeWUgZUV5
ZSwgc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3Qg
KiBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSkoKTsKLSAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9zdFByZXNlbnRIYW5kb2ZmKSgpOwot
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRpbWluZykoc3Ry
dWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBwVGltaW5nLCB1aW50MzJfdCB1bkZyYW1lc0Fn
byk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRp
bWluZ3MpKHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3Qg
bkZyYW1lcyk7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFt
ZVRpbWVSZW1haW5pbmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1bXVsYXRpdmVTdGF0cykoc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICog
cFN0YXRzLCB1aW50MzJfdCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVUb0NvbG9yKShmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJl
ZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3Jv
dW5kKTsKLSAgICAgICBzdHJ1Y3QgSG1kQ29sb3JfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1cnJlbnRGYWRlQ29sb3IpKGJvb2wgYkJhY2tncm91bmQpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpGYWRlR3JpZCkoZmxvYXQgZlNlY29uZHMsIGJvb2wgYkZh
ZGVJbik7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50
R3JpZEFscGhhKSgpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldFNreWJveE92ZXJyaWRlKShzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmVz
LCB1aW50MzJfdCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNsZWFyU2t5Ym94T3ZlcnJpZGUpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQpKCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JHb1RvQmFjaykoKTsKLSAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvclF1aXQpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRnVsbHNjcmVlbikoKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRTY2VuZUZvY3VzUHJv
Y2VzcykoKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExh
c3RGcmFtZVJlbmRlcmVyKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDYW5SZW5kZXJTY2VuZSkoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2hvd01pcnJvcldpbmRvdykoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqSGlkZU1pcnJvcldpbmRvdykoKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNNaXJyb3JXaW5kb3dWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yRHVtcEltYWdlcykoKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyko
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uKShib29sIGJPdmVycmlkZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkZvcmNlUmVjb25uZWN0UHJvY2VzcykoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VzcGVuZFJlbmRlcmluZykoYm9vbCBiU3VzcGVuZCk7
Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TWlycm9yVGV4dHVyZUQzRDExKShFVlJFeWUgZUV5ZSwgdm9pZCAqIHBEM0QxMURldmljZU9yUmVz
b3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEpKHZvaWQg
KiBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1pcnJvclRleHR1cmVHTCkoRVZSRXllIGVFeWUs
IGdsVUludF90ICogcGdsVGV4dHVyZUlkLCBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqIHBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZWxlYXNlU2hhcmVkR0xUZXh0dXJlKShnbFVJbnRfdCBnbFRleHR1cmVJZCwgZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKShn
bFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQpKGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZCkoc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIHBQaHlzaWNhbERl
dmljZSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUpOwotfTsKLQotc3Ry
dWN0IFZSX0lWUk92ZXJsYXlfRm5UYWJsZQotewotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZpbmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3JlYXRlT3ZlcmxheSkoY2hhciAqIHBjaE92
ZXJsYXlLZXksIGNoYXIgKiBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVf
dCAqIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpEZXN0cm95T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRIaWdoUXVhbGl0eU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgVlJPdmVybGF5SGFuZGxlX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRIaWdoUXVhbGl0eU92ZXJsYXkpKCk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5S2V5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJy
b3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0T3ZlcmxheU5hbWUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAq
IHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAqIHBFcnJv
cik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheUltYWdlRGF0YSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lk
ICogcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKiBwdW5XaWR0aCwg
dWludDMyX3QgKiBwdW5IZWlnaHQpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSkoRVZST3ZlcmxheUVycm9yIGVycm9y
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90IHVuUElEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5
RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKLSAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5RmxhZykoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wg
KiBwYkVuYWJsZWQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlNldE92ZXJsYXlDb2xvcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKLSAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5Q29sb3IpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZlJlZCwgZmxvYXQgKiBwZkdy
ZWVuLCBmbG9hdCAqIHBmQmx1ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRleGVsQXNwZWN0KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCk7Ci0gICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleGVsQXNw
ZWN0KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZUZXhlbEFz
cGVjdCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3Zlcmxh
eUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMp
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlXaWR0aEluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0ICogcGZXaWR0aEluTWV0ZXJzKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUlu
TWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNl
UmFuZ2VJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAq
IHBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgKiBwZk1heERpc3RhbmNlSW5NZXRlcnMpOwot
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBF
Q29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFQ29sb3JTcGFjZSAqIHBlVGV4dHVyZUNv
bG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3Ry
dWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsKLSAgICAgICBF
VlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICogcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICogcGVUcmFja2luZ09y
aWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0pOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2
aWNlLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJh
bnNmb3JtKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVuVHJhY2tlZERl
dmljZSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29t
cG9uZW50KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJ
bmRleF90ICogcHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lLCB1aW50MzJf
dCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTaG93T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpIaWRlT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNPdmVybGF5VmlzaWJsZSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5PdmVy
bGF5LCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb2xsTmV4dE92ZXJsYXlFdmVudCkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50
MzJfdCB1bmNiVlJFdmVudCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheUlucHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kICogcGVJbnB1dE1ldGhvZCk7Ci0gICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUlu
cHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheU1vdXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsK
LSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5TW91c2VTY2FsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3Qg
SG1kVmVjdG9yMl90ICogcHZlY01vdXNlU2NhbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDb21wdXRlT3ZlcmxheUludGVyc2VjdGlvbikoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Qg
KiBwUGFyYW1zLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICogcFJlc3Vs
dHMpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzSG92ZXJUYXJnZXRPdmVybGF5
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFZST3ZlcmxheUhh
bmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSko
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRH
YW1lcGFkRm9jdXNPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE5ld0ZvY3VzT3ZlcmxheSk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zl
cmxheU5laWdoYm9yKShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5k
bGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8pOwotICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKk1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9y
KShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5kbGVfdCB1bEZyb20p
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBU
ZXh0dXJlX3QgKiBwVGV4dHVyZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ2xlYXJPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRPdmVybGF5UmF3KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHZvaWQgKiBwdkJ1ZmZlciwgdWludDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVp
bnQzMl90IHVuRGVwdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlGcm9tRmlsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBjaGFyICogcGNoRmlsZVBhdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKiogcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKiBw
TmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKiBwV2lkdGgsIHVpbnQzMl90ICogcEhlaWdodCwg
dWludDMyX3QgKiBwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKiBwQVBJVHlwZSwgRUNvbG9y
U3BhY2UgKiBwQ29sb3JTcGFjZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1cmVC
b3VuZHMpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHZvaWQgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmVTaXplKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJf
dCAqIHBIZWlnaHQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkNyZWF0ZURhc2hib2FyZE92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5S2V5LCBjaGFy
ICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRs
ZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEYXNoYm9hcmRWaXNpYmxlKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blByb2Nlc3NJ
ZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCB1aW50MzJfdCAqIHB1blByb2Nlc3NJZCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dEYXNoYm9hcmQpKGNoYXIgKiBwY2hPdmVybGF5VG9TaG93KTsK
LSAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UpKCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkKShFR2FtZXBhZFRleHRJbnB1dE1vZGUg
ZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY2hh
ciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBwY2hFeGlzdGlu
Z1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlKTsKLSAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmRG
b3JPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVHYW1lcGFkVGV4
dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5w
dXRNb2RlLCBjaGFyICogcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY2hhciAq
IHBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFs
dWUpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0S2V5Ym9h
cmRUZXh0KShjaGFyICogcGNoVGV4dCwgdWludDMyX3QgY2NoVGV4dCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhpZGVLZXlib2FyZCkoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSkoRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRf
dCAqIHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0pOwotICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kUmVjdDJfdCBhdm9p
ZFJlY3QpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKiBwTWFz
a1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuUHJp
bWl0aXZlU2l6ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUZsYWdzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHVpbnQzMl90ICogcEZsYWdzKTsKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93TWVzc2FnZU92ZXJsYXkpKGNoYXIgKiBwY2hUZXh0
LCBjaGFyICogcGNoQ2FwdGlvbiwgY2hhciAqIHBjaEJ1dHRvbjBUZXh0LCBjaGFyICogcGNoQnV0
dG9uMVRleHQsIGNoYXIgKiBwY2hCdXR0b24yVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjNUZXh0KTsK
LX07Ci0KLXN0cnVjdCBWUl9JVlJSZW5kZXJNb2RlbHNfRm5UYWJsZQotewotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkUmVuZGVyTW9kZWxf
QXN5bmMpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cnVjdCBSZW5kZXJNb2RlbF90ICoq
IHBwUmVuZGVyTW9kZWwpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpG
cmVlUmVuZGVyTW9kZWwpKHN0cnVjdCBSZW5kZXJNb2RlbF90ICogcFJlbmRlck1vZGVsKTsKLSAg
ICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFRl
eHR1cmVfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgc3RydWN0IFJlbmRlck1vZGVsX1Rl
eHR1cmVNYXBfdCAqKiBwcFRleHR1cmUpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpGcmVlVGV4dHVyZSkoc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqIHBU
ZXh0dXJlKTsKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqTG9hZFRleHR1cmVEM0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lk
ICogcEQzRDExRGV2aWNlLCB2b2lkICoqIHBwRDNEMTFUZXh0dXJlMkQpOwotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkSW50b1RleHR1cmVE
M0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICogcERzdFRleHR1cmUpOwot
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGcmVlVGV4dHVyZUQzRDExKSh2
b2lkICogcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFJlbmRlck1vZGVsTmFtZSkodWludDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4
LCBjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxl
bik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJN
b2RlbENvdW50KSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q29tcG9uZW50Q291bnQpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50TmFtZSkoY2hhciAq
IHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRJbmRleCwgY2hhciAqIHBj
aENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRCdXR0b25NYXNrKShj
aGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRSZW5kZXJN
b2RlbE5hbWUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnRO
YW1lLCBjaGFyICogcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBv
bmVudFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldENvbXBvbmVudFN0YXRlKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoQ29tcG9uZW50TmFtZSwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3Rh
dGUsIHN0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICogcFN0YXRlLCBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIHBDb21wb25lbnRTdGF0ZSk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbmRlck1vZGVsSGFzQ29tcG9u
ZW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7
Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaFRodW1i
bmFpbFVSTCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIEVWUlJlbmRlck1vZGVsRXJyb3Ig
KiBwZUVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoT3JpZ2luYWxQYXRoLCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgRVZSUmVuZGVy
TW9kZWxFcnJvciAqIHBlRXJyb3IpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW0pKEVWUlJlbmRlck1vZGVsRXJy
b3IgZXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUk5vdGlmaWNhdGlvbnNfRm5UYWJsZQotewot
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3Jl
YXRlTm90aWZpY2F0aW9uKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQ2
NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsIGNoYXIgKiBwY2hUZXh0
LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90
ICogcEltYWdlLCBWUk5vdGlmaWNhdGlvbklkICogcE5vdGlmaWNhdGlvbklkKTsKLSAgICAgICBF
VlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZU5vdGlm
aWNhdGlvbikoVlJOb3RpZmljYXRpb25JZCBub3RpZmljYXRpb25JZCk7Ci19OwotCi1zdHJ1Y3Qg
VlJfSVZSU2V0dGluZ3NfRm5UYWJsZQotewotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0pKEVWUlNldHRpbmdzRXJyb3Ig
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3luYykoYm9v
bCBiRm9yY2UsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0Qm9vbCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBw
Y2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsK
LSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0SW50MzIpKGNoYXIgKiBw
Y2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0
aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBm
bG9hdCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNo
YXIgKiBwY2hTZXR0aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICog
cGVFcnJvcik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2wp
KGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJy
b3IgKiBwZUVycm9yKTsKLSAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0SW50MzIpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNl
dHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0
aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbW92ZVNlY3Rpb24pKGNoYXIgKiBwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICogcGVF
cnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUtleUlu
U2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0
dGluZ3NFcnJvciAqIHBlRXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUlNjcmVlbnNob3RzX0Zu
VGFibGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpSZXF1ZXN0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90ICogcE91dFNjcmVlbnNo
b3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpIb29rU2NyZWVuc2hvdCkoRVZSU2NyZWVuc2hvdFR5cGUg
KiBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgRVZSU2NyZWVuc2hvdFR5
cGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKShT
Y3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhh
bmRsZSwgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSwgY2hhciAq
IHBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxlbmFtZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5z
aG90SGFuZGxlLCBmbG9hdCBmbFByb2dyZXNzKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpUYWtlU3RlcmVvU2NyZWVuc2hvdCkoU2NyZWVuc2hv
dEhhbmRsZV90ICogcE91dFNjcmVlbnNob3RIYW5kbGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdWJtaXRTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxl
X3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAqIHBjaFNv
dXJjZVByZXZpZXdGaWxlbmFtZSwgY2hhciAqIHBjaFNvdXJjZVZSRmlsZW5hbWUpOwotfTsKLQot
c3RydWN0IFZSX0lWUlJlc291cmNlc19GblRhYmxlCi17Ci0gICAgICAgdWludDMyX3QgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpMb2FkU2hhcmVkUmVzb3VyY2UpKGNoYXIgKiBwY2hSZXNvdXJj
ZU5hbWUsIGNoYXIgKiBwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlc291cmNlRnVsbFBhdGgpKGNo
YXIgKiBwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnksIGNo
YXIgKiBwY2hQYXRoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7Ci19OwotCi0KLSNpZiAw
Ci0vLyBHbG9iYWwgZW50cnkgcG9pbnRzCi1TX0FQSSBpbnRwdHJfdCBWUl9Jbml0SW50ZXJuYWwo
IEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVUeXBlICk7Ci1TX0FQ
SSB2b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKLVNfQVBJIGJvb2wgVlJfSXNIbWRQcmVzZW50
KCk7Ci1TX0FQSSBpbnRwdHJfdCBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpw
Y2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLVNfQVBJIGJvb2wg
VlJfSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci1TX0FQSSBjb25zdCBjaGFyICogVlJfR2V0VlJJbml0
RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVycm9yICk7Ci1TX0FQSSBjb25zdCBjaGFyICog
VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9yIGVycm9y
ICk7Ci0jZW5kaWYKLQotI2VuZGlmIC8vIF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkz
OWUyNDY3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwyNTQxICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0vLyBvcGVudnJfZHJpdmVy
LmgKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxl
IGRpcmVjdGx5LgotCi0jaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQotI2RlZmluZSBfT1BFTlZS
X0RSSVZFUl9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0j
aWZuZGVmIF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQot
Ly8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1
Y3QgVmtEZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0
YW5jZV9UOwotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8g
YXZvaWQgcmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotCi0jaWYgZGVmaW5lZChfX2xp
bnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSAgICAgICAvLyBUaGUgMzItYml0IHZlcnNp
b24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRv
dWJsZSBzZXQgdG8KLSAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBw
YWNrKDgpIHRoZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KLSAgICAg
ICAvLyBUaGUgNjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVt
ZW50IGZvciB0aGVzZSB0eXBlcyBzZXQgdG8KLSAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxl
c3Mgd2UgdXNlICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIu
Ci0gICAgICAgLy8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhl
IDMyLWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KLSAgICAgICAjcHJh
Z21hIHBhY2soIHB1c2gsIDQgKQotI2Vsc2UKLSAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDgg
KQotI2VuZGlmCi0KLXR5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci10eXBl
ZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7Ci0KLS8vIHJp
Z2h0LWhhbmRlZCBzeXN0ZW0KLS8vICt5IGlzIHVwCi0vLyAreCBpcyB0byB0aGUgcmlnaHQKLS8v
IC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKLS8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycwot
c3RydWN0IEhtZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOwotfTsKLQotc3Ry
dWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBmbG9hdCBtWzRdWzRdOwotfTsKLQotc3RydWN0
IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVj
dG9yNF90Ci17Ci0gICAgICAgZmxvYXQgdls0XTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IzZF90
Ci17Ci0gICAgICAgZG91YmxlIHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0g
ICAgICAgZmxvYXQgdlsyXTsKLX07Ci0KLXN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKLXsKLSAgICAg
ICBkb3VibGUgdywgeCwgeSwgejsKLX07Ci0KLXN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAgICAg
ZmxvYXQgciwgZywgYiwgYTsKLX07Ci0KLXN0cnVjdCBIbWRRdWFkX3QKLXsKLSAgICAgICBIbWRW
ZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKLX07Ci0KLXN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAg
ICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OwotICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmln
aHQ7Ci19OwotCi0vKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9y
IGVhY2ggY29sb3IgY2hhbm5lbC4gCi0qIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBp
biB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAotKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4g
VGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KLXN0cnVjdCBEaXN0
b3J0aW9uQ29vcmRpbmF0ZXNfdAotewotICAgICAgIGZsb2F0IHJmUmVkWzJdOwotICAgICAgIGZs
b2F0IHJmR3JlZW5bMl07Ci0gICAgICAgZmxvYXQgcmZCbHVlWzJdOwotfTsKLQotZW51bSBFVlJF
eWUKLXsKLSAgICAgICBFeWVfTGVmdCA9IDAsCi0gICAgICAgRXllX1JpZ2h0ID0gMQotfTsKLQot
ZW51bSBFVGV4dHVyZVR5cGUKLXsKLSAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8g
SGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAx
LCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRl
ciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncwotICAgICAgIFRleHR1cmVU
eXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1
cmVEYXRhX3Qgc3RydWN0dXJlCi0gICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8g
SGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKLSAgICAg
ICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
RDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQotfTsKLQotZW51bSBFQ29sb3JTcGFjZQotewot
ICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3Ig
OC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1p
cnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgotICAgICAg
IENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3Bs
YXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsu
YS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KLSAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIs
ICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVh
ciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4K
LX07Ci0KLXN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBF
VGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQotICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsK
LSAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKLX07Ci0KLS8vIEhhbmRsZSB0byBhIHNo
YXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVk
UmVzb3VyY2UpLgotdHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci0jZGVm
aW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1
cmVIYW5kbGVfdCkwKQotCi1lbnVtIEVUcmFja2luZ1Jlc3VsdAotewotICAgICAgIFRyYWNraW5n
UmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCi0KLSAgICAgICBU
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAotICAgICAg
IFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCi0KLSAg
ICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAwLAotICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAg
ICAgICAgPSAyMDEsCi19OwotCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRl
YnVnUmVzcG9uc2VTaXplID0gMzI3Njg7Ci0KLS8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0
byBBUEkgY2FsbHMgKi8KLXR5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci1z
dGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOwotc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKLXN0YXRp
YyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZF
Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0g
MHhGRkZGRkZGRjsKLQotLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5n
IHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLwotZW51bSBFVHJhY2tlZERldmljZUNsYXNzCi17Ci0g
ICAgICAgVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfSE1EID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91
bnRlZCBEaXNwbGF5cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwg
ICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCi0gICAgICAgVHJhY2tl
ZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMg
dHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJvbGxlcnMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlv
bnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCi19OwotCi0KLS8qKiBE
ZXNjcmliZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2
aWNlICovCi1lbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBJbnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKLSAgICAg
ICBUcmFja2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5k
Ci19OwotCi0KLS8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVj
dCAqLwotc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKLXsKLSAgICAgICBIbWRNYXRyaXgzNF90
IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0
eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFj
ZSBpbiBtL3MKLSAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAg
ICAgIC8vIGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQotICAgICAgIEVUcmFja2lu
Z1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7Ci0gICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7Ci0KLSAg
ICAgICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBm
b3IgdGhpcyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgotICAgICAgIC8vIEl0IGNvdWxkIGdvIGZy
b20gdHJ1ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCi0gICAgICAg
Ym9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0vKiogSWRlbnRpZmllcyB3aGljaCBzdHls
ZSBvZiB0cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQotKiBmb3Ig
dGhlIHBvc2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KLWVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4KLXsKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8v
IFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQotICAg
ICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92
aWRlZCByZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgot
ICAgICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQ
b3NlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhl
IGRyaXZlci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBz
YW1lIGRyaXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KLX07Ci0KLS8vIFJl
ZmVycyB0byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwotdHlwZWRlZiB1aW50NjRf
dCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5
cGVUYWdfdDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bElu
dmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFn
X3Qga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7Ci0KLS8vIFVzZSB0aGVzZSB0YWdzIHRvIHNl
dC9nZXQgY29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCi1zdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKLXN0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOwotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwot
c3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFn
ID0gMjE7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9w
ZXJ0eVRhZyA9IDIyOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0
b3I0UHJvcGVydHlUYWcgPSAyMzsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAx
MDAwMDsKLQotCi0vKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3Bl
cnR5IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCi0qIHRyYWNrZWQgZGV2aWNlLiBNYW55
IGZpZWxkcyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCi1l
bnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkKLXsKLSAgICAgICBQcm9wX0ludmFsaWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKLQot
ICAgICAgIC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xh
c3NlcwotICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDAsCi0gICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCi0gICAgICAgUHJv
cF9TZXJpYWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMDIsCi0gICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMDMsCi0gICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCi0gICAgICAgUHJv
cF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MDUsCi0gICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVz
c0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAotICAgICAgIFByb3BfQ29u
bmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAot
ICAgICAgIFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMTAsCi0gICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKLSAgICAgICBQcm9wX0Rldmlj
ZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAw
IGlzIGVtcHR5LCAxIGlzIGZ1bGwKLSAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1f
TWF0cml4MzQgICAgICAgICAgICAgID0gMTAxMywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAotICAgICAgIFByb3Bf
RmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDE1LAotICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAg
ICAgICAgPSAxMDE2LAotICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDE3LAotICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAotICAgICAg
IFByb3BfRlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDE5LAotICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCi0gICAgICAgUHJvcF9SYWRp
b1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEs
Ci0gICAgICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5
Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCi0gICAgICAgUHJvcF9D
b250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAot
ICAgICAgIFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAg
ID0gMTAyNiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAyNywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dy
YW1taW5nVGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAotICAgICAgIFByb3BfRGV2
aWNlQ2xhc3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMjksCi0gICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCi0gICAgICAgUHJvcF9Ecml2ZXJWZXJz
aW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCi0gICAgICAgUHJvcF9GaXJtd2Fy
ZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCi0gICAgICAgUHJvcF9WaXZl
U3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAotICAgICAg
IFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDM0LAotCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBU
cmFja2VkRGV2aWNlQ2xhc3NfSE1ECi0gICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCi0gICAgICAgUHJvcF9TZWNv
bmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCi0gICAgICAg
UHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMDIsCi0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDMsCi0gICAgICAgUHJvcF9DdXJyZW50VW5pdmVy
c2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKLSAgICAgICBQ
cm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDA1LCAKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICAgICAgICAgPSAyMDA2LAotICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKLSAgICAgICBQcm9w
X0Rpc3BsYXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxv
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKLSAgICAgICBQcm9w
X0VkaWRWZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAxMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAg
ICAgICAgID0gMjAxMiwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAg
ICAgICAgICAgID0gMjAxMywKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAotICAgICAgIFByb3BfRWRpZFByb2R1
Y3RJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAotICAg
ICAgIFByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE2LAotICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDE3LAotICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0
X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCi0gICAgICAg
UHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE5LAotICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDIwLAotICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCi0gICAgICAgUHJv
cF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDIzLAotICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAotICAgICAg
IFByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDI1LAotICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSAyMDI2LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKLSAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCi0gICAg
ICAgUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAyOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAotICAgICAgIFByb3BfQXVkaW9GaXJt
d2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAotICAgICAgIFBy
b3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIw
MzMsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19G
bG9hdCA9IDIwMzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0Rl
Z3JlZXNfRmxvYXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAotICAgICAgIFByb3BfRGlz
cGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3
LAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzgsCi0gICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjA0MSwKLSAgICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDQyLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKLSAgICAgICBQcm9wX0F0dGFj
aGVkRGV2aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKLSAg
ICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5
cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2
YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczJU
eXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0
LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAg
ICBQcm9wX0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4
aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVW
UkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9m
IHR5cGUgRVRyYWNrZWRDb250cm9sbGVyUm9sZQotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCi0gICAg
ICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
PSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMDEsCi0gICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNf
RmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCi0gICAgICAgUHJvcF9GaWVsZE9mVmll
d0JvdHRvbURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCi0gICAgICAg
UHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0
LAotICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAg
ICAgID0gNDAwNSwKLSAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVz
IHRoYXQgYXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKLSAgICAg
ICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgot
ICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1
MDAyLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0
cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwg
b3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90
aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAg
ICAgICAgICAgICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5p
bWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDYsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywg
Ly8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBo
ZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycwotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2Vk
IGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucwotICAgICAgIFByb3Bf
RGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNTEwMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gZHJpdmVycwotICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCi0gICAgICAgUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDYwMDEsCi0KLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KLSAgICAgICBQcm9wX1ZlbmRvclNw
ZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKLSAgICAg
ICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0g
MTA5OTksCi19OwotCi0vKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIg
dGhhbiB0aGlzIGxlbmd0aCAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0
eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7Ci0KLS8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhh
dCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KLWVudW0gRVRyYWNrZWRQcm9wZXJ0
eUVycm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMCwKLSAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFU
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBUcmFja2VkUHJvcF9X
cm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAotICAgICAgIFRyYWNrZWRQ
cm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAg
ICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVy
KS4KLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNSwKLSAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAg
ICAgICAgICAgID0gNiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZp
Y2UgICAgICAgPSA3LAotICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVu
Z3RoICAgICAgID0gOCwKLSAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25v
d24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KLSAgICAgICBU
cmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKLSAg
ICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAx
MSwKLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0
IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKLSogZnJhbWUgYnVm
ZmVyLiAqLwotc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgZmxvYXQgdU1pbiwg
dk1pbjsKLSAgICAgICBmbG9hdCB1TWF4LCB2TWF4OwotfTsKLQotCi0vKiogQWxsb3dzIHRoZSBh
cHBsaWNhdGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUg
Y29tcG9zaXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLwotZW51bSBFVlJTdWJtaXRGbGFncwot
ewotICAgICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVm
dCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9u
IGFwcGxpZWQuCi0gICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAotCi0gICAgICAgLy8gQXBw
IHN1Ym1pdHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9y
dGlvbiBhbHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFw
cGVhcgotICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlv
biBjb3JyZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSBy
ZXR1cm5lZCBieQotICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkg
dG8gYXBwbHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJl
Zm9yZSBjYWxsaW5nIFN1Ym1pdCgpLgotICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVh
ZHlBcHBsaWVkID0gMHgwMSwKLQotICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFz
c2VkIGluIGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5H
TCkgdGhlbiBzZXQgdGhpcyBmbGFnLgotICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4
MDIsCi0KLSAgICAgICAvLyBEbyBub3QgdXNlCi0gICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgw
NCwKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0
byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRv
d24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2Fu
VGV4dHVyZURhdGFfdAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0g
ICAgICAgVmtEZXZpY2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAq
bV9wUGh5c2ljYWxEZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAg
ICAgICBWa1F1ZXVlX1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5
SW5kZXg7Ci0gICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBt
X25TYW1wbGVDb3VudDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEy
IHRleHR1cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9w
ZW5WUl9TaHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1
Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291
cmNlOwotICAgICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAg
IHVpbnQzMl90IG1fbk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBz
eXN0ZW0gb3IgdHJhY2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJT
dGF0ZV9VbmRlZmluZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJT
dGF0ZV9TZWFyY2hpbmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwK
LSAgICAgICBWUlN0YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0g
NCwKLSAgICAgICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkg
PSA2LAotICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUg
dHlwZXMgb2YgZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1l
dGVycyBtZWFuIGZvciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewot
ICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VB
Y3RpdmF0ZWQgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZURlYWN0aXZhdGVkICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgICAgICAgICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2Vk
RGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9J
cGRDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAg
ICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAg
ICAgICBWUkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywK
LSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAg
ICAgICBWUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwK
LSAgICAgICBWUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAs
Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTEsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJF
dmVudF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBk
YXRhIGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAg
ICAgVlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
LCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAg
ICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAxLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywg
Ly8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAg
VlJFdmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwNSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRh
dGEgaXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXND
YXB0dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQ
UkVDQVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVu
dF9TY2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAg
ICAgICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVB
cHBsaWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3Mg
LSBUaGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8g
b3IgZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAg
Z290IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0No
YW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAg
ICAgVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQw
NywgLy8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMg
ICAgICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRp
b24gdG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZS
RXZlbnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50
IHRvIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9k
ZWwgdmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0
aXZhdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3Zlcmxh
eSBtYW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1
ZXN0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0
b2FzdCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VM
b2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRv
IG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxs
IGZpbmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0
aGUgZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRl
cmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdh
bWVwYWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4g
SVZST3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZl
bnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRv
IGFuIG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6
U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZl
bnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3Jl
ZW5zaG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3Qg
YnV0dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3Jl
ZW5zaG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlS
YXcgb3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNj
cmVlbnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0
byBjb21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50
IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFz
IGJlZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGlj
YXRpb24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2
ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNl
bnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVu
c2hvdCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rh
c2hib2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9h
cmQgdGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZS
RXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAg
ICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDYwMCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRl
cmFjdGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95
ZWQgICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcw
MiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA3MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3du
Ci0KLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQg
ICAgICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXND
aGFuZ2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRp
bmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAg
VlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAot
ICAgICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4
NTEsCi0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9
IDg1MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAg
ICAgPSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
ICAgICAgID0gODU1LAotCi0gICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAotCi0gICAgICAgVlJFdmVudF9NQ0ltYWdlVXBk
YXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotCi0gICAgICAg
VlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAs
Ci0gICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAxLAotCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFy
SW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAotICAgICAgIFZSRXZlbnRf
S2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8v
IFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCi0KLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKLSAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0g
MTMwMSwKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQg
ICAgICAgPSAxMzAyLAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlv
bk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUs
Ci0KLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAg
ICAgID0gMTQwMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVu
ICAgICAgICAgICAgICA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9u
ZUJvdW5kc1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCi0KLSAgICAgICBWUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAotICAgICAgIFZSRXZlbnRf
VHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9U
cmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKLSAgICAgICBWUkV2ZW50X1Ry
YWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAotICAgICAgIFZSRXZlbnRfVHJh
Y2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCi0KLSAgICAgICBWUkV2ZW50X1Bl
cmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKLSAgICAgICBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCi0gICAgICAgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCi0KLSAgICAg
ICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1
MCwKLSAgICAgICAKLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGV2ZW50cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFZSRXZlbnRfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKLSAgICAgICBWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKLX07Ci0KLQotLyoq
IExldmVsIG9mIEhtZCBhY3Rpdml0eSAqLwotZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAotewot
ICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAotICAgICAgIGtfRURl
dmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb24gPSAxLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNl
ckludGVyYWN0aW9uX1RpbWVvdXQgPSAyLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxf
U3RhbmRieSA9IDMsCi19OwotCi0KLS8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJ
RHMgKi8KLWVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAg
ICAgICAgICAgICAgICAgPSAwLAotICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAg
ICAgPSAxLAotICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMiwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAz
LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAotICAg
ICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKLSAgICAgICBrX0VCdXR0b25f
QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAotICAgICAgIAotICAgICAg
IGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAotCi0gICAgICAga19FQnV0dG9uX0F4
aXMwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCi0gICAgICAga19FQnV0dG9uX0F4
aXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCi0gICAgICAga19FQnV0dG9uX0F4
aXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCi0gICAgICAga19FQnV0dG9uX0F4
aXMzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCi0gICAgICAga19FQnV0dG9uX0F4
aXM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCi0KLSAgICAgICAvLyBhbGlhc2Vz
IGZvciB3ZWxsIGtub3duIGNvbnRyb2xsZXJzCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91
Y2hwYWQgICAgICAgPSBrX0VCdXR0b25fQXhpczAsCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJf
VHJpZ2dlciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAotCi0gICAgICAga19FQnV0dG9uX01h
eCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY0Ci19OwotCi1pbmxpbmUgdWludDY0X3Qg
QnV0dG9uTWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9
Ci0KLS8qKiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KLXN0cnVjdCBWUkV2
ZW50X0NvbnRyb2xsZXJfdAotewotICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9u
SWQgZW51bQotfTsKLQotCi0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBv
dmVybGF5IHNwYWNlICovCi1lbnVtIEVWUk1vdXNlQnV0dG9uCi17Ci0gICAgICAgVlJNb3VzZUJ1
dHRvbl9MZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKLSAg
ICAgICBWUk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwMiwKLSAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwNCwKLX07Ci0KLQotLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3Vz
ZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotc3RydWN0IFZSRXZlbnRfTW91c2VfdAotewot
ICAgICAgIGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVm
dCBvZiB0aGUgdGV4dHVyZSBpcyAwLDAKLSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1v
dXNlQnV0dG9uIGVudW0KLX07Ci0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwg
c2Nyb2xsIGluIG92ZXJsYXkgc3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0g
ICAgICAgZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRo
ZSBwYWQgdHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCi0g
ICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7Ci19OwotCi0vKiogd2hlbiBpbiBtb3VzZSBpbnB1
dCBtb2RlIHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVu
dHMgYXJlIG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCi0gICBpcyBvbiB0aGUgdG91Y2hw
YWQgKG9yIGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCi0qKi8KLXN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVj
dGVkIG9uIHRoZSB0b3VjaCBwYWQKLSAgICAgICBib29sIGJGaW5nZXJEb3duOwotCi0gICAgICAg
Ly8gSG93IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKLSAgICAgICBm
bG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotCi0gICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGlj
YXRlIHRoZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNp
YyBzd2lwZSBzdHVmZikKLSAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgZmxvYXQg
ZlZhbHVlWUZpcnN0OwotCi0gICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRp
bmF0ZSB3aXRob3V0IGRlYWR6b25pbmcKLSAgICAgICBmbG9hdCBmVmFsdWVYUmF3OwotICAgICAg
IGZsb2F0IGZWYWx1ZVlSYXc7Ci19OwotCi0vKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRz
LiBEZXRhaWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KLXN0cnVjdCBWUkV2
ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0gICAg
ICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19OwotCi0vKiogVXNlZCBmb3IgZXZlbnRzIGFi
b3V0IHByb2Nlc3NlcyAqLwotc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWlu
dDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8v
IEVWUlN0YXRlIGVudW0KLX07Ci0KLS8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCi1z
dHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAg
ICAgIC8vIFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAotICAgICAgIHVpbnQ2NF90IHVVc2Vy
VmFsdWU7ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKLX07Ci0K
LXN0cnVjdCBWUkV2ZW50X0lwZF90Ci17Ci0gICAgICAgZmxvYXQgaXBkTWV0ZXJzOwotfTsKLQot
c3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICB1aW50NjRfdCBtX25QcmV2aW91
c1VuaXZlcnNlOwotICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKLX07Ci0KLS8q
KiBOb3QgYWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLwotc3RydWN0IFZSRXZlbnRfUmVz
ZXJ2ZWRfdAotewotICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKLSAgICAgICB1aW50NjRfdCBy
ZXNlcnZlZDE7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAotewotICAg
ICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3QKLXsKLSAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKLX07
Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAotewotICAgICAgIHVpbnQzMl90IGhhbmRs
ZTsKLSAgICAgICB1aW50MzJfdCB0eXBlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVzczsKLX07Ci0KLXN0cnVjdCBWUkV2
ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICB1aW50MzJfdCBwaWQ7Ci0gICAgICAg
dWludDMyX3QgdW5BcmdzSGFuZGxlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVy
YVN1cmZhY2VfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci0gICAgICAgdWlu
dDMyX3QgblZpc3VhbE1vZGU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90
Ci17Ci0gICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgZW51bQotfTsKLQotc3RydWN0IFZSRXZlbnRfUHJvcGVy
dHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOwotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKLX07Ci0KLS8qKiBOT1RFISEhIElmIHlv
dSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3Mu
cHkgKi8KLXR5cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2
ZWQ7Ci0gICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2
ZW50X01vdXNlX3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlv
bl90IG5vdGlmaWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAg
ICAgIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBr
ZXlib2FyZDsKLSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBl
cm9uZV90IGNoYXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZv
cm1hbmNlVGVzdDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0
OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7Ci0gICAgICAgVlJFdmVu
dF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7Ci0gICAgICAgVlJFdmVu
dF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOwotICAgICAgIFZSRXZlbnRf
RWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOwotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3Qg
cHJvcGVydHk7Ci19IFZSRXZlbnRfRGF0YV90OwotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRo
ZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90
Ci17Ci0gICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAg
ICAgIFRyYWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9h
dCBldmVudEFnZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQg
b2YgdGhlIHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0
YV90IGRhdGE7Ci19OwotCi0KLS8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwg
KG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKLSogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgp
IGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCi0qIFRo
aXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVy
IGRpc3RvcnRpb24uIAotKgotKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxl
IGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCi0qIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3Vu
dCB3aWxsIGJlIDAuICovCi1zdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAotewotICAgICAgIGNvbnN0
IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7Ci0gICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNv
dW50OwotfTsKLQotCi1lbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsKLSAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJz
ZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAotCi0gICAgICAg
a19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKLX07Ci0KLQotLyoqIElkZW50aWZpZXMgd2hhdCBr
aW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5
cGUgCi0qIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3Bf
QXhpczBUeXBlX0ludDMyICsgbiApOwotKi8KLWVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCi17
Ci0gICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCi0gICAgICAga19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0g
MiwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdn
ZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCi19OwotCi0KLS8qKiBjb250YWlucyBpbmZvcm1hdGlv
biBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLwotc3RydWN0IFZSQ29udHJvbGxl
ckF4aXNfdAotewotICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZv
ciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRy
aWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KLSAgICAgICBmbG9hdCB5OyAvLyBSYW5n
ZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdh
eXMgMC4wIGZvciB0cmlnZ2Vycy4KLX07Ci0KLQotLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0
aGUgY29udHJvbGxlciBzdGF0ZSAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9s
bGVyU3RhdGVBeGlzQ291bnQgPSA1OwotCi0KLS8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEg
Y29udHJvbGxlciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCi1zdHJ1Y3QgVlJDb250cm9sbGVy
U3RhdGUwMDFfdAotewotICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlv
dXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFu
Z2VkIHNpbmNlIAotICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVk
IHRvIHByb2Nlc3MgaXQKLSAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKLQotICAgICAgIC8v
IGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQg
dG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzawotICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7Ci0KLSAgICAgICAvLyBBeGlzIGRh
dGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cwotICAgICAgIFZSQ29udHJvbGxl
ckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOwotfTsKLQotCi10
eXBlZGVmIFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKLQotCi0v
KiogZGV0ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9m
IHZhcmlvdXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCi1lbnVtIEVWUkNvbnRyb2xs
ZXJFdmVudE91dHB1dFR5cGUKLXsKLSAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVu
dHMgPSAwLAotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCi19Owot
Ci0KLQotLyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KLWVudW0gRUNvbGxpc2lvbkJvdW5k
c1N0eWxlCi17Ci0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCi0g
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCi0gICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVf
QURWQU5DRUQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAotCi0gICAgICAg
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVAotfTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGlj
YXRpb24gdG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3Np
dG9yICovCi1zdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKLXsKLSAgICAgICB1aW50
MzJfdCBzaXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCi0gICAgICAg
Ym9vbCBjdXJ2ZWQsIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFs
cGhhOwotICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOwotICAg
ICAgIGZsb2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKLSAgICAgICBIbWRNYXRy
aXg0NF90IHRyYW5zZm9ybTsKLX07Ci0KLS8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZS
IG92ZXJsYXkgKi8KLXR5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Ci0KLXN0YXRp
YyBjb25zdCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOwot
Ci0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLwotZW51bSBF
VlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0gICAgICAgVlJPdmVybGF5RXJy
b3JfVW5rbm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAgIFZST3Zl
cmxheUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAg
IFZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEy
LAotICAgICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAg
ICA9IDEzLCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUg
bWF4aW11bSBudW1iZXIgYWxyZWFkeSBleGlzdAotICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25n
VmlzaWJpbGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCi0gICAgICAgVlJPdmVybGF5RXJyb3Jf
S2V5VG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAg
ICAgICAgICAgICA9IDE4LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2
aWNlICAgICAgICAgICAgICA9IDE5LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJh
bWV0ZXIgICAgICAgICAgICAgICAgICAgICA9IDIwLAotICAgICAgIFZST3ZlcmxheUVycm9yX1Ro
dW1ibmFpbENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAotICAgICAgIFZST3ZlcmxheUVycm9y
X0FycmF5VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAotICAgICAgIFZST3Zlcmxh
eUVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAotICAgICAgIFZS
T3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKLSAg
ICAgICBWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAg
PSAyNSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAg
ICAgICAgPSAyNiwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQ
cmltaXRpdmVzICAgICAgID0gMjksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSAgICAgICAgICAgICAgICAgICAgID0gMzAsCi19OwotCi0vKiogZW51bSB2YWx1ZXMgdG8g
cGFzcyBpbiB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdp
bGwgCi0qIGRyYXcgYSAzRCBzY2VuZS4gKi8KLWVudW0gRVZSQXBwbGljYXRpb25UeXBlCi17Ci0g
ICAgICAgVlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVy
IGtpbmQgb2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRy
aWVzIAotICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAg
Ly8gQXBwbGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAotICAgICAgIFZSQXBwbGljYXRp
b25fT3ZlcmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0
cyB3aXRoIG92ZXJsYXlzCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAg
ICAgLy8gQXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFs
cmVhZHkgcnVubmluZywgYW5kIHNob3VsZCBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBp
ZiBldmVyeXRoaW5nIGVsc2UgcXVpdHMuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0g
NCwgICAgICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVy
cy4gVGhlIGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRl
cmZhY2VzIChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFy
ZHdhcmUuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNl
cnZlZCBmb3IgdnJtb25pdG9yCi0gICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0g
NiwvLyBSZXNlcnZlZCBmb3IgU3RlYW0KLQotICAgICAgIFZSQXBwbGljYXRpb25fTWF4Ci19Owot
Ci0KLS8qKiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KLWVudW0gRVZSRmlybXdhcmVFcnJv
cgotewotICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKLSAgICAgICBWUkZpcm13YXJl
RXJyb3JfU3VjY2VzcyA9IDEsCi0gICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfTsK
LQotCi0vKiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KLWVudW0gRVZSTm90aWZp
Y2F0aW9uRXJyb3IKLXsKLSAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAg
IFZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAx
MDMsCi19OwotCi0KLS8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCi0KLS8v
IFBsZWFzZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9w
ZXIudmFsdmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhl
bHAKLWVudW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9
IDAsCi0gICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCi0KLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90
Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCi0gICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEw
NywKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTA4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5
Tm90V3JpdGFibGUgICAgICAgPSAxMTMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZv
SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAotICAgICAgIFZSSW5pdEVycm9y
X0luaXRfUmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NSwgLy8gVXNlZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAg
ID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4g
VGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTIwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9T
ZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAotICAgICAg
IFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAg
ICAgICAgICAgICAgICAgICAgID0gMTI1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90
Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAotICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0g
MTI5LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAg
ICAgICAgICAgID0gMTMwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9X
YXRjaGRvZ0FwcHMgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2Fi
bGVkSW5TZXR0aW5ncyA9IDEzMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
Tm90Rm91bmQgICAgICAgICAgICAgID0gMTMzLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJE
YXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgID0gMTM0LAotCi0gICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MSwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAg
ICAgID0gMjAyLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMywKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9m
RGF0ZSAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZElu
VXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAotICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAotICAgICAgIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCi0gICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAotICAg
ICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAg
ICAgPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKLQotICAgICAg
IFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKLSAg
ICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0g
MzAxLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAg
PSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAg
ID0gMzAzLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICA9IDMwNCwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCi0gICAgICAgVlJJbml0RXJyb3Jf
SVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAotICAgICAgIFZSSW5p
dEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNDAwLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFI
YXJkd2FyZVJlcXVpcmVkICAgICAgID0gNDAxLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKLSAgICAgICBWUkluaXRFcnJv
cl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKLSAgICAg
ICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQw
NCwKLQotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRv
T2N1bHVzUnVudGltZSA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTAxLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
UmVxdWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAg
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9
IDExMDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJl
YWRGaXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEw
OCwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dl
dFVzZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDEx
MTAsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFB
ZGRyZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJ
bml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1l
bnVtIEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0g
ICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0
LAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0g
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAw
LAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAg
ID0gMTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAg
ICAgICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
RnJhbWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9P
dXRPZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRy
YWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywK
LSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9
IDEwOCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAg
ICAgICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4
dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dl
dEdMVGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFy
ZWRUZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9Ob0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhl
IGNhbWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAg
ICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAg
ICAgICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVn
aW9uIHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFu
Z2VzIHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRp
c3RvcnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52
YWxpZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCBy
ZWdpb25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWlu
dDY0X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FN
RVJBX0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0
IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAg
ICB1aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0g
ICAgICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVz
Ci10eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVp
bnQzMl90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjaygg
cG9wICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwK
LSNpZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJf
SU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVm
aW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5k
aWYKLQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8
IGRlZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9J
TlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQotI2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vs
c2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmlu
ZWQoIF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5l
IFZSX0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBf
SU5DTFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4K
LSMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFU
VFIgKSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNk
ZWZpbmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAi
OyIgKQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQot
I2RlZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkK
LSNkZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiAp
Ci0jZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9D
TEFOR19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAj
UEFSQU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJS
QVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIg
IjsiICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19B
VFRSKCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZS
X0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NP
VU5URVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09V
VF9TVFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6
IiAjQ09VTlRFUiAiOyIgKQotCi0vLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCi0jaWZuZGVmIF9W
UlRSQUNLRURDQU1FUkFUWVBFU19ICi0jZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAot
Ci1uYW1lc3BhY2UgdnIKLXsKLQotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCi0gICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFs
aWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCi0gICAgICAg
Ly8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3
aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCi0gICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJz
aW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMg
c2V0IHRvCi0gICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBh
Y2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgotICAgICAgIC8vIFRoZSA2NC1i
aXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBh
Y2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkK
LSNlbHNlCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLSNlbmRpZgotCi1lbnVtIEVD
YW1lcmFWaWRlb1N0cmVhbUZvcm1hdAotewotICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAs
Ci0gICAgICAgQ1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBl
ciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBi
aXRzIHBlciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAg
Ly8gMjQgYml0cyBwZXIgcGl4ZWwKLSAgICAgICBDVlNfTUFYX0ZPUk1BVFMKLX07Ci0KLWVudW0g
RUNhbWVyYUNvbXBhdGliaWxpdHlNb2RlCi17Ci0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JV
TEtfREVGQVVMVCA9IDAsCi0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwK
LSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAotICAgICAgIENBTUVSQV9D
T01QQVRfTU9ERV9CVUxLXzhLX0RNQSwKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUy
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180OEZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180MkZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQw
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT18zMEZQUywKLSAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUwot
fTsKLQotI2lmZGVmIF9NU0NfVkVSCi0jZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkg
X19kZWNsc3BlYyggYWxpZ24oIHggKSApCi0jZWxzZQotI2RlZmluZSBWUl9DQU1FUkFfREVDTF9B
TElHTiggeCApIC8vCi0jZW5kaWYKLQotI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9I
QU5ETEVTICAgICAgIDQKLQotVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZV90Ci17Ci0gICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1f
blN0cmVhbUZvcm1hdDsKLQotICAgICAgIHVpbnQzMl90IG1fbldpZHRoOwotICAgICAgIHVpbnQz
Ml90IG1fbkhlaWdodDsKLQotICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZv
cm1hdCwgd2lkdGgsIGhlaWdodAotCi0gICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAw
IHdoZW4gc3RyZWFtIHN0YXJ0cy4KLQotICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hp
Y2ggYnVmZmVyIHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAotICAgICAgIHVpbnQzMl90IG1fbkJ1
ZmZlckNvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRv
dGFsIG51bWJlciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKLQotICAgICAgIHVpbnQzMl90IG1fbkV4
cG9zdXJlVGltZTsKLQotICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3Rh
bXAgcGVyIGRyaXZlciBjZW50cmljIHRpbWUgYmFzZQotICAgICAgIHVpbnQzMl90IG1fbklTUFJl
ZmVyZW5jZVRpbWVTdGFtcDsKLSAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKLQotICAg
ICAgIHVpbnQzMl90IG1fbkNhbVN5bmNFdmVudHM7Ci0gICAgICAgdWludDMyX3QgbV9uSVNQU3lu
Y0V2ZW50czsKLQotICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7Ci0KLSAg
ICAgICBkb3VibGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25k
cy4KLSAgICAgICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOwotCi0gICAgICAgZG91Ymxl
IG1fZmxGcmFtZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4g
VVNCIHRpbWUsIHZpYSBBdXhFdmVudAotICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGlt
ZV9TZXJ2ZXJSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0
aGUgc2VydmVyCi0gICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJz
b2x1dGU7ICAgICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgotICAgICAg
IGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAg
IC8vIEF0IHRoZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2Vk
L2NhcHR1cmVkLgotCi0gICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7Ci0KLSAgICAg
ICBUcmFja2VkRGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAg
Ly8gU3VwcGxpZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCi0K
LSAgICAgICB1aW50NjRfdCBtX3BJbWFnZURhdGE7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCAp
Ci0KLX0KLQotI2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICi0vLyBpdnJzZXR0aW5n
cy5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKLSAgICAgICAgICAg
ICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCi0gICAgICAgICAgICAgIFZSU2V0dGlu
Z3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9S
ZWFkRmFpbGVkID0gMywKLSAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZh
aWxlZCA9IDQsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNO
b0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9l
cyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3Qg
YmVlbiBzZXQKLSAgICAgICB9OwotCi0gICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEg
c2V0dGluZ3Mga2V5Ci0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5n
c0tleUxlbmd0aCA9IDEyODsKLQotICAgICAgIGNsYXNzIElWUlNldHRpbmdzCi0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0
aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKLQot
ICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3Jj
ZSBvciBzZXR0aW5ncyBkaXJ0eSkKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJv
b2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkg
PSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpw
Y2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBj
aFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZs
VmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRp
bmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIFVz
ZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVm
YXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQotICAg
ICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGly
ZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIi
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQz
MiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBj
aFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVT
ZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUlu
U2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NL
ZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgIH07
Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7Ci0KLSAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gc3RlYW12ciBrZXlzCi0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3Rl
YW12ciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Jl
cXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERy
aXZlciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Zv
cmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVn
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQ
cm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJl
bmFibGVEaXN0b3J0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQz
MiA9ICJkaXNwbGF5RGVidWdZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0g
ImJhY2tncm91bmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9t
ZVByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcg
PSAiZ3JpZENvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNo
b3dTdGFnZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RN
b2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlk
VmlkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGly
ZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAi
dXNpbmdTcGVha2VycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNG
b3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0
YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNz
ZXMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5k
ZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVw
cm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wg
PSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VS
ZXByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2lu
ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1
bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJz
aG93TWlycm9yVmlldyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25p
dG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJv
bUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZy
b21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBz
RnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFw
cCA9ICJlbmFibGVIb21lQXBwIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0
SG9tZUFwcCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFn
ZVRpbWVTZWMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5
cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0
aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJp
Z3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMy
ID0gImRpc2FtYmlndWF0aW9uZGVidWciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJh
c2VzdGF0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0
aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKLQotICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvLyBudWxsIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAi
c2VyaWFsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9
ICJ3aW5kb3dZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
V2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lk
dGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1Rv
UGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9
ICJkaXNwbGF5RnJlcXVlbmN5IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7Ci0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fs
d2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0g
Ik1pbmltaXplVG9UcmF5IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RU
eXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9O
b3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBrZXlib2FyZCBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlv
bnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAi
T2Zmc2V0TGVmdFgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5
Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNt
b290aGluZyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gcGVy
ZiBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rp
b24gPSAicGVyZmNoZWNrIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3
YXJuSW5ITUQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9O
b3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1Rp
bWluZ1N0b3JlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZf
U2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZU
ZXN0RGF0YSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29s
bGlzaW9uIGJvdW5kcyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0NlbnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJv
dW5kc1BsYXlTcGFjZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFk
ZURpc3RhbmNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxp
c2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
UiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfQ29sb3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFCX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9J
bnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJv
YXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNp
b25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXci
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0Nv
bG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQz
MiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91
bmRzQ29sb3JHYW1tYUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFB
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNT
dHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvblBsYXliYWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWly
cm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvZmZQbGF5YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7
Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdh
aW4gPSAidml2ZUhETUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwb3dlciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9s
bGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGlt
ZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkYXNoYm9hcmQga2V5cwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVE
YXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2Rl
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBtb2RlbCBza2lu
IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9T
ZWN0aW9uID0gIm1vZGVsc2tpbnMiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJp
dmVyXzxuYW1lPiBzZWN0aW9uCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXNlcnZlcnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAotbmFtZXNwYWNlIHZyCi17Ci0KLQotc3Ry
dWN0IERyaXZlclBvc2VRdWF0ZXJuaW9uX3QKLXsKLSAgICAgICBkb3VibGUgdywgeCwgeSwgejsK
LX07Ci0KLXN0cnVjdCBEcml2ZXJQb3NlX3QKLXsKLSAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0
aGlzIHBvc2UsIGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCi0g
ICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBt
YWRlIGJ5IHRoZSBkcml2ZXIuCi0gICAgICAgICovCi0gICAgICAgZG91YmxlIHBvc2VUaW1lT2Zm
c2V0OwotCi0gICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJp
dmVyCi0gICAgICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVy
ZW50Ci0gICAgICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwg
eisgYmFjay4KLSAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNr
aW5nIHRoZSAiaGVhZCIgcG9zaXRpb24sCi0gICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJu
YWwgSU1VIG9yIGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCi0gICAgICAgICog
VGhlIGZvbGxvd2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmll
bnRhdGlvbnMKLSAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQg
c3BhY2UsCi0gICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2Fs
IGJvZHkgc3BhY2UuIAotICAgICAgICAqCi0gICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZl
ciBwb3NlIHN0YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKLSAgICAgICAg
KiBzbyB3ZSBjYW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRv
Ci0gICAgICAgICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFy
IGFjY2VsZXJhdGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAotICAgICAgICAqIGFuZCBp
cyBpbnN0ZWFkIGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2
ZWxvY2l0eS4KLSAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVy
YXRpb24gdmFsdWVzLCB3aGljaCBhcmUgYWxzbwotICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhl
IGZpbHRlcmluZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZl
bC4KLSAgICAgICAgKi8KLSAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2
ZXJSb3RhdGlvbjsKLSAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25b
IDMgXTsKLQotICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRp
b247Ci0gICAgICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKLQot
ICAgICAgIC8qIFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICov
Ci0gICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4g
ZHJpdmVyIHdvcmxkIHNwYWNlCi0gICAgICAgKiArWzBdICh4KSBpcyByaWdodAotICAgICAgICog
K1sxXSAoeSkgaXMgdXAKLSAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKLSAgICAgICAqLwot
ICAgICAgIGRvdWJsZSB2ZWNQb3NpdGlvblsgMyBdOwotCi0gICAgICAgLyogVmVsb2NpdHkgb2Yg
dGhlIHBvc2UgaW4gbWV0ZXJzL3NlY29uZCAqLwotICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsg
MyBdOwotCi0gICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNv
bmQgKi8KLSAgICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07Ci0KLSAgICAgICAvKiBP
cmllbnRhdGlvbiBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICov
Ci0gICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247Ci0KLSAgICAgICAvKiBBbmd1
bGFyIHZlbG9jaXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCi0gICAgICAgKiByZXByZXNl
bnRhdGlvbi4gVGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKLSAgICAgICAqIHJvdGF0aW9u
IGFuZCB0aGUgbWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKLSAgICAgICAqIHRoYXQgYXhp
cyBpbiByYWRpYW5zL3NlY29uZC4gKi8KLSAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5
WyAzIF07Ci0KLSAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBh
eGlzLWFuZ2xlIAotICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhl
IGFuZ2xlIG9mCi0gICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5n
bGUgYXJvdW5kCi0gICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KLSAg
ICAgICBkb3VibGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOwotCi0gICAgICAgRVRyYWNr
aW5nUmVzdWx0IHJlc3VsdDsKLQotICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7Ci0gICAgICAgYm9v
bCB3aWxsRHJpZnRJbllhdzsKLSAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOwotICAg
ICAgIGJvb2wgZGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJh
Y2tlZCBkZXZpY2UgaW4gYSBkcml2ZXIKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCi17Ci1wdWJsaWM6Ci0K
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAv
LyBNYW5hZ2VtZW50IE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyBy
ZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCi0gICAgICAgKiBj
YWxsZWQgYmVmb3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQg
cHJvY2Vzc29yIHVzZSBieSB0aGUKLSAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVy
IG9iamVjdCBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVk
LgotICAgICAgICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1
bnRpbCBEZWFjdGl2YXRlIGlzIGNhbGxlZCwgYnV0Ci0gICAgICAgKiBzaG91bGQgbm90IGJlIHVz
ZWQgYWZ0ZXIgdGhhdCBwb2ludC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3Rp
dmF0ZSggdWludDMyX3QgdW5PYmplY3RJZCApID0gMDsKLQotICAgICAgIC8qKiBUaGlzIGlzIGNh
bGxlZCB3aGVuIFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcg
dGhlIGFjdGl2ZSBkaXNwbGF5Ci0gICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0
aXZlIGRpc3BsYXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQotICAg
ICAgICogYW5kIHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKLQotICAgICAgIC8qKiBIYW5kbGVz
IGEgcmVxdWVzdCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRi
eSBtb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLwotICAgICAg
IHZpcnR1YWwgdm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmVxdWVzdHMg
YSBjb21wb25lbnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBm
dW5jdGlvbmFsaXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAotICAgICAgICogaWYg
dGhlIHJlcXVlc3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25l
bnROYW1lQW5kVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFk
ZSB0aGlzIGRlYnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1
ZXN0cyBpcyBlbnRpcmVseQotICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVu
dCB0byBmaWd1cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9u
c2VzIHRoYXQKLSAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZm
ZXIgc2hvdWxkIGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCi0gICAgICAgdmly
dHVhbCB2b2lkIERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNo
UmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
VHJhY2tpbmcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Ci19Owot
Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNp
b24gPSAiSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKLQotfQotLy8gaXZyZGlzcGxh
eWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5
IGNvbXBvbmVudCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQotICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29t
cG9uZW50Ci0gICAgICAgewotICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gRGlzcGxh
eSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3
aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCi0gICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNr
dG9wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlz
IHJlYWwgYW5kIG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgSXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBTdWdnZXN0ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQg
dGhlIGRpc3RvcnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQz
Ml90ICpwbkhlaWdodCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3Bv
cnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRp
b24gaW50byAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3Bv
cnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAq
cG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBU
aGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRy
aXggaW4gY2FzZSB5b3VyCi0gICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpw
ZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZv
ciB0aGUgc3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KLSAg
ICAgICAgICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAx
LDEgaW4gdGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24o
IEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7Ci0KLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJ
VlJEaXNwbGF5Q29tcG9uZW50XzAwMiI7Ci0KLX0KLQotLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNv
bXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50
IGlzIHVzZWQgZm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkg
b24gdGhlaXIgb3duCi0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93
aW5nIHRoZSBWUiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBh
cmUgeW91IGRvbid0Ci0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxl
bWVudCB0aGlzIGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0
TW9kZUNvbXBvbmVudAotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8g
RGlyZWN0IG1vZGUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMg
Y29tcG9zaXRvciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNp
bmcgdGhpcyBtZXRob2QuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2Fw
VGV4dHVyZVNldCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1
bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBT
aGFyZWRUZXh0dXJlSGFuZGxlcyApWyAzIF0gKSB7fQotCi0gICAgICAgICAgICAgIC8qKiBVc2Vk
IHRvIHRleHR1cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9u
ZSBvZiB0aGUgc2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVu
dGlyZSBzZXQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1
cmVTZXQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9
Ci0KLSAgICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3Ig
YSBnaXZlbiBwcm9jZXNzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFs
bFN3YXBUZXh0dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQotCi0gICAgICAgICAgICAgIC8q
KiBBZnRlciBQcmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4
IHRvIHVzZSBmb3IgcmVuZGVyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVk
VGV4dHVyZUhhbmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQotCi0g
ICAgICAgICAgICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJh
bWUuICBPbmUgc2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJl
IGNyZWF0ZWQKLSAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQg
c2hvdWxkIGJlIGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxh
eWVycyBoYXZlIGJlZW4gc3VibWl0dGVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U3VibWl0TGF5ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRs
ZXNbIDIgXSwgY29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29u
c3QgdnI6OkhtZE1hdHJpeDM0X3QgKnBQb3NlICkge30KLQotICAgICAgICAgICAgICAvKiogU3Vi
bWl0cyBxdWV1ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgUHJlc2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9
Ci0KLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAw
MiI7Ci0KLX0KLQotLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsK
LQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAg
ICAgIC8vIFB1cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2
aWNlLgotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDb250cm9sbGVyQ29tcG9uZW50Ci0gICAgICAgewotICAgICAgIHB1Ymxp
YzoKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICAgICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCi0gICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBw
cm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3Qg
dW5BeGlzSWQsIHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKLQot
ICAgICAgIH07Ci0KLQotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJD
b21wb25lbnRfVmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7Ci0KLX0KLS8v
IGl2cmNhbWVyYWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIGNsYXNz
IElDYW1lcmFWaWRlb1NpbmtDYWxsYmFjawotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOwot
ICAgICAgIH07Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRl
dmljZQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDYW1lcmFDb21wb25lbnQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgot
ICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAgICAgICAgLy8gQ2FtZXJhIE1ldGhvZHMKLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDYW1lcmFGcmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZp
ZGVvU3RyZWFtRm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVx
dWlyZW1lbnRzKCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVC
dWZmZXJEYXRhU2l6ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVy
YUZyYW1lQnVmZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVm
ZmVycywgdWludDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7Ci0gICAgICAgICAgICAg
IHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7Ci0gICAgICAgICAgICAgIHZp
cnR1YWwgdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZv
cm1hdCgpID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpw
YlBhdXNlZCwgZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJh
bWUoKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1G
cmFtZSggY29uc3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVu
YWJsZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0
IGZsSW5wdXRVLCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxP
dXRwdXRWICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVj
dGlvbiggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxa
TmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVS
YXRlLCBpbnQgblNlbnNvckZyYW1lUmF0ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIFNldENhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxi
YWNrICpwQ2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBHZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmls
aXR5TW9kZSAqcENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0
aWJpbGl0eU1vZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVp
bnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJf
dCAqcENlbnRlciApID0gMDsKLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KklWUkNhbWVyYUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOwot
fQotLy8gaXRyYWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7Ci1zdHJ1Y3QgVHJhY2tlZERldmljZURy
aXZlckluZm9fdDsKLXN0cnVjdCBEcml2ZXJQb3NlX3Q7Ci10eXBlZGVmIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgRHJpdmVySGFuZGxlX3Q7Ci0KLS8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92
aWRlZCBieSB2cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKLSogdGhlIHN5
c3RlbSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2Vz
IG11c3QKLSogbm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2
aWNlIGJlY2F1c2UgdGhvc2UgdmFsdWVzCi0qIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdp
dGggdGhlIGRldmljZSdzIGluZGV4LiAqLwotY2xhc3MgSVZSRHJpdmVyQ29udGV4dAotewotcHVi
bGljOgotICAgICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUg
aW50ZXJmYWNlIHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwK
LSAgICAgICAqIG91dCB0aGUgZXJyb3IuICovCi0gICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5l
cmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHBy
b3BlcnR5IGNvbnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCi0gICAgICAgdmlydHVh
bCBEcml2ZXJIYW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Ci19OwotCi0KLS8qKiBUaGlz
IGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJl
IGxvYWRlZCBpbiB2cnNlcnZlci5leGUgKi8KLWNsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJv
dmlkZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhp
cyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KLSAg
ICAgICAqIElmIEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05v
bmUgdGhlIGRyaXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KLSAgICAgICAqCi0gICAgICAgKiBw
RHJpdmVySG9zdCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50
ZXIgdG8gYSBJU2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKLSAgICAgICAqCi0gICAgICAgKiBw
Y2hVc2VyRHJpdmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9y
eSB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCi0gICAgICAgKiAgICAgICBjb25m
aWcgZmlsZXMuCi0gICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBh
dGggb2YgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgotICAgICAgICovCi0gICAg
ICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNv
bnRleHQgKSA9IDA7Ci0KLSAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVm
b3JlIGl0IGlzIHVubG9hZGVkICovCi0gICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7
Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VT
ZXJ2ZXJEcml2ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KLSAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogQWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxv
b3Agb2YgdGhlIHNlcnZlci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7
Ci0KLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBk
cml2ZXIgd2FudHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBTaG91bGRCbG9ja1N0YW5kYnlNb2RlKCkgPSAwOwotCi0gICAgICAgLyoqIENhbGxlZCB3aGVu
IHRoZSBzeXN0ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBz
d2l0Y2ggaXRzZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKLSAgICAgICAqIHN0
YXRlIGl0IGhhcy4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOwot
Ci0gICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1v
ZGUuIFRoZSBkcml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bwotICAgICAgIGZ1bGwg
b3BlcmF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7Ci0K
LX07Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJf
VmVyc2lvbiA9ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7Ci0KLQotCi0KLS8q
KiBUaGlzIGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3
aWxsIGJlIGxvYWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KLWNsYXNzIElWUldhdGNoZG9nUHJvdmlk
ZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRj
aGRvZyBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZl
ckNvbnRleHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOwotCi0gICAgICAgLyoqIGNsZWFucyB1cCB0
aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwg
dm9pZCBDbGVhbnVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9n
UHJvdmlkZXJfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7Ci0KLX0KLS8vIGl2
cnByb3BlcnRpZXMuaAotI2luY2x1ZGUgPHN0cmluZz4KLQotbmFtZXNwYWNlIHZyCi17Ci0KLSAg
ICAgICBlbnVtIEVQcm9wZXJ0eVdyaXRlVHlwZQotICAgICAgIHsKLSAgICAgICAgICAgICAgUHJv
cGVydHlXcml0ZV9TZXQgPSAwLAotICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0g
MSwKLSAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKLSAgICAgICB9Owot
Ci0gICAgICAgc3RydWN0IFByb3BlcnR5V3JpdGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotICAgICAgICAgICAgICBFUHJvcGVydHlXcml0
ZVR5cGUgd3JpdGVUeXBlOwotICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNl
dEVycm9yOwotICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKLSAgICAgICAgICAgICAgdWlu
dDMyX3QgdW5CdWZmZXJTaXplOwotICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRh
ZzsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKLSAgICAgICB9
OwotCi0gICAgICAgc3RydWN0IFByb3BlcnR5UmVhZF90Ci0gICAgICAgewotICAgICAgICAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Ci0gICAgICAgICAgICAgIHZvaWQgKnB2QnVm
ZmVyOwotICAgICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7Ci0gICAgICAgICAgICAg
IFByb3BlcnR5VHlwZVRhZ190IHVuVGFnOwotICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVp
cmVkQnVmZmVyU2l6ZTsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJv
cjsKLSAgICAgICB9OwotCi0KLWNsYXNzIElWUlByb3BlcnRpZXMKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBSZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJv
cGVydHlSZWFkQmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCi0gICAgICAg
dmlydHVhbCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0
Y2gsIHVpbnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIFdyaXRl
cyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJh
dGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQz
Ml90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIHJldHVybnMgYSBzdHJp
bmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRo
ZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZQotICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFs
dWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hh
ciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0
cmFja2VkIGRldmljZSBpbmRleCAqLwotICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCBUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZSApID0gMDsKLQotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJ
VlJQcm9wZXJ0aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOwotCi1jbGFzcyBDVlJQ
cm9wZXJ0eUhlbHBlcnMKLXsKLXB1YmxpYzoKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElW
UlByb3BlcnRpZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMg
KSB7fQotCi0gICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZp
Y2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90
IG1hdGNoLAotICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICBib29sIEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENv
bnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0gICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0g
ICAgICAgaW50MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsKLSAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9
IDBMICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0
cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lz
ZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nhcnkg
dG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAgICAgKiBudWxs
LiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgPSAwTCApOwotCi0KLSAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9w
ZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlz
IG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAu
IE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBu
ZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAg
ICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRTdHJp
bmdQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3Ig
PSAwTCApOwotCi0gICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6
OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5
IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJu
IGFuIGVtcHR5IHN0cmluZy4gKi8KLSAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0
eSggdnI6OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICk7Ci0KLSAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIFNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOwot
ICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApOwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFu
ZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7Ci0g
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIHVpbnQ2NF90IHVsTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc3RyaW5n
IHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVl
bnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAgICBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
Y29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5
cGVkIHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNl
cXVlbnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9p
ZCAqcHZOZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190
IHVuVGFnICk7Ci0KLSAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBh
IHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQg
cmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvciBTZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNl
dCBmb3IgdGhlIHByb3BlcnR5LiAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFz
ZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgKTsKLQotICAgICAgIC8qIFR1cm5zIGEgZGV2aWNl
IGluZGV4IGludG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLwotICAgICAgIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFj
a2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQotCi1wcml2YXRlOgot
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlcigg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVs
dCwgUHJvcGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7Ci0KLSAgICAgICBJVlJQcm9wZXJ0aWVz
ICptX3BQcm9wZXJ0aWVzOwotfTsKLQotCi1pbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxw
ZXJzOjpHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAq
cHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRh
ZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIFByb3BlcnR5UmVh
ZF90IGJhdGNoOwotICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOwotICAgICAgIGJhdGNoLnB2QnVm
ZmVyID0gcHZCdWZmZXI7Ci0gICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXpl
OwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVy
SGFuZGxlLCAmYmF0Y2gsIDEgKTsKLQotICAgICAgIGlmICggcEVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7Ci0gICAgICAgfQotCi0gICAgICAg
aWYgKCBwdW5UYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVu
VGFnOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6
ZTsKLX0KLQotCi0vKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1
ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJv
cGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENW
UlByb3BlcnR5SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZO
ZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFn
ICkKLXsKLSAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7Ci0gICAgICAgYmF0Y2gud3JpdGVU
eXBlID0gUHJvcGVydHlXcml0ZV9TZXQ7Ci0gICAgICAgYmF0Y2gucHJvcCA9IHByb3A7Ci0gICAg
ICAgYmF0Y2gucHZCdWZmZXIgPSBwdk5ld1ZhbHVlOwotICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6
ZSA9IHVuTmV3VmFsdWVTaXplOwotICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7Ci0KLSAgICAg
ICBtX3BQcm9wZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAm
YmF0Y2gsIDEgKTsKLQotICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Ci19Ci0KLQotLyoqIFJl
dHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlk
IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwK
LSogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJl
ciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRy
YWlsaW5nCi0qIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191
bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLwotaW5saW5lIHVpbnQzMl90IENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJf
T1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKLXsKLSAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1
blRhZzsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7Ci0gICAgICAgdWludDMy
X3QgdW5SZXF1aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBjaFZhbHVlLCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7Ci0gICAgICAgaWYgKCB1
blRhZyAhPSBrX3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25n
RGF0YVR5cGU7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwRXJyb3IgKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgKnBFcnJvciA9IGVycm9yOwotICAgICAgIH0KLQotICAgICAgIGlmICggZXJy
b3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAo
IHBjaFZhbHVlICYmIHVuQnVmZmVyU2l6ZSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICpwY2hWYWx1ZSA9ICdcMCc7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0K
LSAgICAgICByZXR1cm4gdW5SZXF1aXJlZFNpemU7Ci19Ci0KLQotLyoqIFJldHVybnMgYSBzdHJp
bmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3Qg
dmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24g
d2lsbAotKiByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLwotaW5saW5lIHN0ZDo6c3RyaW5nIENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2
cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKLXsKLSAgICAgICBjaGFyIGJ1Zlsx
MDI0XTsKLSAgICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKLSAgICAgICB1aW50
MzJfdCB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVy
LCBwcm9wLCBidWYsIHNpemVvZihidWYpLCAmZXJyICk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBz
UmVzdWx0OwotCi0gICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAg
ICAgewotICAgICAgICAgICAgICBzUmVzdWx0ID0gYnVmOwotICAgICAgIH0KLSAgICAgICBlbHNl
IGlmICggZXJyID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5d
OwotICAgICAgICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHko
IHVsQ29udGFpbmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIg
KTsKLSAgICAgICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKLSAgICAgICAgICAgICAgZGVs
ZXRlW10gcGNoQnVmZmVyOwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAg
ICAgewotICAgICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKLSAgICAgICB9Ci0KLSAgICAgICBy
ZXR1cm4gc1Jlc3VsdDsKLX0KLQotCi0vKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgY29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKQotewotICAgICAgIGlmICggIXBjaE5ld1ZhbHVl
ICkKLSAgICAgICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247Ci0K
LSAgICAgICAvLyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmlu
Zy5oCi0gICAgICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOwotICAgICAgIHdo
aWxlICggKnBjaEN1cnIgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGNoQ3VycisrOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHBy
b3AsICh2b2lkICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVl
KSArIDEsIGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyApOwotfQotCi0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1pbmxpbmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQ
cm9wZXJ0eVR5cGVUYWdfdCB1blR5cGVUYWcgKQotewotICAgICAgIFQgYlZhbHVlOwotICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7Ci0gICAgICAgUHJvcGVydHlUeXBlVGFnX3Qg
dW5SZWFkVGFnOwotICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwg
JmJWYWx1ZSwgc2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOwotICAgICAg
IGlmICggdW5SZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlOwotICAgICAgIH07Ci0KLSAgICAgICBpZiAoIHBFcnJvciApCi0gICAgICAgICAg
ICAgICpwRXJyb3IgPSBlRXJyb3I7Ci0gICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3Bf
U3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7Ci0gICAg
ICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7
Ci0gICAgICAgfQotfQotCi0KLWlubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9v
bFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9y
ICkKLXsKLSAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Ci19Ci0K
LQotaW5saW5lIGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCi17Ci0gICAgICAg
cmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBFcnJvciwgMC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgaW50MzJf
dCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9w
ZXJ0eUhlbHBlcjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwg
a191bkludDMyUHJvcGVydHlUYWcgKTsKLX0KLQotaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5
SGVscGVyczo6R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1
aW50NjRfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQ
cm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3Bl
cnR5SGVscGVyczo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1Zh
bHVlICkKLXsKLSAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCAmYk5ld1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFn
ICk7Ci19Ci0KLWlubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJz
OjpTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCi17
Ci0gICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZO
ZXdWYWx1ZSwgc2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKLX0K
LQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldElu
dDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQotewotICAg
ICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFs
dWUsIHNpemVvZiggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Ci19Ci0KLWlu
bGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKLXsKLSAgICAg
ICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1
ZSwgc2l6ZW9mKCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOwotfQotCi0v
KiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBw
cm9wZXJ0eSAqLwotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBl
cnM6OlNldFByb3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIGVFcnJvciApCi17Ci0gICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOwotICAgICAgIGJh
dGNoLndyaXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7Ci0gICAgICAgYmF0Y2gucHJv
cCA9IHByb3A7Ci0gICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOwotCi0gICAgICAgbV9w
UHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNo
LCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwotfQotCi0vKiogQ2xlYXJzIGFu
eSB2YWx1ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KLWlubGluZSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AgKQotewotICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKLSAgICAgICBiYXRj
aC53cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOwotICAgICAgIGJhdGNoLnByb3AgPSBw
cm9wOwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRh
aW5lckhhbmRsZSwgJmJhdGNoLCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwot
Ci19Ci0KLX0KLQotCi0vLyBpdnJkcml2ZXJsb2cuaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUkRyaXZlckxvZwotewotcHVibGljOgotICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2Fn
ZSB0byB0aGUgbG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOwotfTsK
LQotCi1zdGF0aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVy
TG9nXzAwMSI7Ci0KLX0KLS8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAotbmFtZXNwYWNlIHZyCi17
Ci0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOwotc3RydWN0IFRyYWNrZWREZXZp
Y2VEcml2ZXJJbmZvX3Q7Ci1zdHJ1Y3QgRHJpdmVyUG9zZV90OwotCi0vKiogVGhpcyBpbnRlcmZh
Y2UgaXMgcHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkg
Ci0qIHRoZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhl
c2UgY2hhbmdlcyBtdXN0Ci0qIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mg
b2YgdGhlIGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcwotKiBhcmUgcGVybWFuZW50bHkgYXNz
b2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KLWNsYXNzIElWUlNlcnZlckRyaXZl
ckhvc3QKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEg
dHJhY2tlZCBkZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0
cnVlCi0gICAgICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNl
LiBJZiBpdCByZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgotICAgICAgICogaGFzIG9j
Y3VycmVkIGFuZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJp
YWxOdW1iZXIsIEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmlj
ZVNlcnZlckRyaXZlciAqcERyaXZlciApID0gMDsKLQotICAgICAgIC8qKiBOb3RpZmllcyB0aGUg
c2VydmVyIHRoYXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9z
ZVN0cnVjdFNpemUgKSA9IDA7Ci0KLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0
IHZzeW5jIGhhcyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRl
dmljZS4gVGhpcyBpcwotICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUg
SE1EIGNsYXNzLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5
bmNUaW1lT2Zmc2V0U2Vjb25kcyApID0gMDsKLQotICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2Vy
dmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0
dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0gICAgICAg
LyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8K
LSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMy
X3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1l
T2Zmc2V0ICkgPSAwOwotCi0gICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUg
YnV0dG9uIHdhcyBwcmVzc2VkICovCi0gICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VC
dXR0b25Ub3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9u
SWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7Ci0KLSAgICAgICAvKiogbm90aWZpZXMg
dGhlIHNlcnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLwotICAgICAgIHZpcnR1
YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2
aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7
Ci0KLSAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlz
IGNoYW5nZWQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVk
KCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJD
b250cm9sbGVyQXhpc190ICYgYXhpc1N0YXRlICkgPSAwOwotCi0gICAgICAgLyoqIE5vdGlmaWVz
IHRoZSBzZXJ2ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRl
dmljZSAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQz
Ml90IHVuV2hpY2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsK
LQotICAgICAgIC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5k
b3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9FbmQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMy
X3QgdW5XaGljaERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZl
bnRfRGF0YV90ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNFeGl0aW5nKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBh
bmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRo
ZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRob2Qg
cmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9m
IHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZl
bnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLX07Ci0K
LXN0YXRpYyBjb25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2Vy
dmVyRHJpdmVySG9zdF8wMDQiOwotCi19Ci0vLyBpdnJoaWRkZW5hcmVhLmgKLW5hbWVzcGFjZSB2
cgotewotCi1jbGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycwotewotcHVibGljOgotICAgICAgIENW
UkhpZGRlbkFyZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJv
cGVydGllcyggcFByb3BlcnRpZXMgKSB7fQotCi0gICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBh
cmVhIG1lc2ggaW4gYSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRIaWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRW
ZWN0b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKLQotICAgICAgIC8qKiBy
ZXRyaWV2ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUg
dmVydCBjb3VudCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLwotICAgICAgIHVpbnQzMl90
IEdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEht
ZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwZUVycm9yICk7Ci0KLXByaXZhdGU6Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBHZXRQcm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5
cGUgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3Bl
cnR5KShQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAy
KSArIChpbnQpZUV5ZSk7Ci0gICAgICAgfQotCi0gICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJv
cGVydGllczsKLX07Ci0KLQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5B
cmVhSGVscGVyczo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5
cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKLXsK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVF
eWUsIHR5cGUgKTsKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFBy
b3BlcnRpZXMgKTsKLSAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BI
ZWxwZXJzLlRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmlj
ZUluZGV4X0htZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZl
cnRDb3VudCwga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOwotfQotCi0KLWlubGluZSB1aW50
MzJfdCBDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVI
aWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVu
VmVydENvdW50LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQotewotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSAp
OwotICAgICAgIENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyAp
OwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7Ci0gICAgICAgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UYWc7Ci0gICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BI
ZWxwZXJzLkdldFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNv
bnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXpl
b2YoIEhtZFZlY3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKLSAg
ICAgICBpZiAoIHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHJvcEVy
cm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKLSAgICAgICAgICAgICAgdW5CeXRlc05l
ZWRlZCA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwZUVycm9yID0gcHJvcEVycm9yOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB1bkJ5dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKLX0KLQotfQotLy8g
aXZyd2F0Y2hkb2dob3N0LmgKLW5hbWVzcGFjZSB2cgotewotCi0vKiogVGhpcyBpbnRlcmZhY2Ug
aXMgcHJvdmlkZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5
dGhpbmcgd2FrZSB1cCAqLwotY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Ci17Ci1wdWJsaWM6Ci0gICAg
ICAgLyoqIENsaWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3
aGVuIHRoZXkgaGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxk
Ci0gICAgICAgKiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCi0gICAgICAgdmlydHVhbCB2b2lk
IFdhdGNoZG9nV2FrZVVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNo
ZG9nSG9zdF9WZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOwotCi19OwotCi0KLQotCi0K
LQotCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
SW50ZXJmYWNlVmVyc2lvbnNbXSA9Ci0gICAgICAgewotICAgICAgICAgICAgICBJVlJTZXR0aW5n
c19WZXJzaW9uLAotICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJz
aW9uLAotICAgICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCi0gICAgICAg
ICAgICAgIElWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAg
ICAgSVZSQ29udHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJDYW1l
cmFDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQ
cm92aWRlcl9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNp
b24sCi0gICAgICAgICAgICAgIG51bGxwdHIKLSAgICAgICB9OwotCi0gICAgICAgaW5saW5lIElW
UkRyaXZlckNvbnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgc3RhdGljIElWUkRyaXZlckNvbnRleHQgKnBIb3N0OwotICAgICAgICAgICAgICByZXR1cm4g
cEhvc3Q7Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKLSAg
ICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4
dCgpIDogbV9wcm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVs
bHB0cikgeyBDbGVhcigpOyB9Ci0gICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKLQotICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOwotICAgICAgICAgICAgICBFVlJJbml0
RXJyb3IgSW5pdFdhdGNoZG9nKCk7Ci0KLSAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0
dGluZ3MoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
U2V0dGluZ3MgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0
KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
UlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSUHJvcGVydGll
cyAqVlJQcm9wZXJ0aWVzUmF3KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGll
cyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVz
X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3Bl
cnR5SGVscGVycyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFy
ZWFIZWxwZXJzKCBtX3BWUlByb3BlcnRpZXMgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOwot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFy
ZWEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNS
YXcoKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsK
LSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZS
U2VydmVyRHJpdmVySG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
IGlmICggbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElW
UlNlcnZlckRyaXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFj
ZSggSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJI
b3N0OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpW
UldhdGNoZG9nSG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlm
ICggbV9wVlJXYXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hv
c3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dI
b3N0X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKLSAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJMb2cgPSAoSVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRl
cmZhY2UoIElWUkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBW
UkRyaXZlckhhbmRsZSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBWUkRyaXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAg
ICAgICAgICAgICAgKm1fcFZSU2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUlByb3BlcnRpZXMg
ICAgICAgICAgICAgICptX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAgIENWUlByb3BlcnR5
SGVscGVycyAgICAgICBtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAgICAgICAgQ1ZSSGlkZGVu
QXJlYUhlbHBlcnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKLSAgICAgICAgICAgICAgSVZS
U2VydmVyRHJpdmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OwotICAgICAgICAg
ICAgICBJVlJXYXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKLSAg
ICAgICAgICAgICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7Ci0g
ICAgICAgfTsKLQotICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCi0gICAgICAgewotICAgICAgICAgICAg
ICBzdGF0aWMgdm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVv
Ziggdm9pZCAqICldOwotICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4
dCAqKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgotICAgICAgIH0KLQotICAg
ICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVz
UmF3KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgp
LlZSUHJvcGVydGllc1JhdygpOyB9Ci0gICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAq
VlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
U2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9Ci0gICAgICAgaW5saW5lIENW
UkhpZGRlbkFyZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRy
aXZlckxvZygpOyB9Ci0gICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExU
WVBFIFZSU2VydmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNl
cnZlckRyaXZlckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQotICAgICAgIGlubGlu
ZSBJVlJXYXRjaGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0
KCk7IH0KLSAgICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJI
YW5kbGUoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0
KCkuVlJEcml2ZXJIYW5kbGUoKTsgfQotICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJD
b250ZXh0OjpDbGVhcigpCi0gICAgICAgewotICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0g
bnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKLSAgICAg
ICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAg
bV9wVlJEcml2ZXJMb2cgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9z
dCA9IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3Bl
blZSRHJpdmVyQ29udGV4dDo6SW5pdFNlcnZlcigpCi0gICAgICAgewotICAgICAgICAgICAgICBD
bGVhcigpOwotICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQotICAgICAg
ICAgICAgICAgICAgICAgfHwgIVZSU2V0dGluZ3MoKQotICAgICAgICAgICAgICAgICAgICAgfHwg
IVZSUHJvcGVydGllcygpCi0gICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VO
b3RGb3VuZDsKLSAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Ci0gICAgICAg
fQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5p
dFdhdGNoZG9nKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENsZWFyKCk7Ci0gICAgICAgICAg
ICAgIGlmICggIVZSV2F0Y2hkb2dIb3N0KCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNl
dHRpbmdzKCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2
ZXJDb250ZXh0ICpwQ29udGV4dCApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkRyaXZlckNv
bnRleHQoKSA9IHBDb250ZXh0OwotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxf
TW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRy
aXZlckNvbnRleHQgKnBDb250ZXh0ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSRHJpdmVy
Q29udGV4dCgpID0gcENvbnRleHQ7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7Ci0gICAgICAgfQot
Ci0gICAgICAgaW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOwotICAgICAgICAgICAgICBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKLSAgICAg
ICB9Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29u
dGV4dCApIFwKLSAgICAgICAgICAgICAgICAgICAgIHsgXAotICAgICAgICAgICAgICAgICAgICAg
dnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBD
b250ZXh0ICk7IFwKLSAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5p
dEVycm9yX05vbmUgKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJv
cjsgXAotICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgI2RlZmluZSBWUl9DTEVBTlVQ
X1NFUlZFUl9EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2
ZXJDb250ZXh0KCk7Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NP
TlRFWFQoIHBDb250ZXh0ICkgXAotICAgICAgICAgICAgICAgICAgICAgeyBcCi0gICAgICAgICAg
ICAgICAgICAgICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2
ZXJDb250ZXh0KCBwQ29udGV4dCApOyBcCi0gICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9y
ICE9IHZyOjpWUkluaXRFcnJvcl9Ob25lICkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBlRXJyb3I7IFwKLSAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICNkZWZp
bmUgVlJfQ0xFQU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAg
dnI6OkNsZWFudXBEcml2ZXJDb250ZXh0KCk7Ci19Ci0vLyBFbmQKLQotI2VuZGlmIC8vIF9PUEVO
VlJfRFJJVkVSX0FQSQotCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9w
YXRjaGVzL1BhdGhfV3JpdGVCaW5hcnlGaWxlLWZpeC1yZXR1cm4tY29uZGl0aW9uLnBhdGNoIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4
LXJldHVybi1jb25kaXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2
NjA4YTYyZDZjYmRhOGQyNWExNGIwNTM2YWJkOTZjYmNjNzFlMTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Bh
dGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2gKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL3ZyY29tbW9uL3Bh
dGh0b29sc19wdWJsaWMuY3BwIGIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCi1p
bmRleCA3ZjdjN2U4Li5kZTdhNzJhIDEwMDY0NAotLS0tIGEvc3JjL3ZyY29tbW9uL3BhdGh0b29s
c19wdWJsaWMuY3BwCi0rKysgYi9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKLUBA
IC02NTUsNyArNjU1LDcgQEAgYm9vbCBQYXRoX1dyaXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0
cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLAotICAgICAgICAgICAgICAg
ZmNsb3NlKGYpOwotICAgICAgICB9Ci0gCi0tICAgICAgIHJldHVybiB3cml0dGVuID0gblNpemUg
PyB0cnVlIDogZmFsc2U7Ci0rICAgICAgIHJldHVybiB3cml0dGVuID09IG5TaXplID8gdHJ1ZSA6
IGZhbHNlOwotIH0KLSAKLSBzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckZpbGVuYW1lICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9wYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNoIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZjlhN2M5Y2M4MzExNWRjYmM4OTY4NDMyZmE0ZjgzMTg0YWQxY2IuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBA
QAotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IGQ3
MDI1YzBkYjRiLi5kMTNhN2Y5MGNmOCAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysg
Yi9DTWFrZUxpc3RzLnR4dAotQEAgLTEsMTQgKzEsOCBAQAotICMgU2V0IHRoZSBtaW5pbXVtIHJl
cXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KLSBjbWFrZV9taW5pbXVt
X3JlcXVpcmVkKFZFUlNJT04gMi44KQotIAotLSMgU2V0IHByb2plY3QgbmFtZS4KLS1wcm9qZWN0
KE9wZW5WUlNESykKLS0KLSAjIFNldHVwIHNvbWUgb3B0aW9ucy4KLSBvcHRpb24oQlVJTERfU0hB
UkVEICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKLS1vcHRpb24o
QlVJTERfRlJBTUVXT1JLICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgYW4gYXBwbGUgRnJhbWV3b3Jr
IiBPRkYpCi0tb3B0aW9uKEJVSUxEX1VOSVZFUlNBTCAiQnVpbGRzIHRoZSBzaGFyZWQgb3IgZnJh
bWV3b3JrIGFzIGEgdW5pdmVyc2FsIChmYXQsIDMyLSAmIDY0LWJpdCkgYmluYXJ5IiBPTikKLS1v
cHRpb24oQlVJTERfT1NYX0kzODYgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29yayBhcyBh
IDMyLWJpdCBiaW5hcnksIGV2ZW4gb24gYSA2NC1iaXQgcGxhdGZvcm0iIE9GRikKLSBvcHRpb24o
VVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQotIG9wdGlv
bihVU0VfQ1VTVE9NX0xJQkNYWCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLSAKLUBAIC0z
NywyMSArMzEsOSBAQCBlbHNlaWYoQVBQTEUpCi0gICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRD
SEVTICIuKkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioi
KQotICAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikKLSAgICAgYWRkX2RlZmluaXRpb25zKC1E
T1NYIC1EUE9TSVgpCi0tICAgIGlmKEJVSUxEX1VOSVZFUlNBTCkKLS0gICAgICBzZXQoQ01BS0Vf
T1NYX0FSQ0hJVEVDVFVSRVMgImkzODY7eDg2XzY0IikKLS0gICAgZW5kaWYoKQotLSAgICBpZihC
VUlMRF9PU1hfSTM4NikKLS0gICAgICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikKLS0gICAgICBz
ZXQoQ01BS0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODYiKQotLSAgICBlbmRpZigpCi0gICBlbmRp
ZigpCi0gZW5kaWYoKQotIAotLSMgU2V0IG91dHB1dCBmb2xkZXIgZm9yIHN0YXRpYyBhbmQgc2hh
cmVkIGxpYnJhcmllcwotLXNldChDTUFLRV9MSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFL
RV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNl
dChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4v
JHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNldChDTUFLRV9SVU5USU1FX09V
VFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7
UFJPQ0VTU09SX0FSQ0h9KQotLQotICMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KLSBpZihDTUFL
RV9DT01QSUxFUl9JU19HTlVDQyBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5n
IikKLSAgICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRu
J3QgYmUgdmlzaWJsZQotZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBiL3NyYy9DTWFr
ZUxpc3RzLnR4dAotaW5kZXggZTU4YzllMWMwMzkuLjA5NWY4MWU1NjJiIDEwMDY0NAotLS0tIGEv
c3JjL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC0xLDggKzEs
MTAgQEAKLS0jIFByb2plY3QgbmFtZS4KLS1wcm9qZWN0KG9wZW52cl9hcGkpCi0rc2V0KE9QRU5W
Ul9TT1VSQ0VfRElSICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
KQotIAotIHNldCggTElCTkFNRSAib3BlbnZyX2FwaSIgKQotIAotK3NldChFWENFUFRJT05fRkxB
R1MgIi1mZXhjZXB0aW9ucyIpCi0rYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkK
LSsKLSAjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMgZmlsZXMuCi0gaWYoQVBQTEUp
Ci0gICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCi1AQCAtMjIsNyArMjQsNyBAQCBlbHNlaWYo
V0lOMzIpCi0gZW5kaWYoKQotIAotICMgQWRkIGluY2x1ZGUgZm9sZGVycy4KLS1pbmNsdWRlX2Rp
cmVjdG9yaWVzKCR7Q01BS0VfU09VUkNFX0RJUn0vc3JjICR7Q01BS0VfU09VUkNFX0RJUn0vaGVh
ZGVycyAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLStpbmNsdWRlX2RpcmVjdG9y
aWVzKCR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYyAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJz
ICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLSAKLSBpZihVU0VfQ1VTVE9NX0xJ
QkNYWCkKLSAgICAgICAgbGlua19kaXJlY3RvcmllcygKLUBAIC02NSwyOCArNjcsMzUgQEAgZWxz
ZWlmKEJVSUxEX0ZSQU1FV09SSykKLSAgICAgICAgc2V0KCBMSUJOQU1FICJPcGVuVlIiICkKLSAg
ICAgICAgYWRkX2xpYnJhcnkoICR7TElCTkFNRX0gCi0gICAgICAgICAgICAgU0hBUkVEICR7U09V
UkNFX0ZJTEVTfQotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVu
dnIuaAotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBp
LmNzCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
anNvbgotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2Fw
aS5oCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2
ZXIuaAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3MK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNv
bgotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGku
aAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCi0gICAgICAgICkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9Q
RVJUSUVTCi0gICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQotICAgICAgICAgICAgICAgRlJB
TUVXT1JLX1ZFUlNJT04gQQotICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElG
SUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLS0gICAgICAgICAgICAgIE1B
Q09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZvLnBs
aXN0Ci0rICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtPUEVOVlJf
U09VUkNFX0RJUn0vc3JjL0luZm8ucGxpc3QKLSAgICAgICAgICAgICAgICMgImN1cnJlbnQgdmVy
c2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAg
ICAgICAgVkVSU0lPTiAxLjAuNgotICAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJz
aW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCi0gICAgICAgICAg
ICAgICBTT1ZFUlNJT04gMS4wLjAKLS0gICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7Q01B
S0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRl
cnMvb3BlbnZyX2FwaS5jczske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uOyR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7Q01BS0VfU09V
UkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0rICAgICAgICAgICAgICBQVUJMSUNf
SEVBREVSICIke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52ci5oOyR7T1BFTlZSX1NP
VVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5jczske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFk
ZXJzL29wZW52cl9hcGkuanNvbjske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9j
YXBpLmg7JHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0gICAg
ICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAgICAgICkKLSBlbHNlKCkKLSAgICAg
ICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VSQ0VfRklMRVN9KQotIGVuZGlm
KCkKLSAKLStpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotKyAgICBXRUJLSVRfQUREX1RB
UkdFVF9DWFhfRkxBR1MoJHtMSUJOQU1FfSAtV25vLWltcGxpY2l0LWZhbGx0aHJvdWdoCi0rICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW5rbm93bi1wcmFn
bWFzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW51
c2VkLXBhcmFtZXRlcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtV25vLXVudXNlZC12YXJpYWJsZSkKLStlbmRpZigpCi0rCi0gaWYoVVNFX0NVU1RPTV9MSUJD
WFgpCi0gICAgICAgIHNldChFWFRSQV9MSUJTICR7RVhUUkFfTElCU30gYysrIGMrK2FiaSkKLSBl
bmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0NDBkMzZlMDk5OGY0OTQ2MzUxNmM5NzdkZWE4
MmY2OWRhYzlmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTA1ICswLDAgQEAKLXNldChPUEVOVlJfU09VUkNFX0RJUiAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52cikKLQotc2V0KCBMSUJOQU1FICJvcGVudnJf
YXBpIiApCi0KLXNldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCi1hZGRfZGVmaW5p
dGlvbnMoJHtFWENFUFRJT05fRkxBR1N9KQotCi0jIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3Bl
Y2lmaWMgZmlsZXMuCi1pZihBUFBMRSkKLSAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQotICBp
ZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJEYXJ3aW4iKQotICAgIHNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcyh2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCB2cmNvbW1vbi92cnBh
dGhyZWdpc3RyeV9wdWJsaWMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiLXggb2JqZWN0
aXZlLWMrKyIpCi0gIGVuZGlmKCkKLSAgaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09S
SykKLSAgICBmaW5kX2xpYnJhcnkoRk9VTkRBVElPTl9GUkFNRVdPUksgRm91bmRhdGlvbikKLSAg
ICBtYXJrX2FzX2FkdmFuY2VkKEZPVU5EQVRJT05fRlJBTUVXT1JLKQotICAgIHNldChFWFRSQV9M
SUJTICR7RVhUUkFfTElCU30gJHtGT1VOREFUSU9OX0ZSQU1FV09SS30pCi0gIGVuZGlmKEJVSUxE
X1NIQVJFRCBPUiBCVUlMRF9GUkFNRVdPUkspCi1lbHNlaWYoV0lOMzIpCi0gIGlmKENNQUtFX1NJ
WkVPRl9WT0lEX1AgRVFVQUwgOCkKLSAgICBhZGRfZGVmaW5pdGlvbnMoIC1EV0lONjQgKQotICAg
IHNldCggTElCTkFNRSAib3BlbnZyX2FwaTY0IiApCi0gIGVuZGlmKCkKLWVuZGlmKCkKLQotIyBB
ZGQgaW5jbHVkZSBmb2xkZXJzLgotaW5jbHVkZV9kaXJlY3Rvcmllcygke09QRU5WUl9TT1VSQ0Vf
RElSfS9zcmMgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycyAke09QRU5WUl9TT1VSQ0VfRElS
fS9zcmMvdnJjb21tb24pCi0KLWlmKFVTRV9DVVNUT01fTElCQ1hYKQotICAgICAgIGxpbmtfZGly
ZWN0b3JpZXMoCi0gICAgICAgICAgICAgICR7TElCQ1hYX0xJQl9ESVJ9Ci0gICAgICAgKQotZW5k
aWYoKQotCi0jIFNldCB0aGUgc291cmNlIGdyb3VwIGFuZCBmaWxlcy4KLXNldChDT1JFX0ZJTEVT
Ci0gICAgICAgb3BlbnZyX2FwaV9wdWJsaWMuY3BwCi0gICAgICAganNvbmNwcC5jcHAKLSkKLXNl
dChWUkNPTU1PTl9GSUxFUwotICAgICAgIHZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKLSAg
ICAgICB2cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vcGF0
aHRvb2xzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMu
Y3BwCi0gICAgICAgdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1v
bi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmNwcAotKQotCi1zZXQoU09VUkNFX0ZJTEVTCi0gICAgICAgJHtDT1JFX0ZJTEVTfQotICAg
ICAgICR7VlJDT01NT05fRklMRVN9Ci0pCi0KLXNvdXJjZV9ncm91cCgiU3JjIiBGSUxFUwotICAg
ICAgICR7Q09SRV9GSUxFU30KLSkKLQotc291cmNlX2dyb3VwKCJWUkNvbW1vbiIgRklMRVMKLSAg
ICAgICAke1ZSQ09NTU9OX0ZJTEVTfQotKQotCi0jIEJ1aWxkIHRoZSBsaWJyYXJ5LgotaWYoQlVJ
TERfU0hBUkVEKQotICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0gU0hBUkVEICR7U09VUkNF
X0ZJTEVTfSkKLWVsc2VpZihCVUlMRF9GUkFNRVdPUkspCi0gICAgICAgc2V0KCBMSUJOQU1FICJP
cGVuVlIiICkKLSAgICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKLSAgICAgICAgICAgIFNI
QVJFRCAke1NPVVJDRV9GSUxFU30KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hl
YWRlcnMvb3BlbnZyLmgKLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2FwaS5jcwotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfYXBpLmpzb24KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2NhcGkuaAotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfZHJpdmVyLmgKLSAgICAgICApCi0gICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9w
ZW5WUiBQUk9QRVJUSUVTCi0gICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCi0gICAgICAgICAg
ICAgIEZSQU1FV09SS19WRVJTSU9OIEEKLSAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
REVOVElGSUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLSAgICAgICAgICAg
ICAgTUFDT1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy9J
bmZvLnBsaXN0Ci0gICAgICAgICAgICAgICMgImN1cnJlbnQgdmVyc2lvbiIgaW4gc2VtYW50aWMg
Zm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42
Ci0gICAgICAgICAgICAgICMgImNvbXBhdGliaWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9y
bWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBTT1ZFUlNJT04gMS4wLjAK
LSAgICAgICAgICAgICAgUFVCTElDX0hFQURFUiAiJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVy
cy9vcGVudnIuaDske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3M7JHtP
UEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtPUEVOVlJfU09VUkNF
X0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2RyaXZlci5oIgotICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAg
ICAgKQotZWxzZSgpCi0gICAgICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VS
Q0VfRklMRVN9KQotZW5kaWYoKQotCi1pZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotICAg
IFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUygke0xJQk5BTUV9IC1Xbm8taW1wbGljaXQtZmFs
bHRocm91Z2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25v
LXVua25vd24tcHJhZ21hcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC1Xbm8tdW51c2VkLXBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC1Xbm8tdW51c2VkLXZhcmlhYmxlKQotZW5kaWYoKQotCi1pZihVU0VfQ1VT
VE9NX0xJQkNYWCkKLSAgICAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9IGMrKyBjKyth
YmkpCi1lbmRpZigpCi0KLXRhcmdldF9saW5rX2xpYnJhcmllcygke0xJQk5BTUV9ICR7RVhUUkFf
TElCU30pCi0KLWluc3RhbGwoVEFSR0VUUyAke0xJQk5BTUV9IERFU1RJTkFUSU9OIGxpYikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTVlNTY5ODA4N2YwOTM5MTQ1OGJiMTk3YWQ4ZDgxN2VlZGViODI2OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBV
QkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20v
RFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0
PgotICAgICAgIDxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0gICAgICAgPHN0cmluZz5j
b20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+Ci0gICAgICAgPGtleT5D
RkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotICAgICAgIDxzdHJpbmc+Ni4wPC9z
dHJpbmc+Ci0gICAgICAgPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KLSAgICAgICA8c3RyaW5nPk9w
ZW5WUjwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotICAg
ICAgIDxzdHJpbmc+Rk1XSzwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmc8L2tleT4KLSAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgotICAgICAgIDxrZXk+
Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0gICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4KLTwvZGlj
dD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JF
QURNRSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MjZjNThkYTc5ZmI5NGUwMmRjZmVjZDI2YTVlNTUyZDlhYTU4YWMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotVGhpcyBpcyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBPcGVuVlIgQVBJIGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkgd2hpY2ggY29ubmVjdHMKLU9wZW5WUiBhcHBsaWNhdGlvbnMgdG8gdGhlIFN0
ZWFtVlIgcnVudGltZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgdmVyc2lvbgotb2YgdGhlIE9w
ZW5WUiBpbnRlcmZhY2UgdGhleSB3ZXJlIGNvbXBpbGVkIGFnYWluc3QuCi0KLVRoZSBjbGllbnQg
YmluZGluZyBsaWJyYXJ5IC0gb3BlbnZyX2FwaS5kbGwgb24gV2luZG93cywgb3BlbnZyX2FwaS5z
byBvbgotTGludXgsIGFuZCBvcGVudnJfYXBpLmR5bGliIG9yIE9wZW5WUi5mcmFtZXdvcmsgb24g
bWFjT1MgLSBrbm93cyBob3cgdG8gZmluZAotYW5kIHJlYWQgdGhlIFN0ZWFtVlIgcnVudGltZSBp
bnN0YWxsYXRpb24gaW5mb3JtYXRpb24gd2hpY2ggYWxsb3dzIGl0IHRvCi1maW5kIGFuZCBkeW5h
bWljYWxseSBjb25uZWN0IHRvIHRoZSBpbnN0YWxsZWQgcnVudGltZS4gSW4gY29tYmluYXRpb24g
d2l0aCB0aGUKLWludGVyZmFjZSB2ZXJzaW9uIGlkZW50aWZpZXJzIGZyb20gL2luY2x1ZGUvb3Bl
bnZyLmggd2hpY2ggYXJlIGJha2VkCi1pbnRvIGFwcGxpY2F0aW9ucyBhdCB0aGUgdGltZSB0aGV5
IGFyZSBidWlsdCwgdGhlIE9wZW5WUiBBUEkgY2xpZW50Ci1iaW5kaW5nIGxpYnJhcnkgY2FwdHVy
ZXMgYW5kIGNvbnZleXMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSB0aGUgdmVyc2lvbgotb2YgdGhl
IE9wZW5WUiBBUEkgaW50ZXJmYWNlIGJlaGF2aW9yIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGV4cGVj
dHMuCi0KLUFwcGxpY2F0aW9ucyBjYXJyeSB3aXRoIHRoZW0gYSBwcml2YXRlL2xvY2FsIGNvcHkg
b2YgdGhlIGNsaWVudCBiaW5kaW5nCi1saWJyYXJ5IHdoZW4gdGhleSBzaGlwLCBhbmQgdGhleSBz
aG91bGQgaW5zdGFsbCBpdCBsb2NhbGx5IHRvIHRoZWlyCi1hcHBsaWNhdGlvbi4gIEFwcGxpY2F0
aW9ucyBzaG91bGQgbm90IGluc3RhbGwgdGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkKLWdsb2Jh
bGx5IG9yIGF0dGVtcHQgdG8gbGluayB0byBhIGdsb2JhbGx5IGluc3RhbGxlZCBjbGllbnQgYmlu
ZGluZyBsaWJyYXJ5LgotRG9pbmcgc28gbmVnYXRlcyBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBhYmls
aXR5IGZvciB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQotdG8gYWNjdXJhdGVseSByZWZsZWN0
IHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuVlIgQVBJIHRoYXQgdGhlIGFwcGxpY2F0aW9uCi13YXMg
YnVpbHQgYWdhaW5zdCwgYW5kIHNvIGhpbmRlcnMgY29tcGF0aWJpbGl0eSBzdXBwb3J0IGluIHRo
ZSBmYWNlIG9mCi1BUEkgY2hhbmdlcy4KLQotTW9zdCBhcHBsaWNhdGlvbnMgc2hvdWxkIHNpbXBs
eSBsaW5rIHRvIGFuZCByZWRpc3RyaWJ1dGUgd2l0aCB0aGVpciBhcHBsaWNhdGlvbgotdGhlIHBy
ZS1idWlsdCBjbGllbnQgYmluZGluZyBsaWJyYXJ5IGZvdW5kIGluIHRoZSAvYmluIGRpcmVjdG9y
eSBvZiB0aGlzCi1yZXBvc2l0b3J5LiBTb21lIHNtYWxsIG51bWJlciBvZiBhcHBsaWNhdGlvbnMg
d2hpY2ggaGF2ZSBzcGVjaWZpYyByZXF1aXJlbWVudHMKLWFyb3VuZCByZWRpc3RyaWJ1dGluZyBv
bmx5IGJpbmFyaWVzIHRoZXkgYnVpbGQgdGhlbXNlbHZlcyBzaG91bGQgYnVpbGQKLXRoZSBjbGll
bnQgbGlicmFyeSBmcm9tIHRoaXMgc291cmNlIGFuZCBlaXRoZXIgc3RhdGljYWxseSBsaW5rIGl0
IGludG8KLXRoZWlyIGFwcGxpY2F0aW9uIG9yIHJlZGlzdHJpYnV0ZSB0aGUgYmluYXJ5IHRoZXkg
YnVpbGQuCi0KLVRoaXMgaXMgYSBjbWFrZSBwcm9qZWN0LCB0byBidWlsZCBpdCB1c2UgdGhlIHZl
cnNpb24gb2YgY21ha2UgYXBwcm9wcmlhdGUKLWZvciB5b3VyIHBsYXRmb3JtLiBGb3IgZXhhbXBs
ZSwgdG8gYnVpbGQgb24gYSBQT1NJWCBzeXN0ZW0gc2ltcGx5IHBlcmZvcm0KLQotICBjZCBzcmM7
IG1rZGlyIF9idWlsZDsgY2QgX2J1aWxkOyBjbWFrZSAuLjsgbWFrZQotCi1hbmQgeW91IHdpbGwg
ZW5kIHVwIHdpdGggdGhlIHN0YXRpYyBsaWJyYXJ5IC9zcmMvYmluLzxhcmNoPi9saWJvcGVudnJf
YXBpLmEKLQotVG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeSwgcGFzcyAtREJVSUxEX1NIQVJFRD0x
IHRvIGNtYWtlLgotVG8gYnVpbGQgYXMgYSBmcmFtZXdvcmsgb24gYXBwbGUgcGxhdGZvcm1zLCBw
YXNzIC1EQlVJTERfRlJBTUVXT1JLPTEgdG8gY21ha2UuCi1UbyBzZWUgYSBjb21wbGV0ZSBsaXN0
IG9mIGNvbmZpZ3VyYWJsZSBidWlsZCBvcHRpb25zLCB1c2UgYGNtYWtlIC1MQUhgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNvcmUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MWZlMzYwZWU0YWQ1MmM4Nzk5MGMyNTE3NDZmMDFjYjg5YmJmMDA2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUkNsaWVu
dENvcmUKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIHN5c3RlbSAqLwot
ICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUg
ZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkgPSAwOwotCi0gICAg
ICAgLyoqIGNsZWFucyB1cCBldmVyeXRoaW5nIGluIHZyY2xpZW50LmRsbCBhbmQgcHJlcGFyZXMg
dGhlIERMTCB0byBiZSB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkg
PSAwOwotCi0gICAgICAgLyoqIGNoZWNrcyB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBpbnRlcmZh
Y2UvdmVyc2lvbiBpcyBzdXBwb3J0ZWQgaW4gdGhpcyB2cmNsaWVudC5kbGwgKi8KLSAgICAgICB2
aXJ0dWFsIEVWUkluaXRFcnJvciBJc0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAq
cGNoSW50ZXJmYWNlVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBSZXRyaWV2ZXMgYW55IGlu
dGVyZmFjZSBmcm9tIHZyY2xpZW50LmRsbCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2Vu
ZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoTmFtZUFuZFZlcnNpb24sIEVWUkluaXRFcnJv
ciAqcGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW55IGRyaXZl
ciBoYXMgYW4gSE1EIGF0dGFjaGVkLiBDYW4gYmUgY2FsbGVkIG91dHNpZGUgb2YgSW5pdC9DbGVh
bnVwICovCi0gICAgICAgdmlydHVhbCBib29sIEJJc0htZFByZXNlbnQoKSA9IDA7Ci0KLSAgICAg
ICAvKiogUmV0dXJucyBhbiBFbmdsaXNoIGVycm9yIHN0cmluZyBmcm9tIGluc2lkZSB2cmNsaWVu
dC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLwotICAgICAgIHZp
cnR1YWwgY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5p
dEVycm9yIGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGFuIGVycm9yIHN5bWJv
bCBmcm9tIGluc2lkZSB2cmNsaWVudC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUg
QVBJIERMTCAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJv
ciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IElWUkNsaWVudENvcmVfVmVyc2lvbiA9ICJJVlJDbGllbnRDb3JlXzAwMyI7Ci0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24t
Zm9yd2FyZHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndh
cmRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGM3ZGU5NzY0YjQyMTgyYjAx
N2Y3MGVlMDA5MzFiZjZlNDkwNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2Fy
ZHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIGZvcndhcmQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KLS8v
LyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3
YXJkcy5oIgotLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9y
IGFsbCBKc29uQ3BwIHR5cGVzLgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBMSUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8qCi1UaGUgSnNv
bkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1l
bnRhdGlvbiwgCi10ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNl
bnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCi1jb25kaXRpb25zLi4uCi0KLVRoZSBhdXRob3IgKEJh
cHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAK
LWp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNo
IGp1cmlzZGljdGlvbnMsIAotdGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJs
aWMgRG9tYWluLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVi
bGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCi0yMDEwKSwgdGhpcyBzb2Z0
d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFu
ZCBpcwotcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KS4KLQotSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBw
cm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKLXNvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0
IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCi1jb25kaXRpb25z
IG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9m
IGR1YWwgCi1QdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhl
cmUsIGFzIHRoZXkgY2hvb3NlLgotCi1UaGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2Ug
dG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlzCi1kZXNjcmliZWQg
aW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6Ci0KLSAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3Jn
L3dpa2kvTUlUX0xpY2Vuc2UKLSAgIAotVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2Ug
Zm9sbG93czoKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1Db3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0
aXN0ZSBMZXBpbGxldXIKLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24KLW9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi1maWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci1yZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKLW1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK
LWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0KLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlCi1pbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KLQotVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi1FWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLU1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi1OT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCi1CRSBMSUFC
TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4KLUFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOCi1DT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFCi1TT0ZUV0FSRS4KLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKEVORCBM
SUNFTlNFIFRFWFQpCi0KLVRoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0
aGUgR1BMIGFuZCBjb21tZXJjaWFsCi1zb2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhl
IHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCi1taW5vciBudWlzYW5jZSBvZiBiZWlu
ZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlCi1hbmQgbGljZW5z
ZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRo
ZQotUHVibGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1
c2luZyB3aGF0ZXZlcgotbGljZW5zZSB5b3UgbGlrZS4KLQotKi8KLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLSNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0jIGRl
ZmluZSBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKLS8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCi0vLy8gdG8gcHJldmVu
dCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCi0jZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9O
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi9jb25maWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05f
Q09ORklHX0hfSU5DTFVERUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8g
SWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENw
cFRMIGxpYnJhcnkuCi0vLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5l
ZCwgaW5kaWNhdGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBk
ZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNw
cHRsIHZlY3RvciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6
bWFwCi0vLy8gYXMgVmFsdWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAgMQotCi0vLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25z
IHRvIHJlcG9ydCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBU
aGUgZGVmYXVsdCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBU
SU9OCi0jZGVmaW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmlu
ZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBw
cmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRv
bWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8g
I2RlZmluZSBKU09OX0lTX0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lu
Y2x1ZGUgPGNwcHRsL2NvbmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBK
U09OX1VTRV9DUFBUTCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2RlZmluZSBKU09OX0FQSSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQp
Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxl
eHBvcnQpCi0jZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNl
bmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9y
dCkKLSNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlm
IC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2lmICFkZWZpbmVkKEpTT05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElm
IEpTT05fTk9fSU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImlu
dCIgdHlwZSBmb3IKLS8vIGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2Vy
IHN1cHBvcnQgaXMgZGlzYWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYg
ZGVmaW5lZChfTVNDX1ZFUikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZD
IDYKLSAgICAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJz
aW9uIGZyb20gX19pbnQ2NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVu
c2lnbmVkIF9faW50NjQpLgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04gMQotICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNU
TCAoaWRlbnRpZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBp
biB0aGUgZGVidWcgaW5mb3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBz
ZWVuIHdpdGggVlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAg
IC8vIHdpdGggcHJhZ21hIHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6
IDQ3ODYpCi0jICBlbmRpZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBN
U1ZDIDIwMDgKLSAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBp
cyBkZXByZWNhdGVkLgotIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9f
ZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZp
bmVkKF9NU0NfVkVSKQotCi0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQot
I2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEw
Ci0jZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49
IDIwMTAKLQotI2lmZGVmIF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9y
ZWZlcmVuY2VzKQotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYg
IC8vIGhhc19mZWF0dXJlCi0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChn
Y2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19H
WFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklN
RU5UQUwKLQotI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90
IGRlZmluZWQgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0j
ZW5kaWYKLQotI2lmZGVmIF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3Qg
Y2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAo
X19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgo
ZGVwcmVjYXRlZChtZXNzYWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19f
ID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJF
Q0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlm
ICAvLyBHTlVDIHZlcnNpb24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lm
ICFkZWZpbmVkKEpTT05DUFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVE
KG1lc3NhZ2UpCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1u
YW1lc3BhY2UgSnNvbiB7Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBV
SW50OwotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7
Ci10eXBlZGVmIHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2
NAotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8v
IEZvciBNaWNyb3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMg
bm90IHN1cHBvcnRlZAotI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwg
U3R1ZGlvCi10eXBlZGVmIF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQg
VUludDY0OwotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8v
IE90aGVyIHBsYXRmb3JtcywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IElu
dDY0OwotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBV
SW50NjQgTGFyZ2VzdFVJbnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlm
IC8vIEpTT05fQ09ORklHX0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0j
aWZuZGVmIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hf
SU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQot
Ci1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xh
c3MgU3R5bGVkV3JpdGVyOwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0
dXJlcy5oCi1jbGFzcyBGZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBp
bnQgQXJyYXlJbmRleDsKLWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQ
YXRoQXJndW1lbnQ7Ci1jbGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xh
c3MgVmFsdWVJdGVyYXRvcjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1l
c3BhY2UgSnNvbgotCi0jZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3
YXJkcy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2VuZGlmIC8vaWZuZGVmIEpTT05f
Rk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
anNvbi9qc29uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyN2Y2NWQ5ZGZhODUz
NmMzNWZmNDdkZTA4NGZlY2U3ODk4YWIxZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDIwNzcgKzAsMCBAQAotLy8vIEpzb24tY3BwIGFtYWxnYXRl
ZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgotLy8vIEl0IGlzIGlu
dGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCi0KLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLQotLyoKLVRoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29kZSwgaW5j
bHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKLXRlc3RzIGFuZCBkZW1vbnN0cmF0
aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcKLWNvbmRp
dGlvbnMuLi4KLQotVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRp
c2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAotanVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUg
c3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCi10aGlzIHNvZnR3YXJl
IGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCi0KLUluIGp1cmlzZGljdGlvbnMg
d2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcuIEdlcm1h
bnkgYXMgb2YKLTIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEw
IGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCi1yZWxlYXNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNo
IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlzIAotc29m
dHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21haW4s
IDIpIHVuZGVyIHRoZSAKLWNvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cp
LCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKLVB1YmxpYyBEb21haW4vTUlUIExpY2Vu
c2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCi0KLVRoZSBNSVQg
TGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGljZW5zZSBj
YW4gZ2V0LCBhbmQgaXMKLWRlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKLQot
ICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQotICAgCi1UaGUgZnVs
bCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgotCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLUNv
cHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotCi1QZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgotb2J0YWluaW5n
IGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KLWZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKLXJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LAotbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzCi1vZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLWluY2x1ZGVkIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotCi1USEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLUVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQKLU5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMKLUJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLUNPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKLVNPRlRXQVJF
LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0oRU5EIExJQ0VOU0UgVEVYVCkKLQotVGhlIE1JVCBsaWNlbnNl
IGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKLXNvZnR3YXJl
LCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4gd2l0aCB0
aGUKLW1pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UKLWFuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2RlLiBOb3Rl
IGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCi1QdWJsaWMgRG9tYWluICJsaWNlbnNlIiB5b3Ug
Y2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCi1saWNlbnNlIHlvdSBsaWtl
LgotCi0qLwotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBM
SUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2lmbmRlZiBKU09OX0FNQUxHQVRF
RF9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0vLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAotLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgotI2RlZmluZSBKU09OX0lTX0FN
QUxHQU1BVElPTgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIERP
IE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIpIGlzIGdlbmVyYXRlZCBieSBDTWFr
ZS4KLS8vIFJ1biBDTWFrZSBjb25maWd1cmUgc3RlcCB0byB1cGRhdGUgaXQuCi0jaWZuZGVmIEpT
T05fVkVSU0lPTl9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAot
Ci0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICIxLjYuNSIKLSMgZGVmaW5lIEpTT05D
UFBfVkVSU0lPTl9NQUpPUiAxCi0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUlOT1IgNgotIyBk
ZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDUKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9R
VUFMSUZJRVIKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhBICgoSlNPTkNQUF9WRVJTSU9O
X01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgKEpTT05DUFBf
VkVSU0lPTl9QQVRDSCA8PCA4KSkKLQotI2VuZGlmIC8vIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVE
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi92ZXJzaW9uLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25m
aWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJhcnkuCi0v
LyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRo
YXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBkZWZpbmUgSlNPTl9VU0Vf
Q1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3RvciBiYXNl
ZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6bWFwCi0vLy8gYXMgVmFs
dWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAgMQotCi0v
LyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9ydCBiYWQg
aW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVsdCBpcyB0
byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jZGVmaW5lIEpT
T05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0
aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBwcmV2ZW50IHByaXZhdGUg
aGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmlu
ZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8gI2RlZmluZSBKU09OX0lT
X0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2luY2x1ZGUgPGNwcHRsL2Nv
bmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBKU09OX1VTRV9DUFBUTCAx
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2RlZmluZSBKU09OX0FQ
SSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCi0jaWYgZGVmaW5lZChf
TVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCi0jZGVmaW5l
IEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNlbmRpZiAvLyBpZiBkZWZp
bmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKLSNkZWZpbmUgSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlmIC8vIGlmIGRlZmluZWQo
X01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lmICFkZWZpbmVkKEpT
T05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElmIEpTT05fTk9fSU5UNjQg
aXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBmb3IKLS8v
IGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQgaXMgZGlz
YWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYgZGVmaW5lZChfTVNDX1ZF
UikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKLSAgICAvLyBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20gX19pbnQ2
NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQp
LgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQotICAgIC8v
IERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRpZmllciB3
YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVidWcgaW5m
b3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGggVlM2IHdl
cmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAgIC8vIHdpdGggcHJhZ21h
IHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCi0jICBlbmRp
ZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKLSAgICAv
Ly8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVj
YXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQot
Ci0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmIGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCi0jZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49IDIwMTAKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2VzKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIGhhc19mZWF0dXJl
Ci0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIg
c2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFM
X0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2RlZmluZSBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKLQotI2VuZGlm
IC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90IGRlZmluZWQgSlNPTl9I
QVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNF
UwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0jZW5kaWYKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21l
cyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAoX19HTlVDX18gPiA0IHx8
IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQotIyAgICBkZWZpbmUgSlNP
TkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRlZChtZXNz
YWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVD
X01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkg
IF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlmICAvLyBHTlVDIHZlcnNp
b24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lmICFkZWZpbmVkKEpTT05D
UFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpCi0jZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1uYW1lc3BhY2UgSnNvbiB7
Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OwotI2lmIGRlZmlu
ZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7Ci10eXBlZGVmIHVuc2ln
bmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2NAotI2Vsc2UgICAgICAg
ICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8vIEZvciBNaWNyb3NvZnQg
VmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAot
I2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCi10eXBlZGVm
IF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OwotI2Vsc2Ug
ICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBsYXRmb3Jt
cywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwotdHlwZWRlZiB1
bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJ
bnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlmIC8vIEpTT05fQ09ORklH
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0y
MDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2Us
IG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBq
dXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBo
dHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fRk9S
V0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNv
biB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xhc3MgU3R5bGVkV3JpdGVy
OwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0dXJlcy5oCi1jbGFzcyBG
ZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsK
LWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQYXRoQXJndW1lbnQ7Ci1j
bGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xhc3MgVmFsdWVJdGVyYXRv
cjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0j
ZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
LS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQotCi0jaWZuZGVmIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAotI2RlZmluZSBD
UFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotI2luY2x1ZGUgImZvcndhcmRzLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLyoqIFxicmllZiBD
b25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KLSAqIFRoaXMgY29uZmln
dXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBXcml0ZXIK
LSAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgotICovCi1jbGFzcyBK
U09OX0FQSSBGZWF0dXJlcyB7Ci1wdWJsaWM6Ci0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9u
IHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncwotICAgKiBh
cmUgVVRGLTguCi0gICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAotICAgKiAtIFJv
b3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQotICAgKiAtIEFzc3VtZXMgVmFsdWUgc3Ry
aW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAotICAgKi8KLSAgc3RhdGljIEZlYXR1cmVzIGFsbCgp
OwotCi0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29tcGF0
aWJsZSB3aXRoIHRoZSBKU09OCi0gICAqIHNwZWNpZmljYXRpb24uCi0gICAqIC0gQ29tbWVudHMg
YXJlIGZvcmJpZGRlbi4KLSAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJh
eSBvciBhbiBvYmplY3QgdmFsdWUuCi0gICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBl
bmNvZGVkIGluIFVURi04Ci0gICAqLwotICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9kZSgpOwot
Ci0gIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpzb25Db25m
aWc6OmFsbEZlYXR1cmVzOwotICAgKi8KLSAgRmVhdHVyZXMoKTsKLQotICAvLy8gXGMgdHJ1ZSBp
ZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KLSAgYm9vbCBhbGxvd0Nv
bW1lbnRzXzsKLQotICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5
IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKLSAgLy8vIGZhbHNlLgotICBib29sIHN0
cmljdFJvb3RfOwotCi0gIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhvbGRlcnMg
YXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgotICBib29sIGFsbG93RHJvcHBlZE51bGxQ
bGFjZWhvbGRlcnNfOwotCi0gIC8vLyBcYyB0cnVlIGlmIG51bWVyaWMgb2JqZWN0IGtleSBhcmUg
YWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2UuCi0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBKc29uCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX0ZFQVRVUkVT
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1
ZGUvanNvbi92YWx1ZS5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIw
MTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgQ1BQVExfSlNP
Tl9IX0lOQ0xVREVECi0jZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAotCi0jaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSAiZm9yd2FyZHMuaCIKLSNlbmRpZiAv
LyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgPGV4Y2VwdGlvbj4KLQotI2lmbmRlZiBKU09OX1VT
RV9DUFBUTF9TTUFMTE1BUAotI2luY2x1ZGUgPG1hcD4KLSNlbHNlCi0jaW5jbHVkZSA8Y3BwdGwv
c21hbGxtYXAuaD4KLSNlbmRpZgotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0jaW5jbHVkZSA8Y3Bw
dGwvZm9yd2FyZHMuaD4KLSNlbmRpZgotCi0vLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRh
IG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KLS8vIGJlIHVz
ZWQgYnkuLi4KLSNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcpCi0jcHJhZ21hIHdhcm5pbmcocHVzaCkKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1
MSkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCi0KLS8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pLgot
ICovCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8qKiBCYXNlIGNsYXNzIGZvciBhbGwgZXhjZXB0aW9u
cyB3ZSB0aHJvdy4KLSAqCi0gKiBXZSB1c2Ugbm90aGluZyBidXQgdGhlc2UgaW50ZXJuYWxseS4g
T2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KLSAqLwotY2xhc3MgSlNPTl9BUEkgRXhj
ZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKLXB1YmxpYzoKLSAgRXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotICB+RXhjZXB0aW9uKCkgdGhyb3coKTsKLSAgY2hhciBj
b25zdCogd2hhdCgpIGNvbnN0IHRocm93KCk7Ci1wcm90ZWN0ZWQ6Ci0gIHN0ZDo6c3RyaW5nIG1z
Z187Ci19OwotCi0vKiogRXhjZXB0aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFzaWx5IGF2
b2lkLgotICoKLSAqIEUuZy4gb3V0LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9jKSwgc3Rh
Y2stb3ZlcmZsb3csIG1hbGljaW91cyBpbnB1dAotICogCi0gKiBccmVtYXJrIGRlcml2ZWQgZnJv
bSBKc29uOjpFeGNlcHRpb24KLSAqLwotY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9yIDogcHVi
bGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIFJ1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKLX07Ci0KLS8qKiBFeGNlcHRpb25zIHRocm93biBieSBKU09OX0FTU0VSVC9KU09O
X0ZBSUwgbWFjcm9zLgotICoKLSAqIFRoZXNlIGFyZSBwcmVjb25kaXRpb24tdmlvbGF0aW9ucyAo
dXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJyb3JzIChvdXIgYnVncykuCi0gKiAKLSAqIFxyZW1h
cmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgotICovCi1jbGFzcyBKU09OX0FQSSBMb2dp
Y0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIExvZ2ljRXJyb3Ioc3RkOjpz
dHJpbmcgY29uc3QmIG1zZyk7Ci19OwotCi0vLy8gdXNlZCBpbnRlcm5hbGx5Ci12b2lkIHRocm93
UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotLy8vIHVzZWQgaW50ZXJuYWxs
eQotdm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Ci0KLS8qKiBc
YnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KLSAqLwotZW51
bSBWYWx1ZVR5cGUgewotICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQotICBpbnRW
YWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCi0gIHVpbnRWYWx1ZSwgICAgIC8v
LzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQotICByZWFsVmFsdWUsICAgICAvLy88IGRvdWJsZSB2
YWx1ZQotICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQotICBib29sZWFu
VmFsdWUsICAvLy88IGJvb2wgdmFsdWUKLSAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJheSB2YWx1
ZSAob3JkZXJlZCBsaXN0KQotICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1ZSAoY29s
bGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KLX07Ci0KLWVudW0gQ29tbWVudFBsYWNlbWVu
dCB7Ci0gIGNvbW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0
aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQotICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAvLy88IGEg
Y29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQotICBjb21tZW50QWZ0
ZXIsIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkgbWFrZSBz
ZW5zZSBmb3IKLSAgLy8vIHJvb3QgdmFsdWUpCi0gIG51bWJlck9mQ29tbWVudFBsYWNlbWVudAot
fTsKLQotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgIHR5cGVkZWYgQ3BwVEw6OkFueUVu
dW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7Ci0vLyAgIHR5cGVkZWYgQ3Bw
VEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKLS8vIyBlbmRpZgot
Ci0vKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJpbmcuCi0g
KgotICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3NpZ25lbWVu
dCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCi0gKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lkIHRoZSBj
b3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCi0gKiBzdHJpbmcgb3Ig
dGhlIG1lbWJlciBuYW1lLgotICoKLSAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gKiBcY29kZQotICog
SnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gKiBKc29u
OjpWYWx1ZSBvYmplY3Q7Ci0gKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUi
KTsKLSAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gKiBcZW5kY29kZQotICovCi1jbGFzcyBKU09O
X0FQSSBTdGF0aWNTdHJpbmcgewotcHVibGljOgotICBleHBsaWNpdCBTdGF0aWNTdHJpbmcoY29u
c3QgY2hhciogY3pzdHJpbmcpIDogY19zdHJfKGN6c3RyaW5nKSB7fQotCi0gIG9wZXJhdG9yIGNv
bnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9Ci0KLSAgY29uc3QgY2hhciogY19z
dHIoKSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KLQotcHJpdmF0ZToKLSAgY29uc3QgY2hhciog
Y19zdHJfOwotfTsKLQotLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCi0gKgotICogVGhpcyBjbGFzcyBpcyBhIGRpc2Ny
aW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6Ci0gKiAtIHNpZ25l
ZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCi0gKiAtIHVu
c2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCi0gKiAtIGRvdWJsZQot
ICogLSBVVEYtOCBzdHJpbmcKLSAqIC0gYm9vbGVhbgotICogLSAnbnVsbCcKLSAqIC0gYW4gb3Jk
ZXJlZCBsaXN0IG9mIFZhbHVlCi0gKiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyAo
amF2YXNjcmlwdCBvYmplY3QpCi0gKgotICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFsdWUgaXMg
cmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZAotICogY2FuIGJlIG9idGFpbmVkIHVzaW5n
IHR5cGUoKS4KLSAqCi0gKiBWYWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVl
IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkKLSAqIG1ldGhvZHMuCi0gKiBOb24t
Y29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUg
ZWxlbWVudAotICogaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gKiBUaGUgc2VxdWVuY2Ugb2YgYW4g
I2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRpYWxpemVk
Ci0gKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFyZ2Ugb3Ig
dHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCi0gKgotICogVGhlIGdldCgpIG1ldGhvZHMgY2FuIGJl
IHVzZWQgdG8gb2J0YWluIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCi0gKiByZXF1aXJl
ZCBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgotICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJh
dGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcKLSAqIHRoZSBn
ZXRNZW1iZXJOYW1lcygpIG1ldGhvZC4KLSAqCi0gKiBcbm90ZSAjVmFsdWUgc3RyaW5nLWxlbmd0
aCBmaXQgaW4gc2l6ZV90LCBidXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KLSAqIChUaGUgcmVhc29u
IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCByYWlzZSBh
bgotICogZXhjZXB0aW9uIGlmIGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2VjdXJpdHkg
aG9sZXMgaW4geW91ciBhcHAsCi0gKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3QqIGNoZWNr
IGJvdW5kcy4gVGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKLSAqIG9mIHRoZSBjYWxsZXIuCi0g
Ki8KLWNsYXNzIEpTT05fQVBJIFZhbHVlIHsKLSAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JC
YXNlOwotcHVibGljOgotICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBNZW1iZXJz
OwotICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7Ci0gIHR5cGVkZWYgVmFsdWVDb25z
dEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotICB0eXBlZGVmIEpzb246OlVJbnQgVUludDsKLSAg
dHlwZWRlZiBKc29uOjpJbnQgSW50OwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHR5
cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKLSAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICB0eXBlZGVmIEpzb246Okxhcmdl
c3RJbnQgTGFyZ2VzdEludDsKLSAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0VUlu
dDsKLSAgdHlwZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7Ci0KLSAgc3RhdGljIGNv
bnN0IFZhbHVlJiBudWxsOyAgLy8vPCBXZSByZWdyZXQgdGhpcyByZWZlcmVuY2UgdG8gYSBnbG9i
YWwgaW5zdGFuY2U7IHByZWZlciB0aGUgc2ltcGxlciBWYWx1ZSgpLgotICBzdGF0aWMgY29uc3Qg
VmFsdWUmIG51bGxSZWY7ICAvLy88IGp1c3QgYSBrbHVkZ2UgZm9yIGJpbmFyeS1jb21wYXRpYmls
aXR5OyBzYW1lIGFzIG51bGwKLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhh
dCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBMYXJnZXN0
SW50IG1pbkxhcmdlc3RJbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRo
YXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFyZ2Vz
dEludCBtYXhMYXJnZXN0SW50OwotICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVl
IHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFy
Z2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7Ci0KLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludCB2YWx1
ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgc3RhdGljIGNvbnN0IElu
dCBtaW5JbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50OwotICAvLy8g
TWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7Ci0KLSNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQotICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBj
YW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQ2NCBtaW5J
bnQ2NDsKLSAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJl
IHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgSW50NjQgbWF4SW50NjQ7
Ci0gIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0
b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi1wcml2YXRlOgotI2lmbmRlZiBK
U09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gIGNsYXNzIENaU3RyaW5nIHsKLSAg
cHVibGljOgotICAgIGVudW0gRHVwbGljYXRpb25Qb2xpY3kgewotICAgICAgbm9EdXBsaWNhdGlv
biA9IDAsCi0gICAgICBkdXBsaWNhdGUsCi0gICAgICBkdXBsaWNhdGVPbkNvcHkKLSAgICB9Owot
ICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOwotICAgIENaU3RyaW5nKGNoYXIgY29uc3Qq
IHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7Ci0gICAg
Q1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKLSNpZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUwotICAgIENaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpOwotI2VuZGlmCi0gICAgfkNa
U3RyaW5nKCk7Ci0gICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyBvdGhlcik7Ci0gICAg
Ym9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBib29sIG9w
ZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBBcnJheUluZGV4IGlu
ZGV4KCkgY29uc3Q7Ci0gICAgLy9jb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0OyAvLy88IFxkZXBy
ZWNhdGVkCi0gICAgY2hhciBjb25zdCogZGF0YSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OwotICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLQotICBwcml2YXRl
OgotICAgIHZvaWQgc3dhcChDWlN0cmluZyYgb3RoZXIpOwotCi0gICAgc3RydWN0IFN0cmluZ1N0
b3JhZ2UgewotICAgICAgdW5zaWduZWQgcG9saWN5XzogMjsKLSAgICAgIHVuc2lnbmVkIGxlbmd0
aF86IDMwOyAvLyAxR0IgbWF4Ci0gICAgfTsKLQotICAgIGNoYXIgY29uc3QqIGNzdHJfOyAgLy8g
YWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVwCi0gICAg
dW5pb24gewotICAgICAgQXJyYXlJbmRleCBpbmRleF87Ci0gICAgICBTdHJpbmdTdG9yYWdlIHN0
b3JhZ2VfOwotICAgIH07Ci0gIH07Ci0KLXB1YmxpYzoKLSNpZm5kZWYgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAKLSAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVl
czsKLSNlbHNlCi0gIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2Jq
ZWN0VmFsdWVzOwotI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotI2Vu
ZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLXB1Ymxp
YzoKLSAgLyoqIFxicmllZiBDcmVhdGUgYSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZlbiB0eXBl
LgotCi0gICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgotICAgIFRvIGNyZWF0
ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgotICAgIFRvIGNyZWF0ZSBhbiBlbXB0
eSBvYmplY3QsIHBhc3Mgb2JqZWN0VmFsdWUuCi0gICAgQW5vdGhlciBWYWx1ZSBjYW4gdGhlbiBi
ZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KLVRoaXMgaXMgdXNlZnVsIHNpbmNlIGNs
ZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAgRXhhbXBsZXM6
Ci1cY29kZQotSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAotSnNvbjo6VmFsdWUgYXJy
X3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQotSnNvbjo6VmFsdWUgb2JqX3ZhbHVlKEpz
b246Om9iamVjdFZhbHVlKTsgLy8ge30KLVxlbmRjb2RlCi0gICovCi0gIFZhbHVlKFZhbHVlVHlw
ZSB0eXBlID0gbnVsbFZhbHVlKTsKLSAgVmFsdWUoSW50IHZhbHVlKTsKLSAgVmFsdWUoVUludCB2
YWx1ZSk7Ci0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgVmFsdWUoSW50NjQgdmFsdWUp
OwotICBWYWx1ZShVSW50NjQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCi0gIFZhbHVlKGRvdWJsZSB2YWx1ZSk7Ci0gIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVl
KTsgLy8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0LikKLSAg
VmFsdWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29weSBhbGws
IGluY2wgemVyb2VzLgotICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9tIGEgc3Rh
dGljIHN0cmluZy4KLQotICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1Y3RvciBi
dXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgotICAgKiBpbnRlcm5hbCBzdG9yYWdl
LiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxsIHRvIHRo
aXMKLSAgICogY29uc3RydWN0b3IuCi0gICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBmb3IgbnVs
bC10ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQotICAgKiAgIHNpemUg
b2YgdGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5ndGgsCi0g
ICAqICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3BlcmF0aW9u
cy4pCi0gICAqCi0gICAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gICAqIFxjb2RlCi0gICAqIHN0YXRp
YyBTdGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKLSAgICogSnNvbjo6VmFsdWUgYVZhbHVl
KGZvbyk7Ci0gICAqIFxlbmRjb2RlCi0gICAqLwotICBWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcm
IHZhbHVlKTsKLSAgVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsgLy8vPCBDb3B5IGRh
dGEoKSB0aWwgc2l6ZSgpLiBFbWJlZGRlZCB6ZXJvZXMgdG9vLgotI2lmZGVmIEpTT05fVVNFX0NQ
UFRMCi0gIFZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpOwotI2VuZGlmCi0g
IFZhbHVlKGJvb2wgdmFsdWUpOwotICAvLy8gRGVlcCBjb3B5LgotICBWYWx1ZShjb25zdCBWYWx1
ZSYgb3RoZXIpOwotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0gIC8vLyBNb3ZlIGNv
bnN0cnVjdG9yCi0gIFZhbHVlKFZhbHVlJiYgb3RoZXIpOwotI2VuZGlmCi0gIH5WYWx1ZSgpOwot
Ci0gIC8vLyBEZWVwIGNvcHksIHRoZW4gc3dhcChvdGhlcikuCi0gIC8vLyBcbm90ZSBPdmVyLXdy
aXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlICNzd2FwUGF5
bG9hZCgpLgotICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlIG90aGVyKTsKLSAgLy8vIFN3YXAgZXZl
cnl0aGluZy4KLSAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7Ci0gIC8vLyBTd2FwIHZhbHVlcyBi
dXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgotICB2b2lkIHN3
YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7Ci0KLSAgVmFsdWVUeXBlIHR5cGUoKSBjb25zdDsKLQot
ICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBldGMuCi0gIGJvb2wgb3Bl
cmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3BlcmF0b3I8PShjb25z
dCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBib29sIG9wZXJhdG9yPj0oY29uc3QgVmFsdWUmIG90
aGVyKSBjb25zdDsKLSAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsK
LSAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBpbnQgY29tcGFyZShjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0OwotCi0gIGNvbnN0IGNoYXIqIGFzQ1N0cmluZygpIGNvbnN0OyAv
Ly88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJsZSEKLSAgc3RkOjpzdHJp
bmcgYXNTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3NpYmxlLgot
ICAvKiogR2V0IHJhdyBjaGFyKiBvZiBzdHJpbmctdmFsdWUuCi0gICAqICBccmV0dXJuIGZhbHNl
IGlmICFzdHJpbmcuIChTZWctZmF1bHQgaWYgc3RyIG9yIGVuZCBhcmUgTlVMTC4pCi0gICAqLwot
ICBib29sIGdldFN0cmluZygKLSAgICAgIGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBjb25zdCoq
IGVuZCkgY29uc3Q7Ci0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgQ3BwVEw6OkNvbnN0U3RyaW5n
IGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKLSNlbmRpZgotICBJbnQgYXNJbnQoKSBjb25zdDsKLSAg
VUludCBhc1VJbnQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICBJbnQ2
NCBhc0ludDY0KCkgY29uc3Q7Ci0gIFVJbnQ2NCBhc1VJbnQ2NCgpIGNvbnN0OwotI2VuZGlmIC8v
IGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIExhcmdlc3RJbnQgYXNMYXJnZXN0SW50KCkg
Y29uc3Q7Ci0gIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKLSAgZmxvYXQgYXNG
bG9hdCgpIGNvbnN0OwotICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKLSAgYm9vbCBhc0Jvb2wo
KSBjb25zdDsKLQotICBib29sIGlzTnVsbCgpIGNvbnN0OwotICBib29sIGlzQm9vbCgpIGNvbnN0
OwotICBib29sIGlzSW50KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnQ2NCgpIGNvbnN0OwotICBib29s
IGlzVUludCgpIGNvbnN0OwotICBib29sIGlzVUludDY0KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnRl
Z3JhbCgpIGNvbnN0OwotICBib29sIGlzRG91YmxlKCkgY29uc3Q7Ci0gIGJvb2wgaXNOdW1lcmlj
KCkgY29uc3Q7Ci0gIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKLSAgYm9vbCBpc0FycmF5KCkgY29u
c3Q7Ci0gIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKLQotICBib29sIGlzQ29udmVydGlibGVUbyhW
YWx1ZVR5cGUgb3RoZXIpIGNvbnN0OwotCi0gIC8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAvLy8gXGJyaWVmIFJl
dHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Ci0gIC8vLyBv
dGhlcndpc2UsIGZhbHNlLgotICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgLy8vIFJldHVybiBp
c051bGwoKQotICBib29sIG9wZXJhdG9yISgpIGNvbnN0OwotCi0gIC8vLyBSZW1vdmUgYWxsIG9i
amVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgLy8vIFxwcmUgdHlwZSgpIGlzIGFy
cmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKLSAgLy8vIFxwb3N0IHR5cGUoKSBp
cyB1bmNoYW5nZWQKLSAgdm9pZCBjbGVhcigpOwotCi0gIC8vLyBSZXNpemUgdGhlIGFycmF5IHRv
IHNpemUgZWxlbWVudHMuCi0gIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIG51
bGwuCi0gIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5VmFsdWUu
Ci0gIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBv
c3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgdm9pZCByZXNpemUoQXJyYXlJbmRleCBzaXplKTsK
LQotICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KLSAg
Ly8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBu
dWxsIHZhbHVlIGFyZQotICAvLy8gaW5zZXJ0ZWQKLSAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0
IGl0cyBzaXplIGlzIGluZGV4KzEuCi0gIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVb
MHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAvLy8gIHRoaXMgZnJv
bSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gIFZhbHVlJiBvcGVyYXRv
cltdKEFycmF5SW5kZXggaW5kZXgpOwotCi0gIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAo
emVybyBiYXNlZCBpbmRleCApLgotICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhh
biBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCi0gIC8vLyBpbnNlcnRlZAotICAv
Ly8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgLy8vIChZb3Ug
bWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rp
bmd1aXNoCi0gIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3Ry
aW5nLikKLSAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsKLQotICAvLy8gQWNjZXNzIGFu
IGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBtYXkgbmVlZCB0
byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAg
Ly8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICBj
b25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLQotICAvLy8g
QWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBt
YXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGlu
Z3Vpc2gKLSAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJp
bmcuKQotICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0OwotCi0gIC8v
LyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJu
cyB0aGUgZWxlbWVudAotICAvLy8gdmFsdWUsCi0gIC8vLyBvdGhlcndpc2UgcmV0dXJucyBkZWZh
dWx0VmFsdWUuCi0gIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4LCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgot
ICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLSAgLy8vIFxicmll
ZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KLSAgLy8vCi0gIC8vLyBFcXVpdmFs
ZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICBWYWx1ZSYgYXBw
ZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8v
LyBcbm90ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGltaXRlZCB0
byAyXjMwIC0xIGNoYXJzLgotICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2UgYW4gZXhj
ZXB0aW9uLgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOwotICAvLy8gQWNj
ZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8g
bWVtYmVyIHdpdGgKLSAgLy8vIHRoYXQgbmFtZS4KLSAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgY2hhcioga2V5KSBjb25zdDsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkg
bmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8vLyBc
cGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSYgb3BlcmF0b3Jb
XShjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCi0gIC8vLyB0
aGF0IG5hbWUuCi0gIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgot
ICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBjb25zdDsK
LSAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51
bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90Ci0gICBleGlzdC4KLQotICAgKiBJZiB0aGUgb2JqZWN0
IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1c2VkIHRv
IHN0b3JlCi0gICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAqIEV4YW1w
bGUgb2YgdXNlOgotICAgKiBcY29kZQotICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAqIHN0
YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgKiBvYmplY3RbY29kZV0g
PSAxMjM0OwotICAgKiBcZW5kY29kZQotICAgKi8KLSAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qg
U3RhdGljU3RyaW5nJiBrZXkpOwotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0gIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcm
IGtleSk7Ci0gIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVs
bCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAotICAvLy8gdGhhdCBuYW1lLgotICBjb25zdCBW
YWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVm
YXVsdFZhbHVlIG90aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICBWYWx1ZSBnZXQo
Y29uc3QgY2hhcioga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSAgLy8v
IFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90
aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICAvLy8gXG5vdGUga2V5IG1heSBjb250
YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSBnZXQoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0
IGNoYXIqIGVuZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBSZXR1
cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndp
c2UuCi0gIC8vLyBcbm90ZSBkZWVwIGNvcHkKLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4g
ZW1iZWRkZWQgbnVsbHMuCi0gIFZhbHVlIGdldChjb25zdCBzdGQ6OnN0cmluZyYga2V5LCBjb25z
dCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTAotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgotICAvLy8gXG5vdGUgZGVlcCBjb3B5Ci0gIFZhbHVlIGdldChjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2YgaXNNZW1i
ZXIoKWNvbnN0LCBnZXQoKWNvbnN0LAotICAvLy8gYW5kIG9wZXJhdG9yW11jb25zdAotICAvLy8g
XG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIChlbmQt
YmVnaW4pID49IDJeMzAKLSAgVmFsdWUgY29uc3QqIGZpbmQoY2hhciBjb25zdCogYmVnaW4sIGNo
YXIgY29uc3QqIGVuZCkgY29uc3Q7Ci0gIC8vLyBNb3N0IGdlbmVyYWwgYW5kIGVmZmljaWVudCB2
ZXJzaW9uIG9mIG9iamVjdC1tdXRhdG9ycy4KLSAgLy8vIFxub3RlIEFzIHN0YXRlZCBlbHNld2hl
cmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCi0gIC8vLyBc
cmV0dXJuIG5vbi16ZXJvLCBidXQgSlNPTl9BU1NFUlQgaWYgdGhpcyBpcyBuZWl0aGVyIG9iamVj
dCBub3IgbnVsbFZhbHVlLgotICBWYWx1ZSBjb25zdCogZGVtYW5kKGNoYXIgY29uc3QqIGJlZ2lu
LCBjaGFyIGNvbnN0KiBlbmQpOwotICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJuIHRoZSBu
YW1lZCBtZW1iZXIuCi0gIC8vLwotICAvLy8gRG8gbm90aGluZyBpZiBpdCBkaWQgbm90IGV4aXN0
LgotICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgLy8vIFxwcmUg
dHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBvc3QgdHlwZSgpIGlz
IHVuY2hhbmdlZAotICAvLy8gXGRlcHJlY2F0ZWQKLSAgVmFsdWUgcmVtb3ZlTWVtYmVyKGNvbnN0
IGNoYXIqIGtleSk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKikKLSAg
Ly8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCi0gIC8vLyBcZGVwcmVj
YXRlZAotICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0gIC8v
LyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5k
LCBWYWx1ZSogcmVtb3ZlZCksCi0gIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5hdGVkLgot
ICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKTsKLSAg
LyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCi0KLSAgICAgIFVwZGF0ZSAn
cmVtb3ZlZCcgaWZmIHJlbW92ZWQuCi0gICAgICBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVk
ZGVkIG51bGxzLgotICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNlcHRpb25z
KQotICAqLwotICBib29sIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1
ZSogcmVtb3ZlZCk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25z
dCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKLSAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhciog
YmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOwotICAvKiogXGJyaWVmIFJl
bW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgotCi0gICAgICBPKG4pIGV4cGVuc2l2ZSBv
cGVyYXRpb25zLgotICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KLSAgICAgIFxy
ZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKLSAgKi8KLSAgYm9vbCByZW1v
dmVJbmRleChBcnJheUluZGV4IGksIFZhbHVlKiByZW1vdmVkKTsKLQotICAvLy8gUmV0dXJuIHRy
dWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAvLy8gXG5vdGUgJ2tl
eScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCi0gIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hhciog
a2V5KSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVy
IG5hbWVkIGtleS4KLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMu
Ci0gIGJvb2wgaXNNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7Ci0gIC8vLyBT
YW1lIGFzIGlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpY29uc3QKLSAgYm9vbCBpc01l
bWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSBjb25zdDsKLSNpZmRlZiBK
U09OX1VTRV9DUFBUTAotICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1i
ZXIgbmFtZWQga2V5LgotICBib29sIGlzTWVtYmVyKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYg
a2V5KSBjb25zdDsKLSNlbmRpZgotCi0gIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBvZiB0aGUg
bWVtYmVyIG5hbWVzLgotICAvLy8KLSAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0eSBsaXN0
LgotICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCi0gIC8vLyBc
cG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgTWVt
YmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OwotCi0gIC8vIyBpZmRlZiBKU09OX1VTRV9DUFBU
TAotICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKLSAg
Ly8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKLSAgLy8jIGVuZGlmCi0KLSAg
Ly8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJV
c2Ugc2V0Q29tbWVudChzdGQ6OnN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKLSAgdm9pZCBzZXRD
b21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsK
LSAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCi0gIHZvaWQgc2V0Q29t
bWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCk7Ci0gIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICB2
b2lkIHNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1l
bnQgcGxhY2VtZW50KTsKLSAgYm9vbCBoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KSBjb25zdDsKLSAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQgbmV3bGlu
ZXMuCi0gIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
IGNvbnN0OwotCi0gIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7Ci0KLSAgY29u
c3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKLSAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7
Ci0KLSAgaXRlcmF0b3IgYmVnaW4oKTsKLSAgaXRlcmF0b3IgZW5kKCk7Ci0KLSAgLy8gQWNjZXNz
b3JzIGZvciB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSBKU09O
IHRleHQgZnJvbQotICAvLyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFueS4KLSAg
dm9pZCBzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpOwotICB2b2lkIHNldE9mZnNldExpbWl0
KHNpemVfdCBsaW1pdCk7Ci0gIHNpemVfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0OwotICBzaXpl
X3QgZ2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdm9pZCBpbml0QmFzaWMo
VmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkID0gZmFsc2UpOwotCi0gIFZhbHVlJiByZXNv
bHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7Ci0gIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNl
KGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKLQotICBzdHJ1Y3QgQ29tbWVudElu
Zm8gewotICAgIENvbW1lbnRJbmZvKCk7Ci0gICAgfkNvbW1lbnRJbmZvKCk7Ci0KLSAgICB2b2lk
IHNldENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbik7Ci0KLSAgICBjaGFyKiBj
b21tZW50XzsKLSAgfTsKLQotICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KLSAgLy97
Ci0gIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKLSAgLy8gICBjb25zdCBj
aGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0Ci0gIC8vICAgewot
ICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7Ci0gIC8vICAgfQotICAvL307Ci0KLSAgdW5p
b24gVmFsdWVIb2xkZXIgewotICAgIExhcmdlc3RJbnQgaW50XzsKLSAgICBMYXJnZXN0VUludCB1
aW50XzsKLSAgICBkb3VibGUgcmVhbF87Ci0gICAgYm9vbCBib29sXzsKLSAgICBjaGFyKiBzdHJp
bmdfOyAgLy8gYWN0dWFsbHkgcHRyIHRvIHVuc2lnbmVkLCBmb2xsb3dlZCBieSBzdHIsIHVubGVz
cyAhYWxsb2NhdGVkXwotICAgIE9iamVjdFZhbHVlcyogbWFwXzsKLSAgfSB2YWx1ZV87Ci0gIFZh
bHVlVHlwZSB0eXBlXyA6IDg7Ci0gIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsgLy8gTm90
ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGFsbG9jYXRlZF8sIHN0cmluZ18gbXVzdCBi
ZSBudWxsLXRlcm1pbmF0ZWQuCi0gIENvbW1lbnRJbmZvKiBjb21tZW50c187Ci0gIFZhbHVlICpk
ZWZhdWx0X3ZhbHVlXzsgIC8vIGlmIHZpYSAuZ2V0KCAia2V5IiwgZGVmYXVsdCApLCB0aGlzIHdh
cyB0aGUgZGVmYXVsdAotCi0gIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBpbiB0aGUg
c291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKLSAgLy8gd2FzIGV4dHJhY3Rl
ZC4KLSAgc2l6ZV90IHN0YXJ0XzsKLSAgc2l6ZV90IGxpbWl0XzsKLX07Ci0KLS8qKiBcYnJpZWYg
RXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9mIHRoZSAi
cGF0aCIgdG8KLSAqIGFjY2VzcyBhIG5vZGUuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBhdGhBcmd1
bWVudCB7Ci1wdWJsaWM6Ci0gIGZyaWVuZCBjbGFzcyBQYXRoOwotCi0gIFBhdGhBcmd1bWVudCgp
OwotICBQYXRoQXJndW1lbnQoQXJyYXlJbmRleCBpbmRleCk7Ci0gIFBhdGhBcmd1bWVudChjb25z
dCBjaGFyKiBrZXkpOwotICBQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0K
LXByaXZhdGU6Ci0gIGVudW0gS2luZCB7Ci0gICAga2luZE5vbmUgPSAwLAotICAgIGtpbmRJbmRl
eCwKLSAgICBraW5kS2V5Ci0gIH07Ci0gIHN0ZDo6c3RyaW5nIGtleV87Ci0gIEFycmF5SW5kZXgg
aW5kZXhfOwotICBLaW5kIGtpbmRfOwotfTsKLQotLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5k
IHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gKgotICog
U3ludGF4OgotICogLSAiLiIgPT4gcm9vdCBub2RlCi0gKiAtICIuW25dIiA9PiBlbGVtZW50cyBh
dCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKLSAqIC0gIi5uYW1lIiA9
PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVlKQotICog
LSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICogLSAiLlswXVsxXVsyXS5uYW1lMVszXSIKLSAqIC0g
Ii4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIKLSAqIC0gIi5bJV0i
ID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBh
dGggewotcHVibGljOgotICBQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAotICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRo
QXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCi0gICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhMyA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQgPSBQ
YXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0aEFyZ3Vt
ZW50KCkpOwotCi0gIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290KSBjb25z
dDsKLSAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBz
cGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgotICAvLy8gdGhlIG5vZGUu
Ci0gIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdHlwZWRl
ZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7Ci0gIHR5cGVkZWYgc3Rk
Ojp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOwotCi0gIHZvaWQgbWFrZVBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pOwotICB2b2lkIGFkZFBhdGhJbkFyZyhj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5Bcmdz
JiBpbiwKLSAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFy
ZywKLSAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpOwotICB2b2lk
IGludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBpbnQgbG9jYXRpb24pOwotCi0g
IEFyZ3MgYXJnc187Ci19OwotCi0vKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVlIGl0ZXJh
dG9ycy4KLSAqCi0gKi8KLWNsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3JCYXNlIHsKLXB1Ymxp
YzoKLSAgdHlwZWRlZiBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGl0ZXJhdG9yX2Nh
dGVnb3J5OwotICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gIHR5cGVkZWYgaW50IGRp
ZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlwZTsKLQot
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBp
c0VxdWFsKG90aGVyKTsgfQotCi0gIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFsKG90aGVyKTsgfQotCi0gIGRpZmZlcmVuY2VfdHlw
ZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7Ci0gICAgcmV0dXJuIG90
aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7Ci0gIH0KLQotICAvLy8gUmV0dXJuIGVpdGhlciB0
aGUgaW5kZXggb3IgdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHZhbHVlIGFzIGEK
LSAgLy8vIFZhbHVlLgotICBWYWx1ZSBrZXkoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBp
bmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFuIGFycmF5
VmFsdWUuCi0gIFVJbnQgaW5kZXgoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8v
LyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1bHQsIGFz
IGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCi0gIHN0ZDo6c3RyaW5nIG5hbWUoKSBjb25z
dDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1
ZS4gIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8vLyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxkZXByZWNh
dGVkIFRoaXMgY2Fubm90IGJlIHVzZWQgZm9yIFVURi04IHN0cmluZ3MsIHNpbmNlIHRoZXJlIGNh
biBiZSBlbWJlZGRlZCBudWxscy4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtleSA9IG5h
bWUoKTtgIGluc3RlYWQuIikKLSAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0OwotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgTlVM
TCBpZiBpdCBpcyBub3QgYW4KLSAgLy8vIG9iamVjdFZhbHVlLgotICAvLy8gXG5vdGUgQmV0dGVy
IHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4KLSAgY2hh
ciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKLQotcHJvdGVjdGVk
OgotICBWYWx1ZSYgZGVyZWYoKSBjb25zdDsKLQotICB2b2lkIGluY3JlbWVudCgpOwotCi0gIHZv
aWQgZGVjcmVtZW50KCk7Ci0KLSAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5jZShjb25z
dCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OwotCi0gIGJvb2wgaXNFcXVhbChjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0OwotCi0gIHZvaWQgY29weShjb25zdCBTZWxmVHlwZSYgb3RoZXIpOwot
Ci1wcml2YXRlOgotICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50XzsKLSAg
Ly8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KLSAgYm9vbCBp
c051bGxfOwotCi1wdWJsaWM6Ci0gIC8vIEZvciBzb21lIHJlYXNvbiwgQk9STEFORCBuZWVkcyB0
aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKLSAgLy8gdGhhbiBlYXJsaWVyLiBObyBpZGVhIHdoeS4K
LSAgVmFsdWVJdGVyYXRvckJhc2UoKTsKLSAgZXhwbGljaXQgVmFsdWVJdGVyYXRvckJhc2UoY29u
c3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotfTsKLQotLyoqIFxi
cmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAqCi0gKi8K
LWNsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9y
QmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0eXBlZGVmIGNvbnN0
IFZhbHVlIHZhbHVlX3R5cGU7Ci0gIC8vdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAv
L3R5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBjb25zdCBWYWx1ZSYgcmVm
ZXJlbmNlOwotICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOwotICB0eXBlZGVmIFZhbHVl
Q29uc3RJdGVyYXRvciBTZWxmVHlwZTsKLQotICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKLSAgVmFs
dWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKTsKLQotcHJpdmF0ZToK
LS8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4KLSAqLwot
ICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6
aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGljOgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQp
IHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICArKyp0aGlzOwotICAgIHJldHVybiB0
ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKLSAgICBTZWxmVHlwZSB0
ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2Vs
ZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7Ci0gICAgaW5jcmVtZW50KCk7Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVy
biAmZGVyZWYoKTsgfQotfTsKLQotLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBh
cnJheSB2YWx1ZS4KLSAqLwotY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1YmxpYyBW
YWx1ZUl0ZXJhdG9yQmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0
eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsK
LSAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICB0eXBlZGVmIFZhbHVlJiByZWZlcmVu
Y2U7Ci0gIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7Ci0gIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBT
ZWxmVHlwZTsKLQotICBWYWx1ZUl0ZXJhdG9yKCk7Ci0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3Io
Y29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7Ci0gIFZhbHVlSXRlcmF0b3IoY29uc3Qg
VmFsdWVJdGVyYXRvciYgb3RoZXIpOwotCi1wcml2YXRlOgotLyohIFxpbnRlcm5hbCBVc2UgYnkg
VmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICovCi0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0
b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGlj
OgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7Ci0KLSAgU2Vs
ZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAr
Kyp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShp
bnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVy
biB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50
KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7
Ci0gICAgaW5jcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNl
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJh
dG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
SnNvbgotCi0KLW5hbWVzcGFjZSBzdGQgewotLy8vIFNwZWNpYWxpemUgc3RkOjpzd2FwKCkgZm9y
IEpzb246OlZhbHVlLgotdGVtcGxhdGU8PgotaW5saW5lIHZvaWQgc3dhcChKc29uOjpWYWx1ZSYg
YSwgSnNvbjo6VmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9Ci19Ci0KLQotI2lmIGRlZmluZWQoSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEgd2FybmluZyhwb3Ap
Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92YWx1ZS5oCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
Ci0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0jZGVmaW5lIENQ
UFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQotI2luY2x1ZGUgImZlYXR1cmVzLmgiCi0jaW5jbHVkZSAidmFsdWUuaCIKLSNlbmRp
ZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxkZXF1ZT4K
LSNpbmNsdWRlIDxpb3Nmd2Q+Ci0jaW5jbHVkZSA8c3RhY2s+Ci0jaW5jbHVkZSA8c3RyaW5nPgot
I2luY2x1ZGUgPGlzdHJlYW0+Ci0KLS8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVt
YmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bwotLy8gYmUgdXNlZCBi
eS4uLgotI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykK
LSNwcmFnbWEgd2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQot
I2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklO
RykKLQotbmFtZXNwYWNlIEpzb24gewotCi0vKiogXGJyaWVmIFVuc2VyaWFsaXplIGEgPGEgSFJF
Rj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQgaW50byBhCi0gKlZhbHVl
LgotICoKLSAqIFxkZXByZWNhdGVkIFVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRl
ci4KLSAqLwotY2xhc3MgSlNPTl9BUEkgUmVhZGVyIHsKLXB1YmxpYzoKLSAgdHlwZWRlZiBjaGFy
IENoYXI7Ci0gIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247Ci0KLSAgLyoqIFxicmllZiBB
biBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBpbiB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBlbmNvdW50
ZXJlZC4KLSAgICoKLSAgICogVGhlIG9mZnNldHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFu
Z2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0LiBOb3RlCi0gICAqIHRoYXQgdGhpcyBpcyBieXRl
cywgbm90IGNvZGVwb2ludHMuCi0gICAqCi0gICAqLwotICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9y
IHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRfbGltaXQ7Ci0g
ICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICAvKiogXGJyaWVmIENvbnN0cnVjdHMg
YSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCi0gICAqIGZvciBwYXJzaW5nLgotICAgKi8K
LSAgUmVhZGVyKCk7Ci0KLSAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5n
IHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKLSAgICogZm9yIHBhcnNpbmcuCi0gICAqLwotICBS
ZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKLQotICAvKiogXGJyaWVmIFJlYWQgYSBW
YWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KLSAgICog
ZG9jdW1lbnQuCi0gICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmluZyBjb250
YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAqICAgICAg
ICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCi0gICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMg
XGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQotICAgKiBi
YWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxj
IGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
VGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgotICAgKiBGZWF0dXJlczo6YWxsb3dDb21tZW50
c18KLSAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KLSAgICogXHJldHVy
biBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFs
c2UgaWYgYW4KLSAgICogZXJyb3Igb2NjdXJyZWQuCi0gICAqLwotICBib29sCi0gIHBhcnNlKGNv
bnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1l
bnRzID0gdHJ1ZSk7Ci0KLSAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9
Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+Ci0gICBkb2N1bWVudC4KLSAgICogXHBhcmFt
IGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBz
dHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBv
aW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVnaW5Eb2Mu
Ci0gICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBk
b2N1bWVudCBpZiBpdCB3YXMKLSAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4K
LSAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBh
bmQgYWxsb3cgd3JpdGluZyB0aGVtCi0gICBiYWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAg
ICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0g
ICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgot
ICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
aXMgXGMgZmFsc2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1
Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCi0gICBlcnJvciBvY2N1cnJlZC4KLSAg
ICovCi0gIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgY29u
c3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7Ci0KLSAgLy8vIFxicmllZiBQYXJzZSBmcm9t
IGlucHV0IHN0cmVhbS4KLSAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0m
LCBKc29uOjpWYWx1ZSYpLgotICBib29sIHBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZhbHVlJiBy
b290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwotCi0gIC8qKiBcYnJpZWYgUmV0dXJu
cyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZAot
ICAgKiBkb2N1bWVudC4KLSAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZSB3aXRo
IHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCi0gICAqIGluCi0gICAqICAg
ICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlm
IG5vIGVycm9yCi0gICAqIG9jY3VycmVkCi0gICAqICAgICAgICAgZHVyaW5nIHBhcnNpbmcuCi0g
ICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZCAo
dHlwbyBmaXgpLgotICAgKi8KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgZ2V0Rm9ybWF0dGVk
RXJyb3JNZXNzYWdlcygpIGluc3RlYWQuIikKLSAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0ZWRFcnJv
ck1lc3NhZ2VzKCkgY29uc3Q7Ci0KLSAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRs
eSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRvY3VtZW50Lgot
ICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJy
b3JzIHdpdGggdGhlaXIgbG9jYXRpb24KLSAgICogaW4KLSAgICogICAgICAgICB0aGUgcGFyc2Vk
IGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKLSAgICog
b2NjdXJyZWQKLSAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KLSAgICovCi0gIHN0ZDo6c3Ry
aW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKLQotICAvKiogXGJyaWVmIFJl
dHVybnMgYSB2ZWN0b3Igb2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUgcGFyc2lu
Zy4KLSAgICogXHJldHVybiBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVjdHVyZWRF
cnJvciBvYmplY3RzLiBDdXJyZW50bHkKLSAgICogICAgICAgICBvbmx5IG9uZSBlcnJvciBjYW4g
YmUgcmV0dXJuZWQsIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQotICAgKiBtdWx0aXBs
ZQotICAgKiAgICAgICAgIGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJzZXIgcmVj
b3ZlcnMgZnJvbSBhIG5vbi1mYXRhbAotICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFuZCB0aGVu
IGVuY291bnRlcnMgYWRkaXRpb25hbCBlcnJvcnMuCi0gICAqLwotICBzdGQ6OnZlY3RvcjxTdHJ1
Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLQotICAvKiogXGJyaWVm
IEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxwYXJhbSB2YWx1ZSBKU09OIFZh
bHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKLSAgICogXHBhcmFtIG1lc3Nh
Z2UgVGhlIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Ig
d2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCi0gICAqIFZhbHVlIG9mZnNl
dCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgotICAgKi8KLSAgYm9vbCBwdXNoRXJyb3IoY29u
c3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgLyoqIFxi
cmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlIHdpdGggZXh0cmEgY29udGV4dC4KLSAg
ICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBl
cnJvcgotICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KLSAgICogXHBhcmFt
IGV4dHJhIEFkZGl0aW9uYWwgSlNPTiBWYWx1ZSBsb2NhdGlvbiB0byBjb250ZXh0dWFsaXplIHRo
ZSBlcnJvcgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVs
bHkgYWRkZWQsIFxjIGZhbHNlIGlmIGVpdGhlcgotICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0
aGUgZG9jdW1lbnQgc2l6ZS4KLSAgICovCi0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2
YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0K
LSAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4KLSAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxjIGZhbHNl
IGlmCi0gICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgotICAgKi8KLSAgYm9vbCBnb29kKCkgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gIGVudW0gVG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFt
ID0gMCwKLSAgICB0b2tlbk9iamVjdEJlZ2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRv
a2VuQXJyYXlCZWdpbiwKLSAgICB0b2tlbkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAg
IHRva2VuTnVtYmVyLAotICAgIHRva2VuVHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2Vu
TnVsbCwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9y
LAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tlbkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9r
ZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBlIHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0
XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9OwotCi0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1
YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAg
TG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+
IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBT
cGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAgYm9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwot
ICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIHZv
aWQgcmVhZE51bWJlcigpOwotICBib29sIHJlYWRWYWx1ZSgpOwotICBib29sIHJlYWRPYmplY3Qo
VG9rZW4mIHRva2VuKTsKLSAgYm9vbCByZWFkQXJyYXkoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBk
ZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRv
a2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbik7
Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQp
OwotICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZURvdWJs
ZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVVbmljb2RlQ29k
ZVBvaW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0
aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsK
LSAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOwotICBib29sIGFkZEVy
cm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4
dHJhID0gMCk7Ci0gIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9r
ZW4pOwotICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOwotICB2b2lkIHNraXBVbnRp
bFNwYWNlKCk7Ci0gIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKLSAgQ2hhciBnZXROZXh0Q2hhcigp
OwotICB2b2lkCi0gIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwg
aW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdl
dExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHZvaWQgYWRkQ29t
bWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCk7Ci0gIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKLQotICB0eXBl
ZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKLSAgTm9kZXMgbm9kZXNfOwotICBFcnJvcnMg
ZXJyb3JzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwotICBMb2NhdGlvbiBiZWdpbl87Ci0g
IExvY2F0aW9uIGVuZF87Ci0gIExvY2F0aW9uIGN1cnJlbnRfOwotICBMb2NhdGlvbiBsYXN0VmFs
dWVFbmRfOwotICBWYWx1ZSogbGFzdFZhbHVlXzsKLSAgc3RkOjpzdHJpbmcgY29tbWVudHNCZWZv
cmVfOwotICBGZWF0dXJlcyBmZWF0dXJlc187Ci0gIGJvb2wgY29sbGVjdENvbW1lbnRzXzsKLX07
ICAvLyBSZWFkZXIKLQotLyoqIEludGVyZmFjZSBmb3IgcmVhZGluZyBKU09OIGZyb20gYSBjaGFy
IGFycmF5LgotICovCi1jbGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyIHsKLXB1YmxpYzoKLSAgdmly
dHVhbCB+Q2hhclJlYWRlcigpIHt9Ci0gIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgotICAgZG9jdW1lbnQuCi0gICAq
IFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0
aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAgICoKLSAgICogXHBhcmFtIGJlZ2luRG9jIFBvaW50ZXIg
b24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBvaW50ZXIgb24gdGhlIGVuZCBv
ZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgot
ICAgKiAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KLSAgICogXHBhcmFtIHJvb3QgW291dF0g
Q29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcwotICAgKiAg
ICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgotICAgKiBccGFyYW0gZXJycyBbb3V0XSBG
b3JtYXR0ZWQgZXJyb3IgbWVzc2FnZXMgKGlmIG5vdCBOVUxMKQotICAgKiAgICAgICAgYSB1c2Vy
IGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3RzIGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRv
Y3VtZW50LgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNz
ZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgotICAgZXJyb3Igb2NjdXJyZWQuCi0gICAqLwot
ICB2aXJ0dWFsIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBj
b25zdCogZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSA9IDA7
Ci0KLSAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5G
YWN0b3J5KCkge30KLSAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2aWEgb3Bl
cmF0b3IgbmV3KCkuCi0gICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBn
b2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCi0gICAgICovCi0gICAgdmlydHVhbCBD
aGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3QgPSAwOwotICB9OyAgLy8gRmFjdG9yeQot
fTsgIC8vIENoYXJSZWFkZXIKLQotLyoqIFxicmllZiBCdWlsZCBhIENoYXJSZWFkZXIgaW1wbGVt
ZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcgbmFtZXNwYWNlIEpzb247Ci0gIENo
YXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbGxlY3RDb21tZW50cyJdID0g
ZmFsc2U7Ci0gIFZhbHVlIHZhbHVlOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0g
cGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsKLVxlbmRj
b2RlCi0qLwotY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMgQ2hhclJl
YWRlcjo6RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVl
IHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcwotICAvLyB3aXRo
b3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgotICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1
aWxkZXIuCi0gICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgotICAgIEF2YWlsYWJsZSBzZXR0
aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgotICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBmYWxzZSBv
ciB0cnVlYAotICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGlu
ZyB0aGVtCi0gICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRvIGRpc2Nh
cmQgY29tbWVudHMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgYWxsb3dD
b21tZW50cyBpcyBmYWxzZS4KLSAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9yIHRydWVg
Ci0gICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuCi0gICAgLSBgInN0cmljdFJv
b3QiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCi0gICAgLSBgImFsbG93RHJvcHBlZE51bGxQbGFj
ZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIGRyb3BwZWQgbnVsbCBw
bGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUgU3RyZWFtV3JpdGVyQnVpbGRlci4pCi0gICAg
LSBgImFsbG93TnVtZXJpY0tleXMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIG51
bWVyaWMgb2JqZWN0IGtleXMgYXJlIGFsbG93ZWQuCi0gICAgLSBgImFsbG93U2luZ2xlUXVvdGVz
IjogZmFsc2Ugb3IgdHJ1ZWAKLSAgICAgIC0gdHJ1ZSBpZiAnJyBhcmUgYWxsb3dlZCBmb3Igc3Ry
aW5ncyAoYm90aCBrZXlzIGFuZCB2YWx1ZXMpCi0gICAgLSBgInN0YWNrTGltaXQiOiBpbnRlZ2Vy
YAotICAgICAgLSBFeGNlZWRpbmcgc3RhY2tMaW1pdCAocmVjdXJzaXZlIGRlcHRoIG9mIGByZWFk
VmFsdWUoKWApIHdpbGwKLSAgICAgICAgY2F1c2UgYW4gZXhjZXB0aW9uLgotICAgICAgLSBUaGlz
IGlzIGEgc2VjdXJpdHkgaXNzdWUgKHNlZy1mYXVsdHMgY2F1c2VkIGJ5IGRlZXBseSBuZXN0ZWQg
SlNPTiksCi0gICAgICAgIHNvIHRoZSBkZWZhdWx0IGlzIGxvdy4KLSAgICAtIGAiZmFpbElmRXh0
cmEiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0dXJucyBm
YWxzZSB3aGVuIGV4dHJhIG5vbi13aGl0ZXNwYWNlIHRyYWlscwotICAgICAgICB0aGUgSlNPTiB2
YWx1ZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgotICAgIC0gYCJyZWplY3REdXBLZXlzIjogZmFsc2Ug
b3IgdHJ1ZWAKLSAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBh
IGtleSBpcyBkdXBsaWNhdGVkIHdpdGhpbiBhbiBvYmplY3QuCi0gICAgLSBgImFsbG93U3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWVgCi0gICAgICAtIElmIHRydWUsIHNwZWNpYWwgZmxvYXQg
dmFsdWVzIChOYU5zIGFuZCBpbmZpbml0aWVzKSBhcmUgYWxsb3dlZCAKLSAgICAgICAgYW5kIHRo
ZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KLQotICAgIFlvdSBjYW4gZXhhbWlu
ZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgotICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4g
YWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKLSAgICBKU09OIFZhbHVlLgot
ICAgIFxzYSBzZXREZWZhdWx0cygpCi0gICAgKi8KLSAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOwot
Ci0gIENoYXJSZWFkZXJCdWlsZGVyKCk7Ci0gIH5DaGFyUmVhZGVyQnVpbGRlcigpOwotCi0gIENo
YXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdDsKLQotICAvKiogXHJldHVybiB0cnVlIGlm
ICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50OwotICAgKiAgIG90aGVyd2lzZSwg
aW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCi0gICAqLwotICBib29sIHZhbGlk
YXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKLQotICAvKiogQSBzaW1wbGUgd2F5IHRv
IHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCi0gICAqLwotICBWYWx1ZSYgb3BlcmF0b3JbXShz
dGQ6OnN0cmluZyBrZXkpOwotCi0gIC8qKiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBjYW4gdXNl
IHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgotICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAo
YnV0IEpzb246Om51bGwgaXMgZmluZSkKLSAgICogXHJlbWFyayBEZWZhdWx0czoKLSAgICogXHNu
aXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRlckRlZmF1
bHRzCi0gICAqLwotICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGlu
Z3MpOwotICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6OnN0cmljdE1vZGUoKS4KLSAgICogXHBy
ZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCi0gICAqIFxyZW1h
cmsgRGVmYXVsdHM6Ci0gICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAg
Q2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCi0gICAqLwotICBzdGF0aWMgdm9pZCBzdHJpY3RN
b2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Ci19OwotCi0vKiogQ29uc3VtZSBlbnRpcmUgc3Ry
ZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KLSAgKiBTb21lZGF5IHdlIG1pZ2h0IGhhdmUgYSBy
ZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcwotICAqIGlzIGNvbnZlbmllbnQuCi0g
ICovCi1ib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbSgKLSAgICBDaGFyUmVhZGVyOjpGYWN0
b3J5IGNvbnN0JiwKLSAgICBzdGQ6OmlzdHJlYW0mLAotICAgIFZhbHVlKiByb290LCBzdGQ6OnN0
cmluZyogZXJycyk7Ci0KLS8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jvb3QnLgot
Ci0gQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KLQotIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9iamVjdC4KLSBG
b3IgZXhhbXBsZToKLSBcY29kZQotIEpzb246OlZhbHVlIHJvb3Q7Ci0gY2luID4+IHJvb3RbImRp
ciJdWyJmaWxlIl07Ci0gY291dCA8PCByb290OwotIFxlbmRjb2RlCi0gUmVzdWx0OgotIFx2ZXJi
YXRpbQotIHsKLSAiZGlyIjogewotICAgICAiZmlsZSI6IHsKLSAgICAgLy8gVGhlIGlucHV0IHN0
cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgotICAgICB9Ci0gfQotIH0KLSBcZW5kdmVy
YmF0aW0KLSBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCi0gXHNlZSBKc29u
OjpvcGVyYXRvcjw8KCkKLSovCi1KU09OX0FQSSBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3Rk
Ojppc3RyZWFtJiwgVmFsdWUmKTsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0jaWYgZGVmaW5l
ZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQotI3ByYWdtYSB3YXJuaW5n
KHBvcCkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9y
ZWFkZXIuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRlci5oCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxs
ZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgSlNPTl9XUklURVJfSF9JTkNMVURFRAotI2Rl
ZmluZSBKU09OX1dSSVRFUl9IX0lOQ0xVREVECi0KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKLSNpbmNsdWRlICJ2YWx1ZS5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8b3N0cmVhbT4KLQotLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1i
ZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCi0vLyBiZSB1c2VkIGJ5
Li4uCi0jaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQot
I3ByYWdtYSB3YXJuaW5nKHB1c2gpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCi0j
ZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5H
KQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLWNsYXNzIFZhbHVlOwotCi0vKioKLQotVXNhZ2U6Ci1c
Y29kZQotICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKLSAgdm9pZCB3cml0ZVRvU3Rkb3V0KFN0cmVh
bVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHZhbHVlKSB7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gY29uc3Qgd3JpdGVyKAotICAgICAgZmFj
dG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7Ci0gICAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6
Y291dCk7Ci0gICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gK
LSAgfQotXGVuZGNvZGUKLSovCi1jbGFzcyBKU09OX0FQSSBTdHJlYW1Xcml0ZXIgewotcHJvdGVj
dGVkOgotICBzdGQ6Om9zdHJlYW0qIHNvdXRfOyAgLy8gbm90IG93bmVkOyB3aWxsIG5vdCBkZWxl
dGUKLXB1YmxpYzoKLSAgU3RyZWFtV3JpdGVyKCk7Ci0gIHZpcnR1YWwgflN0cmVhbVdyaXRlcigp
OwotICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBjb25maWd1cmVkIGluIHN1Yi1j
bGFzcy4KLSAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBzb3V0LCBidXQgbWFpbnRhaW4g
YSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgotICAgICAgXHByZSBzb3V0ICE9IE5VTEwKLSAg
ICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3ZSBhbHdheXMgcmV0dXJuIHpl
cm8sIHNvIGNoZWNrIHRoZSBzdHJlYW0gaW5zdGVhZC4pCi0gICAgICBcdGhyb3cgc3RkOjpleGNl
cHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCi0gICAqLwotICB2aXJ0
dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KSA9IDA7
Ci0KLSAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5LgotICAgKi8KLSAgY2xh
c3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5GYWN0b3J5KCk7
Ci0gICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygp
LgotICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAo
ZS5nLiBpbnZhbGlkIHNldHRpbmdzKQotICAgICAqLwotICAgIHZpcnR1YWwgU3RyZWFtV3JpdGVy
KiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7Ci0gIH07ICAvLyBGYWN0b3J5Ci19OyAgLy8g
U3RyZWFtV3JpdGVyCi0KLS8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdzdHJlYW0sIHRoZW4g
cmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgotICogQSBTdHJlYW1Xcml0ZXIgd2lsbCBi
ZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRlbGV0ZWQuCi0gKi8K
LXN0ZDo6c3RyaW5nIEpTT05fQVBJIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBj
b25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpOwotCi0KLS8qKiBcYnJpZWYgQnVpbGQg
YSBTdHJlYW1Xcml0ZXIgaW1wbGVtZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcg
bmFtZXNwYWNlIEpzb247Ci0gIFZhbHVlIHZhbHVlID0gLi4uOwotICBTdHJlYW1Xcml0ZXJCdWls
ZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbW1lbnRTdHlsZSJdID0gIk5vbmUiOwotICBidWls
ZGVyWyJpbmRlbnRhdGlvbiJdID0gIiAgICI7ICAvLyBvciB3aGF0ZXZlciB5b3UgbGlrZQotICBz
dGQ6OnVuaXF1ZV9wdHI8SnNvbjo6U3RyZWFtV3JpdGVyPiB3cml0ZXIoCi0gICAgICBidWlsZGVy
Lm5ld1N0cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6Y291dCk7
Ci0gIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCi1cZW5kY29k
ZQotKi8KLWNsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlckJ1aWxkZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyOjpGYWN0b3J5IHsKLXB1YmxpYzoKLSAgLy8gTm90ZTogV2UgdXNlIGEgSnNvbjo6VmFs
dWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCi0gIC8vIHdp
dGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCi0gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoaXMg
YnVpbGRlci4KLSAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToKLSAgICAt
ICJjb21tZW50U3R5bGUiOiAiTm9uZSIgb3IgIkFsbCIKLSAgICAtICJpbmRlbnRhdGlvbiI6ICAi
PGFueXRoaW5nPiIKLSAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNlIG9yIHRy
dWUKLSAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBjb2xvbnMK
LSAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gRHJv
cCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1
ZXMuCi0gICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBC
dXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAgICAgIGZlZCB0byBhIGJyb3dzZXIncyBK
YXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQotICAgICAgICBi
cm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCi0gICAgLSAidXNlU3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBub24tZmlu
aXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKLSAgICAgICAg
TmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5IiwgYW5k
IG5lZ2F0aXZlIGluZmluaXR5Ci0gICAgICAgIGFzICItSW5maW5pdHkiLgotCi0gICAgWW91IGNh
biBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCi0gICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4g
WW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQotICAgIEpTT04g
VmFsdWUuCi0gICAgXHNhIHNldERlZmF1bHRzKCkKLSAgICAqLwotICBKc29uOjpWYWx1ZSBzZXR0
aW5nc187Ci0KLSAgU3RyZWFtV3JpdGVyQnVpbGRlcigpOwotICB+U3RyZWFtV3JpdGVyQnVpbGRl
cigpOwotCi0gIC8qKgotICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdv
ZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKLSAgICovCi0gIFN0cmVhbVdyaXRlciog
bmV3U3RyZWFtV3JpdGVyKCkgY29uc3Q7Ci0KLSAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGlu
Z3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKLSAgICogICBvdGhlcndpc2UsIGluZGljYXRl
IGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgotICAgKi8KLSAgYm9vbCB2YWxpZGF0ZShKc29u
OjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7Ci0gIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEg
c3BlY2lmaWMgc2V0dGluZy4KLSAgICovCi0gIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5n
IGtleSk7Ci0KLSAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byBy
ZXNldCBzZXR0aW5nc18uCi0gICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6
bnVsbCBpcyBmaW5lKQotICAgKiBccmVtYXJrIERlZmF1bHRzOgotICAgKiBcc25pcHBldCBzcmMv
bGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0cwotICAg
Ki8KLSAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKLX07
Ci0KLS8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCi0gKiBcZGVwcmVjYXRl
ZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlv
biBkZXRhaWwuKQotICovCi1jbGFzcyBKU09OX0FQSSBXcml0ZXIgewotcHVibGljOgotICB2aXJ0
dWFsIH5Xcml0ZXIoKTsKLQotICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVl
JiByb290KSA9IDA7Ci19OwotCi0vKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVG
PSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKLSAqd2l0aG91dCBmb3JtYXR0
aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgotICoKLSAqIFRoZSBKU09OIGRvY3VtZW50IGlzIHdy
aXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVtYW4nCi0g
KmNvbnN1bXB0aW9uLAotICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVhdHVyZSBz
dWNoIGFzIFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgotICogXHNhIFJlYWRlciwgVmFs
dWUKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgotICovCi1jbGFzcyBK
U09OX0FQSSBGYXN0V3JpdGVyIDogcHVibGljIFdyaXRlciB7Ci0KLXB1YmxpYzoKLSAgRmFzdFdy
aXRlcigpOwotICB+RmFzdFdyaXRlcigpIHt9Ci0KLSAgdm9pZCBlbmFibGVZQU1MQ29tcGF0aWJp
bGl0eSgpOwotCi0gIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3
cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCi0gICAqIFN0cmljdGx5IHNwZWFraW5nLCB0
aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAq
IGZlZCB0byBhIGJyb3dzZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRw
dXQgYW5kIHRoZQotICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUu
Ci0gICAqLwotICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7Ci0KLSAgdm9pZCBvbWl0RW5k
aW5nTGluZUZlZWQoKTsKLQotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCi0gIHN0
ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKLQotcHJpdmF0ZToKLSAgdm9pZCB3
cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRf
OwotICBib29sIHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXzsKLSAgYm9vbCBkcm9wTnVsbFBsYWNl
aG9sZGVyc187Ci0gIGJvb2wgb21pdEVuZGluZ0xpbmVGZWVkXzsKLX07Ci0KLS8qKiBcYnJpZWYg
V3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4g
Zm9ybWF0IGluIGEKLSAqaHVtYW4gZnJpZW5kbHkgd2F5LgotICoKLSAqIFRoZSBydWxlcyBmb3Ig
bGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6Ci0gKiAtIE9iamVjdCB2YWx1ZToK
LSAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUg
YnJlYWsKLSAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYg
aW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCi0gKmxpbmUKLSAqICAgICAgIGFuZCB0aGVuIHVu
aW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCi0gKiAtIEFycmF5IHZhbHVlOgot
ICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBi
cmVhawotICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1ZSwgZW1w
dHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQotICp0eXBlcywKLSAqICAgICAgIGFuZCBhbGwg
dGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNp
bmdsZQotICpsaW5lLgotICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRvIG5vdCBm
aXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucwotICogICAgICAgb2JqZWN0IG9y
IG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCi0gKgotICog
SWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBhY2NvcmRp
bmcgdG8gdGhlaXIKLSAqI0NvbW1lbnRQbGFjZW1lbnQuCi0gKgotICogXHNhIFJlYWRlciwgVmFs
dWUsIFZhbHVlOjpzZXRDb21tZW50KCkKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJC
dWlsZGVyLgotICovCi1jbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXIgOiBwdWJsaWMgV3JpdGVy
IHsKLXB1YmxpYzoKLSAgU3R5bGVkV3JpdGVyKCk7Ci0gIH5TdHlsZWRXcml0ZXIoKSB7fQotCi1w
dWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKLSAgLyoqIFxicmllZiBTZXJpYWxpemUg
YSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQu
Ci0gICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KLSAgICogXHJldHVybiBTdHJp
bmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhlIHJvb3Qg
dmFsdWUuCi0gICAqLwotICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0K
LXByaXZhdGU6Ci0gIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICB2b2lk
IHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBib29sIGlzTXVsdGluZUFy
cmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0gIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7Ci0gIHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgdm9pZCB3cml0ZVdpdGhJbmRl
bnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKLSAgdm9pZCBpbmRlbnQoKTsKLSAgdm9pZCB1
bmluZGVudCgpOwotICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiBy
b290KTsKLSAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1
ZSYgcm9vdCk7Ci0gIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7
Ci0gIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJpbmcmIHRl
eHQpOwotCi0gIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwot
Ci0gIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwot
ICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBpbnQg
aW5kZW50U2l6ZV87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOwotfTsKLQotLyoqIFxicmllZiBX
cml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQgaW4gYQotIGh1bWFuIGZyaWVuZGx5IHdheSwKLSAgICAgdG8gYSBzdHJlYW0gcmF0aGVy
IHRoYW4gdG8gYSBzdHJpbmcuCi0gKgotICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBp
bmRlbnQgYXJlIGFzIGZvbGxvdzoKLSAqIC0gT2JqZWN0IHZhbHVlOgotICogICAgIC0gaWYgZW1w
dHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhawotICogICAgIC0g
aWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9u
ZSB2YWx1ZSBwZXIKLSBsaW5lCi0gKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBi
cmVhayBhbmQgcHJpbnQgJ30nLgotICogLSBBcnJheSB2YWx1ZToKLSAqICAgICAtIGlmIGVtcHR5
IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKLSAqICAgICAtIGlm
IHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUg
b3RoZXIgdmFsdWUKLSB0eXBlcywKLSAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24g
b25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQotIGxpbmUuCi0gKiAg
ICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3Ig
dGhlIGFycmF5IGNvbnRhaW5zCi0gKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0
aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KLSAqCi0gKiBJZiB0aGUgVmFsdWUgaGF2ZSBj
b21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgotICNDb21t
ZW50UGxhY2VtZW50LgotICoKLSAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwg
YmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCi0gKiBcc2EgUmVhZGVyLCBWYWx1ZSwg
VmFsdWU6OnNldENvbW1lbnQoKQotICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxk
ZXIuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlciB7Ci1wdWJsaWM6Ci0g
IFN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIpOwotICB+
U3R5bGVkU3RyZWFtV3JpdGVyKCkge30KLQotcHVibGljOgotICAvKiogXGJyaWVmIFNlcmlhbGl6
ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1h
dC4KLSAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8gd3JpdGUgdG8uIChDYW4gYmUgb3N0cmluZ3N0
cmVhbSwgZS5nLikKLSAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgotICAgKiBc
bm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2luY2Ugd3Jp
dGUoKSBzaG91bGQgbm90Ci0gICAqIHJldHVybiBhIHZhbHVlLgotICAgKi8KLSAgdm9pZCB3cml0
ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOwotCi1wcml2YXRlOgotICB2
b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUFycmF5VmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgYm9vbCBpc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpOwotICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwot
ICB2b2lkIHdyaXRlSW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6
c3RyaW5nJiB2YWx1ZSk7Ci0gIHZvaWQgaW5kZW50KCk7Ci0gIHZvaWQgdW5pbmRlbnQoKTsKLSAg
dm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0gIHZvaWQg
d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpOwotICBi
b29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBzdGF0aWMgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKLQotICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKLQotICBDaGlsZFZhbHVl
cyBjaGlsZFZhbHVlc187Ci0gIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOwotICBzdGQ6OnN0cmlu
ZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRhdGlvbl87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKLSAgYm9vbCBpbmRlbnRlZF8g
OiAxOwotfTsKLQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1zdGQ6OnN0cmluZyBKU09O
X0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1
ZVRvU3RyaW5nKFVJbnQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCi1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUp
Owotc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSk7
Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSk7Ci1zdGQ6
OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOwotc3RkOjpzdHJpbmcg
SlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSk7Ci0KLS8vLyBc
YnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCi0vLy8gXHNlZSBKc29u
OjpvcGVyYXRvcj4+KCkKLUpTT05fQVBJIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mLCBjb25zdCBWYWx1ZSYgcm9vdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI2lm
IGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEg
d2FybmluZyhwb3ApCi0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lO
VEVSRkFDRV9XQVJOSU5HKQotCi0jZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURFRAotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24v
d3JpdGVyLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3NlcnRpb25z
LmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgot
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VSVElPTlNf
SF9JTkNMVURFRAotI2RlZmluZSBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAotCi0j
aW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLQotI2lmICFkZWZpbmVkKEpT
T05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi0vKiogSXQgc2hvdWxkIG5vdCBiZSBwb3Nz
aWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCi0gKiAgY2F1c2UgYW4gYWJv
cnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5Ci0gKiAgZm9y
IHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3JzLgotICov
Ci0jaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0KLS8vIEB0b2RvIDw9IGFkZCBkZXRhaWwgYWJvdXQg
Y29uZGl0aW9uIGluIGV4Y2VwdGlvbgotIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0aW9uKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAge2lmICgh
KGNvbmRpdGlvbikpIHtKc29uOjp0aHJvd0xvZ2ljRXJyb3IoICJhc3NlcnQganNvbiBmYWlsZWQi
ICk7fX0KLQotIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpzb246OnRocm93TG9naWNFcnJvcihvc3Mu
c3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBh
Ym9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gIH0KLQotI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBUSU9OCi0K
LSMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikKLQotLy8g
VGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4gZGVi
dWcgYnVpbGRzLiBJbgotLy8gcmVsZWFzZSBidWlsZHMgd2UgYWJvcnQsIGZvciBhIGNvcmUtZHVt
cCBvciBkZWJ1Z2dlci4KLSMgZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhc3NlcnQoZmFsc2UgJiYgb3Nz
LnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICB9Ci0KLQotI2VuZGlmCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpTT05fRkFJTF9NRVNT
QUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgfQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQK
LQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9q
c29uL2Fzc2VydGlvbnMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLSNlbmRpZiAvL2lm
bmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy9qc29uY3BwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYzMjg3MzI3YzBk
NjYzMjE1MDVlYWQyZDJlZTQ2N2U3MzlmMTVlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTI2NiArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuCi0vLy8gSXQgaXMg
aW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29uL2pzb24uaCIKLQotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotCi0vKgotVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBp
bmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24sIAotdGVzdHMgYW5kIGRlbW9uc3Ry
YXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZwotY29u
ZGl0aW9ucy4uLgotCi1UaGUgYXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkg
ZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCi1qdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6
ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKLXRoaXMgc29mdHdh
cmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERvbWFpbi4KLQotSW4ganVyaXNkaWN0aW9u
cyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2Vy
bWFueSBhcyBvZgotMjAxMCksIHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIw
MTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMKLXJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdykuCi0KLUluIGp1cmlzZGljdGlvbnMgd2hp
Y2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCi1z
b2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFp
biwgMikgdW5kZXIgdGhlIAotY29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxv
dyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBkdWFsIAotUHVibGljIERvbWFpbi9NSVQgTGlj
ZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KLQotVGhlIE1J
VCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNl
IGNhbiBnZXQsIGFuZCBpcwotZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0Ogot
Ci0gICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCi0gICAKLVRoZSBm
dWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxvd3M6Ci0KLT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Q29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0KLVBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCi1vYnRhaW5p
bmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgot
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAot
cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksCi1tb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMKLW9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi1mdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotaW5jbHVkZWQgaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCi1NRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORAotTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUwotQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCi1BQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotQ09OTkVDVElPTiBXSVRI
IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotU09GVFdB
UkUuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLShFTkQgTElDRU5TRSBURVhUKQotCi1UaGUgTUlUIGxpY2Vu
c2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAotc29mdHdh
cmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRo
IHRoZQotbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZQotYW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5v
dGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUKLVB1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlv
dSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKLWxpY2Vuc2UgeW91IGxp
a2UuCi0KLSovCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6
IExJQ0VOU0UKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLSNpbmNsdWRlICJqc29uL2pz
b24uaCIKLQotI2lmbmRlZiBKU09OX0lTX0FNQUxHQU1BVElPTgotI2Vycm9yICJDb21waWxlIHdp
dGggLUkgUEFUSF9UT19KU09OX0RJUkVDVE9SWSIKLSNlbmRpZgotCi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3Rv
b2wuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9P
TF9IX0lOQ0xVREVECi0jZGVmaW5lIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECi0K
LS8qIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGNvbW1vbiBzdHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBv
cnQsIHN1Y2ggYXMgVVRGLTgsCi0gKiBwb3J0YWJsZSBjb252ZXJzaW9uIGZyb20vdG8gc3RyaW5n
Li4uCi0gKgotICogSXQgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIHRoYXQgbXVzdCBub3QgYmUgZXhw
b3NlZC4KLSAqLwotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vLyBDb252ZXJ0cyBhIHVuaWNvZGUg
Y29kZS1wb2ludCB0byBVVEYtOC4KLXN0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgY29kZVBvaW50
VG9VVEY4KHVuc2lnbmVkIGludCBjcCkgewotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0KLSAgLy8g
YmFzZWQgb24gZGVzY3JpcHRpb24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VU
Ri04Ci0KLSAgaWYgKGNwIDw9IDB4N2YpIHsKLSAgICByZXN1bHQucmVzaXplKDEpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweDdG
RikgewotICAgIHJlc3VsdC5yZXNpemUoMik7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKLSAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxj
aGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweEZG
RkYpIHsKLSAgICByZXN1bHQucmVzaXplKDMpOwotICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzBdID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhFMCB8ICgweGYgJiAoY3AgPj4gMTIpKSk7Ci0gIH0gZWxzZSBpZiAoY3Ag
PD0gMHgxMEZGRkYpIHsKLSAgICByZXN1bHQucmVzaXplKDQpOwotICAgIHJlc3VsdFszXSA9IHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzJdID0gc3Rh
dGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzFd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOwot
ICB9Ci0KLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8vIFJldHVybnMgdHJ1ZSBpZiBjaCBpcyBh
IGNvbnRyb2wgY2hhcmFjdGVyIChpbiByYW5nZSBbMSwzMV0pLgotc3RhdGljIGlubGluZSBib29s
IGlzQ29udHJvbENoYXJhY3RlcihjaGFyIGNoKSB7IHJldHVybiBjaCA+IDAgJiYgY2ggPD0gMHgx
RjsgfQotCi1lbnVtIHsKLSAgLy8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQgdG8KLSAgLy8vIHVpbnRUb1N0cmluZy4KLSAg
dWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMgKiBzaXplb2YoTGFyZ2VzdFVJbnQpICsgMQotfTsK
LQotLy8gRGVmaW5lcyBhIGNoYXIgYnVmZmVyIGZvciB1c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4K
LXR5cGVkZWYgY2hhciBVSW50VG9TdHJpbmdCdWZmZXJbdWludFRvU3RyaW5nQnVmZmVyU2l6ZV07
Ci0KLS8qKiBDb252ZXJ0cyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRvIHN0cmluZy4KLSAqIEBwYXJh
bSB2YWx1ZSBVbnNpZ25lZCBpbnRlcmdlciB0byBjb252ZXJ0IHRvIHN0cmluZwotICogQHBhcmFt
IGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZmZXIuCi0gKiAgICAgICAgTXVzdCBoYXZl
IGF0IGxlYXN0IHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgY2hhcnMgZnJlZS4KLSAqLwotc3RhdGlj
IGlubGluZSB2b2lkIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSwgY2hhciomIGN1cnJl
bnQpIHsKLSAgKi0tY3VycmVudCA9IDA7Ci0gIGRvIHsKLSAgICAqLS1jdXJyZW50ID0gc3RhdGlj
X2Nhc3Q8c2lnbmVkIGNoYXI+KHZhbHVlICUgMTBVICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCcw
JykpOwotICAgIHZhbHVlIC89IDEwOwotICB9IHdoaWxlICh2YWx1ZSAhPSAwKTsKLX0KLQotLyoq
IENoYW5nZSAnLCcgdG8gJy4nIGV2ZXJ5d2hlcmUgaW4gYnVmZmVyLgotICoKLSAqIFdlIGhhZCBh
IHNvcGhpc3RpY2F0ZWQgd2F5LCBidXQgaXQgZGlkIG5vdCB3b3JrIGluIFdpbkNFLgotICogQHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3B1bGwvOQot
ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgZml4TnVtZXJpY0xvY2FsZShjaGFyKiBiZWdpbiwgY2hh
ciogZW5kKSB7Ci0gIHdoaWxlIChiZWdpbiA8IGVuZCkgewotICAgIGlmICgqYmVnaW4gPT0gJywn
KSB7Ci0gICAgICAqYmVnaW4gPSAnLic7Ci0gICAgfQotICAgICsrYmVnaW47Ci0gIH0KLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbiB7Ci0KLSNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xf
SF9JTkNMVURFRAotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxl
OiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9s
aWJfanNvbi9qc29uX3JlYWRlci5jcHAKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0
IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgot
I2luY2x1ZGUgPGpzb24vcmVhZGVyLmg+Ci0jaW5jbHVkZSA8anNvbi92YWx1ZS5oPgotI2luY2x1
ZGUgImpzb25fdG9vbC5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFU
SU9OKQotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotI2luY2x1ZGUgPGNh
c3NlcnQ+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxpc3RyZWFtPgotI2luY2x1ZGUg
PHNzdHJlYW0+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDxs
aW1pdHM+Ci0KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2lmICFkZWZpbmVkKFdJTkNFKSAmJiBk
ZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9NU0NfVkVSID49IDE1MDAgLy8gVkMrKyA5
LjAgYW5kIGFib3ZlIAotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNlbGlmIF9NU0NfVkVS
ID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNu
cHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotI2VsaWYg
ZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQotI2RlZmluZSBzbnBy
aW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19RTlhOVE9fXykKLSNk
ZWZpbmUgc3NjYW5mIHN0ZDo6c3NjYW5mCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX01TQ19WRVIp
ICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4LjAKLS8vIERpc2FibGUgd2FybmluZyBhYm91
dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5
NikKLSNlbmRpZgotCi1zdGF0aWMgaW50IGNvbnN0IHN0YWNrTGltaXRfZyA9IDEwMDA7Ci1zdGF0
aWMgaW50ICAgICAgIHN0YWNrRGVwdGhfZyA9IDA7ICAvLyBzZWUgcmVhZFZhbHVlKCkKLQotbmFt
ZXNwYWNlIEpzb24gewotCi0jaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAoZGVmaW5lZChf
Q1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIwKQotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9w
dHI8Q2hhclJlYWRlcj4gQ2hhclJlYWRlclB0cjsKLSNlbHNlCi10eXBlZGVmIHN0ZDo6YXV0b19w
dHI8Q2hhclJlYWRlcj4gICBDaGFyUmVhZGVyUHRyOwotI2VuZGlmCi0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIEZlYXR1cmVzCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1GZWF0dXJlczo6RmVhdHVyZXMoKQotICAgIDogYWxsb3dDb21tZW50c18odHJ1ZSksIHN0
cmljdFJvb3RfKGZhbHNlKSwKLSAgICAgIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKGZh
bHNlKSwgYWxsb3dOdW1lcmljS2V5c18oZmFsc2UpIHt9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjph
bGwoKSB7IHJldHVybiBGZWF0dXJlcygpOyB9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjpzdHJpY3RN
b2RlKCkgewotICBGZWF0dXJlcyBmZWF0dXJlczsKLSAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18g
PSBmYWxzZTsKLSAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICBmZWF0dXJlcy5hbGxv
d0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IGZhbHNlOwotICBmZWF0dXJlcy5hbGxvd051bWVy
aWNLZXlzXyA9IGZhbHNlOwotICByZXR1cm4gZmVhdHVyZXM7Ci19Ci0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJl
YWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKLSAg
ICBpZiAoKmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCi0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci1SZWFkZXI6OlJlYWRlcigpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8o
KSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVf
KCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oRmVhdHVyZXM6OmFsbCgpKSwKLSAgICAg
IGNvbGxlY3RDb21tZW50c18oKSB7fQotCi1SZWFkZXI6OlJlYWRlcihjb25zdCBGZWF0dXJlcyYg
ZmVhdHVyZXMpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygp
LCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1l
bnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgewot
fQotCi1ib29sCi1SZWFkZXI6OnBhcnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFs
dWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGRvY3VtZW50XyA9IGRvY3VtZW50
OwotICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOwotICBjb25zdCBjaGFy
KiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsKLSAgcmV0dXJuIHBhcnNlKGJlZ2lu
LCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpwYXJzZShz
dGQ6OmlzdHJlYW0mIHNpbiwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0g
IC8vIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBiZWdpbihzaW4pOwotICAvLyBzdGQ6Omlz
dHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOwotICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1l
ZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKLSAgLy8gdGVtcGxhdGUgZnVu
Y3Rpb24uCi0KLSAgLy8gU2luY2Ugc3RkOjpzdHJpbmcgaXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRo
aXMgYXQgbGVhc3QgZG9lcyBub3QKLSAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHkuCi0gIHN0ZDo6
c3RyaW5nIGRvYzsKLSAgc3RkOjpnZXRsaW5lKHNpbiwgZG9jLCAoY2hhcilFT0YpOwotICByZXR1
cm4gcGFyc2UoZG9jLCByb290LCBjb2xsZWN0Q29tbWVudHMpOwotfQotCi1ib29sIFJlYWRlcjo6
cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogZW5kRG9jLAotICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29t
bWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8g
PSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERvYzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxl
Y3RDb21tZW50czsKLSAgY3VycmVudF8gPSBiZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwot
ICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xl
YXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5v
ZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFja0RlcHRoX2cgPSAwOyAgLy8gWWVzLCB0aGlzIGlz
IGJhZCBjb2RpbmcsIGJ1dCBvcHRpb25zIGFyZSBsaW1pdGVkLgotICBib29sIHN1Y2Nlc3NmdWwg
PSByZWFkVmFsdWUoKTsKLSAgVG9rZW4gdG9rZW47Ci0gIHNraXBDb21tZW50VG9rZW5zKHRva2Vu
KTsKLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQot
ICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7Ci0gIGlm
IChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFy
b290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBv
ZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAgICAvLyBpbiBk
b2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2VuLnN0YXJ0XyA9
IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFkZEVycm9yKAot
ICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkg
b3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9vbCBSZWFkZXI6
OnJlYWRWYWx1ZSgpIHsKLSAgLy8gVGhpcyBpcyBhIG5vbi1yZWVudHJhbnQgd2F5IHRvIHN1cHBv
cnQgYSBzdGFja0xpbWl0LiBUZXJyaWJsZSEKLSAgLy8gQnV0IHRoaXMgZGVwcmVjYXRlZCBjbGFz
cyBoYXMgYSBzZWN1cml0eSBwcm9ibGVtOiBCYWQgaW5wdXQgY2FuCi0gIC8vIGNhdXNlIGEgc2Vn
LWZhdWx0LiBUaGlzIHNlZW1zIGxpa2UgYSBmYWlyLCBiaW5hcnktY29tcGF0aWJsZSB3YXkKLSAg
Ly8gdG8gcHJldmVudCB0aGUgcHJvYmxlbS4KLSAgaWYgKHN0YWNrRGVwdGhfZyA+PSBzdGFja0xp
bWl0X2cpIHRocm93UnVudGltZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1
ZSgpLiIpOwotICArK3N0YWNrRGVwdGhfZzsKLQotICBUb2tlbiB0b2tlbjsKLSAgc2tpcENvbW1l
bnRUb2tlbnModG9rZW4pOwotICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOwotCi0gIGlmIChjb2xs
ZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkgewotICAgIGN1cnJlbnRW
YWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKLSAgICBj
b21tZW50c0JlZm9yZV8gPSAiIjsKLSAgfQotCi0gIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKLSAg
Y2FzZSB0b2tlbk9iamVjdEJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2Vu
KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7
Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5BcnJheUJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSBy
ZWFkQXJyYXkodG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJl
bnRfIC0gYmVnaW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51bWJlcjoKLSAgICBzdWNj
ZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2VuKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlblN0
cmluZzoKLSAgICBzdWNjZXNzZnVsID0gZGVjb2RlU3RyaW5nKHRva2VuKTsKLSAgICBicmVhazsK
LSAgY2FzZSB0b2tlblRydWU6Ci0gICAgewotICAgIFZhbHVlIHYodHJ1ZSk7Ci0gICAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9r
ZW5GYWxzZToKLSAgICB7Ci0gICAgVmFsdWUgdihmYWxzZSk7Ci0gICAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4u
c3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tl
bi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OdWxsOgot
ICAgIHsKLSAgICBWYWx1ZSB2OwotICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7
Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
Ci0gICAgfQotICAgIGJyZWFrOwotICBjYXNlIHRva2VuQXJyYXlTZXBhcmF0b3I6Ci0gIGNhc2Ug
dG9rZW5PYmplY3RFbmQ6Ci0gIGNhc2UgdG9rZW5BcnJheUVuZDoKLSAgICBpZiAoZmVhdHVyZXNf
LmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKSB7Ci0gICAgICAvLyAiVW4tcmVhZCIgdGhl
IGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1cnJlbnQgdmFsdWUgYXMgYSBudWxsCi0gICAg
ICAvLyB0b2tlbi4KLSAgICAgIGN1cnJlbnRfLS07Ci0gICAgICBWYWx1ZSB2OwotICAgICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEpOwotICAgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwotICAgICAgYnJlYWs7Ci0gICAgfSAvLyBF
bHNlLCBmYWxsIHRocm91Z2guLi4KLSAgZGVmYXVsdDoKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIHJldHVybiBhZGRFcnJvcigi
U3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsK
LSAgfQotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgbGFzdFZhbHVlRW5kXyA9IGN1
cnJlbnRfOwotICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7Ci0gIH0KLQotICAtLXN0
YWNrRGVwdGhfZzsKLSAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19Ci0KLXZvaWQgUmVhZGVyOjpza2lw
Q29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKLSAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1l
bnRzXykgewotICAgIGRvIHsKLSAgICAgIHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfSB3aGlsZSAo
dG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKLSAgfSBlbHNlIHsKLSAgICByZWFkVG9rZW4o
dG9rZW4pOwotICB9Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7
Ci0gIHNraXBTcGFjZXMoKTsKLSAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gIENoYXIgYyA9
IGdldE5leHRDaGFyKCk7Ci0gIGJvb2wgb2sgPSB0cnVlOwotICBzd2l0Y2ggKGMpIHsKLSAgY2Fz
ZSAneyc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgIGJyZWFrOwot
ICBjYXNlICd9JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOwotICAgIGJyZWFr
OwotICBjYXNlICdbJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXSc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOwotICAg
IGJyZWFrOwotICBjYXNlICciJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOwotICAg
IG9rID0gcmVhZFN0cmluZygpOwotICAgIGJyZWFrOwotICBjYXNlICcvJzoKLSAgICB0b2tlbi50
eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21tZW50KCk7Ci0gICAgYnJlYWs7
Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6Ci0gIGNhc2UgJzMnOgotICBj
YXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBjYXNlICc3JzoKLSAgY2FzZSAn
OCc6Ci0gIGNhc2UgJzknOgotICBjYXNlICctJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVt
YmVyOwotICAgIHJlYWROdW1iZXIoKTsKLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9r
ZW4udHlwZV8gPSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9
IG1hdGNoKCJhbHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5
cGVfID0gdG9rZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwot
ICBjYXNlICcsJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgJzonOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0
b3I7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgMDoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZT
dHJlYW07Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgb2sgPSBmYWxzZTsKLSAgICBicmVh
azsKLSAgfQotICBpZiAoIW9rKQotICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9r
ZW4uZW5kXyA9IGN1cnJlbnRfOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZWFkZXI6OnNr
aXBTcGFjZXMoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0g
KmN1cnJlbnRfOwotICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8
IGMgPT0gJ1xuJykKLSAgICAgICsrY3VycmVudF87Ci0gICAgZWxzZQotICAgICAgYnJlYWs7Ci0g
IH0KLX0KLQotYm9vbCBSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJu
TGVuZ3RoKSB7Ci0gIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKLSAgd2hpbGUgKGluZGV4
LS0pCi0gICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKLSAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKLSAgTG9jYXRpb24gY29tbWVudEJl
Z2luID0gY3VycmVudF8gLSAxOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIHN1
Y2Nlc3NmdWwgPSBmYWxzZTsKLSAgaWYgKGMgPT0gJyonKQotICAgIHN1Y2Nlc3NmdWwgPSByZWFk
Q1N0eWxlQ29tbWVudCgpOwotICBlbHNlIGlmIChjID09ICcvJykKLSAgICBzdWNjZXNzZnVsID0g
cmVhZENwcFN0eWxlQ29tbWVudCgpOwotICBpZiAoIXN1Y2Nlc3NmdWwpCi0gICAgcmV0dXJuIGZh
bHNlOwotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOwotICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250
YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgewotICAgICAgaWYgKGMg
IT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCi0gICAg
ICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7Ci0gICAgfQotCi0gICAgYWRk
Q29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOwotICB9Ci0gIHJldHVy
biB0cnVlOwotfQotCi1zdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKFJlYWRlcjo6TG9j
YXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIHN0ZDo6c3RyaW5nIG5vcm1h
bGl6ZWQ7Ci0gIG5vcm1hbGl6ZWQucmVzZXJ2ZShlbmQgLSBiZWdpbik7Ci0gIFJlYWRlcjo6TG9j
YXRpb24gY3VycmVudCA9IGJlZ2luOwotICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKLSAgICBj
aGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICdccicpIHsKLSAgICAgIGlmIChjdXJy
ZW50ICE9IGVuZCAmJiAqY3VycmVudCA9PSAnXG4nKQotICAgICAgICAgLy8gY29udmVydCBkb3Mg
RU9MCi0gICAgICAgICArK2N1cnJlbnQ7Ci0gICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKLSAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKLSAgICB9IGVsc2UgewotICAgICAgbm9ybWFsaXplZCArPSBj
OwotICAgIH0KLSAgfQotICByZXR1cm4gbm9ybWFsaXplZDsKLX0KLQotdm9pZAotUmVhZGVyOjph
ZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpz
dHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFj
ZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVf
ICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50
KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQot
fQotCi1ib29sIFJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
KicgJiYgKmN1cnJlbnRfID09ICcvJykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXRO
ZXh0Q2hhcigpID09ICcvJzsKLX0KLQotYm9vbCBSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQo
KSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENo
YXIoKTsKLSAgICBpZiAoYyA9PSAnXG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xy
JykgewotICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4g
YWRkQ29tbWVudC4KLSAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAn
XG4nKQotICAgICAgICBnZXROZXh0Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkg
RU9MLgotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi12b2lk
IFJlYWRlcjo6cmVhZE51bWJlcigpIHsKLSAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOwotICBj
aGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCi0g
IC8vIGludGVncmFsIHBhcnQKLSAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKLSAgLy8gZnJhY3Rpb25hbCBwYXJ0
Ci0gIGlmIChjID09ICcuJykgewotICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgLy8gZXhwb25lbnRpYWwgcGFydAot
ICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBl
bmRfID8gKnArKyA6IDA7Ci0gICAgaWYgKGMgPT0gJysnIHx8IGMgPT0gJy0nKQotICAgICAgYyA9
IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIHdoaWxlIChjID49ICcwJyAm
JiBjIDw9ICc5JykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsK
LSAgfQotfQotCi1ib29sIFJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAg
d2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBp
ZiAoYyA9PSAnXFwnKQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICci
JykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotYm9vbCBSZWFk
ZXI6OnJlYWRPYmplY3QoVG9rZW4mIHRva2VuU3RhcnQpIHsKLSAgVG9rZW4gdG9rZW5OYW1lOwot
ICBzdGQ6OnN0cmluZyBuYW1lOwotICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKLSAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKLSAgd2hpbGUgKHJlYWRUb2tlbih0b2tl
bk5hbWUpKSB7Ci0gICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKHRv
a2VuTmFtZS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCi0gICAgICBp
bml0aWFsVG9rZW5PayA9IHJlYWRUb2tlbih0b2tlbk5hbWUpOwotICAgIGlmICghaW5pdGlhbFRv
a2VuT2spCi0gICAgICBicmVhazsKLSAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2Jq
ZWN0RW5kICYmIG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBuYW1lID0gIiI7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmlu
ZykgewotICAgICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKLSAgICAgICAg
cmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOwotICAgIH0gZWxzZSBpZiAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNL
ZXlzXykgewotICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKLSAgICAgIGlmICghZGVjb2RlTnVtYmVy
KHRva2VuTmFtZSwgbnVtYmVyTmFtZSkpCi0gICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHRva2VuT2JqZWN0RW5kKTsKLSAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIFRva2VuIGNvbG9uOwotICAg
IGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFy
YXRvcikgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAiTWlz
c2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5k
KTsKLSAgICB9Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07Ci0gICAg
bm9kZXNfLnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9k
ZXNfLnBvcCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1
cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7Ci0KLSAgICBUb2tlbiBjb21tYTsK
LSAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKLSAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRv
a2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKLSAg
ICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkpIHsKLSAgICAgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3Qg
ZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RFbmQpOwotICAgIH0KLSAgICBib29sIGZp
bmFsaXplVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29t
bWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCi0gICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9r
ZW4oY29tbWEpOwotICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKLSAgICAg
IHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAi
TWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLCB0b2tlbk9iamVj
dEVuZCk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQXJyYXkoVG9rZW4mIHRva2VuU3RhcnQpIHsK
LSAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
aW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRf
IC0gYmVnaW5fKTsKLSAgc2tpcFNwYWNlcygpOwotICBpZiAoKmN1cnJlbnRfID09ICddJykgLy8g
ZW1wdHkgYXJyYXkKLSAgewotICAgIFRva2VuIGVuZEFycmF5OwotICAgIHJlYWRUb2tlbihlbmRB
cnJheSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgaW50IGluZGV4ID0gMDsKLSAgZm9yICg7
OykgewotICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOwotICAgIG5v
ZGVzXy5wdXNoKCZ2YWx1ZSk7Ci0gICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgIG5vZGVz
Xy5wb3AoKTsKLSAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgcmV0dXJu
IHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7Ci0KLSAgICBUb2tlbiB0b2tlbjsKLSAg
ICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgotICAgIG9r
ID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21t
ZW50ICYmIG9rKSB7Ci0gICAgICBvayA9IHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfQotICAgIGJv
b2wgYmFkVG9rZW5UeXBlID0KLSAgICAgICAgKHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBh
cmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCk7Ci0gICAgaWYgKCFvayB8fCBi
YWRUb2tlblR5cGUpIHsKLSAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAg
ICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tl
bkFycmF5RW5kKTsKLSAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQp
Ci0gICAgICBicmVhazsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRl
Y29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKLSAgVmFsdWUgZGVjb2RlZDsKLSAgaWYgKCFkZWNv
ZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQotICAgIHJldHVybiBmYWxzZTsKLSAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFk
ZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7Ci0gIC8vIEF0
dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBp
cwotICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50
ZWdlciB0aGVuCi0gIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgotICBMb2Nh
dGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwotICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVu
dCA9PSAnLSc7Ci0gIGlmIChpc05lZ2F0aXZlKQotICAgICsrY3VycmVudDsKLSAgLy8gVE9ETzog
SGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBn
ZXQgcmlkIG9mIHRoZW0uCi0gIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQot
ICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdElu
dCkgKyAxCi0gICAgICAgICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OwotICBWYWx1
ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5kXykg
ewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykK
LSAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgIFZhbHVlOjpV
SW50IGRpZ2l0KGMgLSAnMCcpOwotICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKLSAgICAg
IC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJv
dW5kZWQgZG93bikuIElmCi0gICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUg
bGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFuZAotICAgICAgLy8gYykgaXQncyBz
bWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCi0g
ICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQg
b3ZlcmZsb3cuCi0gICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVudCAhPSB0b2tl
bi5lbmRfIHx8Ci0gICAgICAgICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkgewotICAg
ICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKLSAgICAgIH0KLSAgICB9
Ci0gICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0gIH0KLSAgaWYgKGlzTmVnYXRpdmUg
JiYgdmFsdWUgPT0gbWF4SW50ZWdlclZhbHVlKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6bWluTGFy
Z2VzdEludDsKLSAgZWxzZSBpZiAoaXNOZWdhdGl2ZSkKLSAgICBkZWNvZGVkID0gLVZhbHVlOjpM
YXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50
KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7
Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwot
ICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwot
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQp
IHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0
XywgdG9rZW4uZW5kXyk7Ci0gIHN0ZDo6aXN0cmluZ3N0cmVhbSBpcyhidWZmZXIpOwotICBpZiAo
IShpcyA+PiB2YWx1ZSkpCi0gICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5nKHRv
a2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKwotICAgICAgICAgICAgICAgICAgICAgICAgIicgaXMg
bm90IGEgbnVtYmVyLiIsCi0gICAgICAgICAgICAgICAgICAgIHRva2VuKTsKLSAgZGVjb2RlZCA9
IHZhbHVlOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhU
b2tlbiYgdG9rZW4pIHsKLSAgc3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7Ci0gIGlmICghZGVj
b2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCi0gICAgcmV0dXJuIGZhbHNlOwotICBW
YWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8g
LSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKSB7Ci0gIGRlY29kZWQucmVzZXJ2
ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7Ci0gIExvY2F0aW9uIGN1cnJlbnQgPSB0
b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJwotICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRf
IC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCi0gIHdoaWxlIChjdXJyZW50ICE9IGVu
ZCkgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJyInKQotICAgICAg
YnJlYWs7Ci0gICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7Ci0gICAgICBpZiAoY3VycmVudCA9PSBl
bmQpCi0gICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0
cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAgIENoYXIgZXNjYXBlID0gKmN1cnJlbnQrKzsK
LSAgICAgIHN3aXRjaCAoZXNjYXBlKSB7Ci0gICAgICBjYXNlICciJzoKLSAgICAgICAgZGVjb2Rl
ZCArPSAnIic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnLyc6Ci0gICAgICAgIGRlY29k
ZWQgKz0gJy8nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgZGVj
b2RlZCArPSAnXFwnOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2InOgotICAgICAgICBk
ZWNvZGVkICs9ICdcYic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnZic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJ1xmJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICduJzoKLSAgICAg
ICAgZGVjb2RlZCArPSAnXG4nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ3InOgotICAg
ICAgICBkZWNvZGVkICs9ICdccic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAndCc6Ci0g
ICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICd1Jzog
ewotICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAgICAgaWYgKCFkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQotICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7
Ci0gICAgICB9IGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGFkZEVycm9y
KCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgZGVjb2RlZCArPSBjOwotICAgIH0KLSAgfQotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4m
IHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNv
ZGUpIHsKLQotICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVu
dCwgZW5kLCB1bmljb2RlKSkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIGlmICh1bmljb2RlID49IDB4
RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgewotICAgIC8vIHN1cnJvZ2F0ZSBwYWlycwotICAg
IGlmIChlbmQgLSBjdXJyZW50IDwgNikKLSAgICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAg
ICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1
cnJvZ2F0ZSBwYWlyLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7Ci0g
ICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7Ci0gICAgaWYgKCooY3VycmVudCsrKSA9PSAn
XFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKLSAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNj
YXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpcikpIHsKLSAgICAg
ICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsgKHN1cnJv
Z2F0ZVBhaXIgJiAweDNGRik7Ci0gICAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gZWxzZQotICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3RpbmcgYW5vdGhlciBcXHUg
dG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKLSAgICAgICAgICAgICAgICAgICAg
ICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKLSAgICAgICAgICAgICAgICAgICAgICB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50KTsKLSAgfQotICByZXR1cm4gdHJ1ZTsK
LX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9r
ZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBj
dXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlv
biBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSkgewotICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCi0gICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzog
Zm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKLSAgICAgICAgdG9rZW4sCi0gICAgICAgIGN1cnJlbnQp
OwotICB1bmljb2RlID0gMDsKLSAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5k
ZXgpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIHVuaWNvZGUgKj0gMTY7Ci0gICAg
aWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgICAgdW5pY29kZSArPSBjIC0gJzAnOwotICAg
IGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQotICAgICAgdW5pY29kZSArPSBjIC0gJ2En
ICsgMTA7Ci0gICAgZWxzZSBpZiAoYyA+PSAnQScgJiYgYyA8PSAnRicpCi0gICAgICB1bmljb2Rl
ICs9IGMgLSAnQScgKyAxMDsKLSAgICBlbHNlCi0gICAgICByZXR1cm4gYWRkRXJyb3IoCi0gICAg
ICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFs
IGRpZ2l0IGV4cGVjdGVkLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7
Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wKLVJlYWRlcjo6YWRkRXJyb3IoY29uc3Qg
c3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEpIHsKLSAg
RXJyb3JJbmZvIGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8g
PSBtZXNzYWdlOwotICBpbmZvLmV4dHJhXyA9IGV4dHJhOwotICBlcnJvcnNfLnB1c2hfYmFjayhp
bmZvKTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFJlYWRlcjo6cmVjb3ZlckZyb21FcnJv
cihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKLSAgaW50IGVycm9yQ291bnQgPSBpbnQoZXJy
b3JzXy5zaXplKCkpOwotICBUb2tlbiBza2lwOwotICBmb3IgKDs7KSB7Ci0gICAgaWYgKCFyZWFk
VG9rZW4oc2tpcCkpCi0gICAgICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsgLy8gZGlzY2Fy
ZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5Ci0gICAgaWYgKHNraXAudHlwZV8gPT0gc2tpcFVu
dGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtKQotICAgICAgYnJlYWs7
Ci0gIH0KLSAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsK
LSAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOwotICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcihz
a2lwVW50aWxUb2tlbik7Ci19Ci0KLVZhbHVlJiBSZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0
dXJuICoobm9kZXNfLnRvcCgpKTsgfQotCi1SZWFkZXI6OkNoYXIgUmVhZGVyOjpnZXROZXh0Q2hh
cigpIHsKLSAgaWYgKGN1cnJlbnRfID09IGVuZF8pCi0gICAgcmV0dXJuIDA7Ci0gIHJldHVybiAq
Y3VycmVudF8rKzsKLX0KLQotdm9pZCBSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50JiBsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNv
bHVtbikgY29uc3QgewotICBMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW5fOwotICBMb2NhdGlvbiBs
YXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgbGluZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwg
bG9jYXRpb24gJiYgY3VycmVudCAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsK
LSAgICBpZiAoYyA9PSAnXHInKSB7Ci0gICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKLSAgICAg
ICAgKytjdXJyZW50OwotICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICArK2xp
bmU7Ci0gICAgfSBlbHNlIGlmIChjID09ICdcbicpIHsKLSAgICAgIGxhc3RMaW5lU3RhcnQgPSBj
dXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0KLSAgfQotICAvLyBjb2x1bW4gJiBsaW5lIHN0
YXJ0IGF0IDEKLSAgY29sdW1uID0gaW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOwot
ICArK2xpbmU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7Ci0gIGludCBsaW5lLCBjb2x1bW47Ci0gIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKLSAgY2hhciBi
dWZmZXJbMTggKyAxNiArIDE2ICsgMV07Ci0gIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZl
ciksICJMaW5lICVkLCBDb2x1bW4gJWQiLCBsaW5lLCBjb2x1bW4pOwotICByZXR1cm4gYnVmZmVy
OwotfQotCi1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBs
b2NhdGlvbikgY29uc3QgewotICAgICAgIHN0ZDo6c3RyaW5nIHNuaXBwZXQgPSAiIjsKLSAgICAg
ICBzdGQ6OmlzdHJpbmdzdHJlYW0gZG9jU3RyZWFtKGRvY3VtZW50Xyk7Ci0gICAgICAgaW50IGxp
biwgY29sOwotICAgICAgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluLCBj
b2wpOwotICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7Ci0gICAgICAgZm9yIChpbnQgaT0xOyBpPGxp
bisyICYmIHN0ZDo6Z2V0bGluZShkb2NTdHJlYW0sIGxpbmUpOyBpKyspCi0gICAgICAgewotICAg
ICAgICAgICAgICBpZiAobGluLWkgPCAyKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICBzbmlwcGV0ICs9ICIgICIgKyBzdGQ6OnRvX3N0cmluZyhpKSArICI6ICIgKyBsaW5l
ICsgIlxuIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gc25pcHBl
dDsKLX0KLQotLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmls
aXR5Ci1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0
IHsKLSAgcmV0dXJuIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKLX0KLQotc3RkOjpzdHJp
bmcgUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgICAgZm9ybWF0
dGVkTWVzc2FnZSArPSBnZXRMb2NhdGlvblNuaXBwZXQoZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAi
XG4iOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxu
IjsKLSAgICBpZiAoZXJyb3IuZXh0cmFfKQotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQotICAg
ICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8pICsg
IiBmb3IgZGV0YWlsLlxuIjsKLSAgfQotICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKLX0KLQot
c3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJl
ZEVycm9ycygpIGNvbnN0IHsKLSAgc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+
IGFsbEVycm9yczsKLSAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJv
cnNfLmJlZ2luKCk7Ci0gICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOwotICAgICAgICsr
aXRFcnJvcikgewotICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKLSAgICBS
ZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0
X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsKLSAgICBzdHJ1Y3R1cmVkLm9m
ZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQu
bWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOwotICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0
dXJlZCk7Ci0gIH0KLSAgcmV0dXJuIGFsbEVycm9yczsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hF
cnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7Ci0g
IHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOwotICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFy
dCgpID4gbGVuZ3RoCi0gICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIFRva2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJy
b3I7Ci0gIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0g
IHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKLSAgRXJyb3JJbmZv
IGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdl
OwotICBpbmZvLmV4dHJhXyA9IDA7Ci0gIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOwotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoCi0gICAgfHwg
ZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIFRv
a2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLnN0YXJ0XyA9
IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0gIHRva2VuLmVuZF8gPSBiZWdpbl8g
KyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5mbzsKLSAgaW5mby50b2tl
bl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0gIGluZm8uZXh0cmFfID0g
YmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5m
byk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIFJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKLSAg
cmV0dXJuICFlcnJvcnNfLnNpemUoKTsKLX0KLQotLy8gZXhhY3QgY29weSBvZiBGZWF0dXJlcwot
Y2xhc3MgT3VyRmVhdHVyZXMgewotcHVibGljOgotICBzdGF0aWMgT3VyRmVhdHVyZXMgYWxsKCk7
Ci0gIGJvb2wgYWxsb3dDb21tZW50c187Ci0gIGJvb2wgc3RyaWN0Um9vdF87Ci0gIGJvb2wgYWxs
b3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187Ci0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci0g
IGJvb2wgYWxsb3dTaW5nbGVRdW90ZXNfOwotICBib29sIGZhaWxJZkV4dHJhXzsKLSAgYm9vbCBy
ZWplY3REdXBLZXlzXzsKLSAgYm9vbCBhbGxvd1NwZWNpYWxGbG9hdHNfOwotICBpbnQgc3RhY2tM
aW1pdF87Ci19OyAgLy8gT3VyRmVhdHVyZXMKLQotLy8gZXhhY3QgY29weSBvZiBJbXBsZW1lbnRh
dGlvbiBvZiBjbGFzcyBGZWF0dXJlcwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotT3VyRmVhdHVyZXMgT3VyRmVhdHVyZXM6OmFsbCgpIHsgcmV0dXJuIE91ckZlYXR1cmVz
KCk7IH0KLQotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgUmVhZGVyCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBleGFjdCBjb3B5IG9mIFJlYWRlciwgcmVuYW1l
ZCB0byBPdXJSZWFkZXIKLWNsYXNzIE91clJlYWRlciB7Ci1wdWJsaWM6Ci0gIHR5cGVkZWYgY2hh
ciBDaGFyOwotICB0eXBlZGVmIGNvbnN0IENoYXIqIExvY2F0aW9uOwotICBzdHJ1Y3QgU3RydWN0
dXJlZEVycm9yIHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRf
bGltaXQ7Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICBPdXJSZWFkZXIoT3Vy
RmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsKLSAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBiZWdp
bkRvYywKLSAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCi0gICAgICAgICAgICAgVmFs
dWUmIHJvb3QsCi0gICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKLSAg
c3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OwotICBzdGQ6OnZl
Y3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLSAgYm9v
bCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSk7Ci0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0gIGJvb2wgZ29vZCgpIGNvbnN0Owot
Ci1wcml2YXRlOgotICBPdXJSZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCi0g
IHZvaWQgb3BlcmF0b3I9KE91clJlYWRlciBjb25zdCYpOyAgLy8gbm8gaW1wbAotCi0gIGVudW0g
VG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKLSAgICB0b2tlbk9iamVjdEJl
Z2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRva2VuQXJyYXlCZWdpbiwKLSAgICB0b2tl
bkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAgIHRva2VuTnVtYmVyLAotICAgIHRva2Vu
VHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2VuTnVsbCwKLSAgICB0b2tlbk5hTiwKLSAg
ICB0b2tlblBvc0luZiwKLSAgICB0b2tlbk5lZ0luZiwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9y
LAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tl
bkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9rZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBl
IHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9Owot
Ci0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAg
c3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAgTG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5
cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihU
b2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBTcGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAg
Ym9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwotICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
LSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIGJvb2wgcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7Ci0g
IGJvb2wgcmVhZE51bWJlcihib29sIGNoZWNrSW5mKTsKLSAgYm9vbCByZWFkVmFsdWUoKTsKLSAg
Ym9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0
b2tlbik7Ci0gIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgZGVjb2Rl
TnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOwotICBib29sIGRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6
c3RyaW5nJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKTsKLSAg
Ym9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wg
ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uIGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSk7Ci0gIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2Vu
JiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2Rl
KTsKLSAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRv
a2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOwotICBib29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKTsKLSAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsK
LSAgdm9pZCBza2lwVW50aWxTcGFjZSgpOwotICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7Ci0gIENo
YXIgZ2V0TmV4dENoYXIoKTsKLSAgdm9pZAotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OwotICBzdGQ6OnN0
cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0Owot
ICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBs
YWNlbWVudCBwbGFjZW1lbnQpOwotICB2b2lkIHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tl
bik7Ci0KLSAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7Ci0gIE5vZGVzIG5vZGVz
XzsKLSAgRXJyb3JzIGVycm9yc187Ci0gIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKLSAgTG9jYXRp
b24gYmVnaW5fOwotICBMb2NhdGlvbiBlbmRfOwotICBMb2NhdGlvbiBjdXJyZW50XzsKLSAgTG9j
YXRpb24gbGFzdFZhbHVlRW5kXzsKLSAgVmFsdWUqIGxhc3RWYWx1ZV87Ci0gIHN0ZDo6c3RyaW5n
IGNvbW1lbnRzQmVmb3JlXzsKLSAgaW50IHN0YWNrRGVwdGhfOwotCi0gIE91ckZlYXR1cmVzIGNv
bnN0IGZlYXR1cmVzXzsKLSAgYm9vbCBjb2xsZWN0Q29tbWVudHNfOwotfTsgIC8vIE91clJlYWRl
cgotCi0vLyBjb21wbGV0ZSBjb3B5IG9mIFJlYWQgaW1wbCwgZm9yIE91clJlYWRlcgotCi1PdXJS
ZWFkZXI6Ok91clJlYWRlcihPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCi0gICAgOiBlcnJv
cnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFs
dWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLAotICAgICAg
c3RhY2tEZXB0aF8oMCksCi0gICAgICBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVu
dHNfKCkgewotfQotCi1ib29sIE91clJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2Ms
Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgICAg
ICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
KSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1l
bnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8gPSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERv
YzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKLSAgY3VycmVudF8gPSBi
ZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwotICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVu
dHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xlYXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1w
dHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5vZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFj
a0RlcHRoXyA9IDA7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOwotICBUb2tlbiB0
b2tlbjsKLSAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOwotICBpZiAoZmVhdHVyZXNfLmZhaWxJ
ZkV4dHJhXykgewotICAgIGlmICh0b2tlbi50eXBlXyAhPSB0b2tlbkVycm9yICYmIHRva2VuLnR5
cGVfICE9IHRva2VuRW5kT2ZTdHJlYW0pIHsKLSAgICAgIGFkZEVycm9yKCJFeHRyYSBub24td2hp
dGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2VuKTsKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gIH0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5l
bXB0eSgpKQotICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRl
cik7Ci0gIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJh
eSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0
byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAg
ICAvLyBpbiBkb2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2Vu
LnN0YXJ0XyA9IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFk
ZEVycm9yKAotICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9v
bCBPdXJSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKLSAgaWYgKHN0YWNrRGVwdGhfID49IGZlYXR1cmVz
Xy5zdGFja0xpbWl0XykgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4g
cmVhZFZhbHVlKCkuIik7Ci0gICsrc3RhY2tEZXB0aF87Ci0gIFRva2VuIHRva2VuOwotICBza2lw
Q29tbWVudFRva2Vucyh0b2tlbik7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7Ci0KLSAgaWYg
KGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOwot
ICAgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOwotICB9Ci0KLSAgc3dpdGNoICh0b2tlbi50eXBlXykg
ewotICBjYXNlIHRva2VuT2JqZWN0QmVnaW46Ci0gICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3Qo
dG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVn
aW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbkFycmF5QmVnaW46Ci0gICAgc3VjY2Vzc2Z1
bCA9IHJlYWRBcnJheSh0b2tlbik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQo
Y3VycmVudF8gLSBiZWdpbl8pOwotICAgIGJyZWFrOwotICBjYXNlIHRva2VuTnVtYmVyOgotICAg
IHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOwotICAgIGJyZWFrOwotICBjYXNlIHRv
a2VuU3RyaW5nOgotICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOwotICAgIGJy
ZWFrOwotICBjYXNlIHRva2VuVHJ1ZToKLSAgICB7Ci0gICAgVmFsdWUgdih0cnVlKTsKLSAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2Fz
ZSB0b2tlbkZhbHNlOgotICAgIHsKLSAgICBWYWx1ZSB2KGZhbHNlKTsKLSAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51
bGw6Ci0gICAgewotICAgIFZhbHVlIHY7Ci0gICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
dik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OYU46Ci0gICAgewotICAgIFZh
bHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2Ug
dG9rZW5Qb3NJbmY6Ci0gICAgewotICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwot
ICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk5lZ0luZjoKLSAgICB7Ci0gICAgVmFsdWUg
digtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFy
dCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tl
bkFycmF5U2VwYXJhdG9yOgotICBjYXNlIHRva2VuT2JqZWN0RW5kOgotICBjYXNlIHRva2VuQXJy
YXlFbmQ6Ci0gICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykg
ewotICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJy
ZW50IHZhbHVlIGFzIGEgbnVsbAotICAgICAgLy8gdG9rZW4uCi0gICAgICBjdXJyZW50Xy0tOwot
ICAgICAgVmFsdWUgdjsKLSAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwotICAg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsK
LSAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsK
LSAgICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSwgZmFsbCB0aHJvdWdoIC4uLgotICBkZWZhdWx0
OgotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2lu
Xyk7Ci0gICAgcmV0dXJuIGFkZEVycm9yKCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3Ig
YXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4pOwotICB9Ci0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18p
IHsKLSAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87Ci0gICAgbGFzdFZhbHVlXyA9ICZjdXJy
ZW50VmFsdWUoKTsKLSAgfQotCi0gIC0tc3RhY2tEZXB0aF87Ci0gIHJldHVybiBzdWNjZXNzZnVs
OwotfQotCi12b2lkIE91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7
Ci0gIGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKLSAgICBkbyB7Ci0gICAgICByZWFk
VG9rZW4odG9rZW4pOwotICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7
Ci0gIH0gZWxzZSB7Ci0gICAgcmVhZFRva2VuKHRva2VuKTsKLSAgfQotfQotCi1ib29sIE91clJl
YWRlcjo6cmVhZFRva2VuKFRva2VuJiB0b2tlbikgewotICBza2lwU3BhY2VzKCk7Ci0gIHRva2Vu
LnN0YXJ0XyA9IGN1cnJlbnRfOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIG9r
ID0gdHJ1ZTsKLSAgc3dpdGNoIChjKSB7Ci0gIGNhc2UgJ3snOgotICAgIHRva2VuLnR5cGVfID0g
dG9rZW5PYmplY3RCZWdpbjsKLSAgICBicmVhazsKLSAgY2FzZSAnfSc6Ci0gICAgdG9rZW4udHlw
ZV8gPSB0b2tlbk9iamVjdEVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnWyc6Ci0gICAgdG9rZW4u
dHlwZV8gPSB0b2tlbkFycmF5QmVnaW47Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ10nOgotICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5BcnJheUVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnIic6Ci0gICAg
dG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXCcnOgotICAgIGlmIChmZWF0dXJlc18uYWxsb3dTaW5nbGVRdW90ZXNf
KSB7Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmdT
aW5nbGVRdW90ZSgpOwotICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSBjb250aW51ZQotICBjYXNl
ICcvJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21t
ZW50KCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6
Ci0gIGNhc2UgJzMnOgotICBjYXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBj
YXNlICc3JzoKLSAgY2FzZSAnOCc6Ci0gIGNhc2UgJzknOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdW1iZXI7Ci0gICAgcmVhZE51bWJlcihmYWxzZSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJy0n
OgotICAgIGlmIChyZWFkTnVtYmVyKHRydWUpKSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2Vu
TnVtYmVyOwotICAgIH0gZWxzZSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVnSW5mOwot
ICAgICAgb2sgPSBmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgibmZpbml0
eSIsIDcpOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9rZW4udHlwZV8g
PSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9IG1hdGNoKCJh
bHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwotICBjYXNlICdO
JzoKLSAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKLSAgICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5OYU47Ci0gICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnSSc6Ci0g
ICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7Ci0gICAgICB0b2tlbi50eXBl
XyA9IHRva2VuUG9zSW5mOwotICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnLCc6
Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOwotICAgIGJyZWFrOwotICBj
YXNlICc6JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOwotICAgIGJy
ZWFrOwotICBjYXNlIDA6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOwotICAg
IGJyZWFrOwotICBkZWZhdWx0OgotICAgIG9rID0gZmFsc2U7Ci0gICAgYnJlYWs7Ci0gIH0KLSAg
aWYgKCFvaykKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLmVuZF8gPSBj
dXJyZW50XzsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgT3VyUmVhZGVyOjpza2lwU3BhY2Vz
KCkgewotICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50
XzsKLSAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdc
bicpCi0gICAgICArK2N1cnJlbnRfOwotICAgIGVsc2UKLSAgICAgIGJyZWFrOwotICB9Ci19Ci0K
LWJvb2wgT3VyUmVhZGVyOjptYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCkgewotICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gIHdoaWxlIChpbmRleC0tKQot
ICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0pCi0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIE91clJlYWRlcjo6cmVhZENvbW1lbnQoKSB7Ci0gIExvY2F0aW9uIGNvbW1lbnRCZWdp
biA9IGN1cnJlbnRfIC0gMTsKLSAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgYm9vbCBzdWNj
ZXNzZnVsID0gZmFsc2U7Ci0gIGlmIChjID09ICcqJykKLSAgICBzdWNjZXNzZnVsID0gcmVhZENT
dHlsZUNvbW1lbnQoKTsKLSAgZWxzZSBpZiAoYyA9PSAnLycpCi0gICAgc3VjY2Vzc2Z1bCA9IHJl
YWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgaWYgKCFzdWNjZXNzZnVsKQotICAgIHJldHVybiBmYWxz
ZTsKLQotICBpZiAoY29sbGVjdENvbW1lbnRzXykgewotICAgIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50ID0gY29tbWVudEJlZm9yZTsKLSAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFp
bnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKLSAgICAgIGlmIChjICE9
ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQotICAgICAg
ICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOwotICAgIH0KLQotICAgIGFkZENv
bW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50KTsKLSAgfQotICByZXR1cm4g
dHJ1ZTsKLX0KLQotdm9pZAotT3VyUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBM
b2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xs
ZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxp
emVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1l
TGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVfICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNl
dENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50
c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZENT
dHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykK
LSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKLX0KLQot
Ym9vbCBPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
XG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewotICAgICAgLy8gQ29uc3Vt
ZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KLSAgICAgIGlm
IChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAnXG4nKQotICAgICAgICBnZXROZXh0
Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkgRU9MLgotICAgICAgYnJlYWs7Ci0g
ICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZE51bWJl
cihib29sIGNoZWNrSW5mKSB7Ci0gIGNvbnN0IGNoYXIgKnAgPSBjdXJyZW50XzsKLSAgaWYgKGNo
ZWNrSW5mICYmIHAgIT0gZW5kXyAmJiAqcCA9PSAnSScpIHsKLSAgICBjdXJyZW50XyA9ICsrcDsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBh
bHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgotICAvLyBpbnRlZ3JhbCBwYXJ0Ci0gIHdoaWxlIChj
ID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnAr
KyA6IDA7Ci0gIC8vIGZyYWN0aW9uYWwgcGFydAotICBpZiAoYyA9PSAnLicpIHsKLSAgICBjID0g
KGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gICAgd2hpbGUgKGMgPj0gJzAnICYm
IGMgPD0gJzknKQotICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwot
ICB9Ci0gIC8vIGV4cG9uZW50aWFsIHBhcnQKLSAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7
Ci0gICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIGlmIChjID09
ICcrJyB8fCBjID09ICctJykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci1ib29s
IE91clJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnXFwn
KQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICciJykKLSAgICAgIGJy
ZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotCi1ib29sIE91clJlYWRlcjo6cmVh
ZFN0cmluZ1NpbmdsZVF1b3RlKCkgewotICBDaGFyIGMgPSAwOwotICB3aGlsZSAoY3VycmVudF8g
IT0gZW5kXykgewotICAgIGMgPSBnZXROZXh0Q2hhcigpOwotICAgIGlmIChjID09ICdcXCcpCi0g
ICAgICBnZXROZXh0Q2hhcigpOwotICAgIGVsc2UgaWYgKGMgPT0gJ1wnJykKLSAgICAgIGJyZWFr
OwotICB9Ci0gIHJldHVybiBjID09ICdcJyc7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpyZWFkT2Jq
ZWN0KFRva2VuJiB0b2tlblN0YXJ0KSB7Ci0gIFRva2VuIHRva2VuTmFtZTsKLSAgc3RkOjpzdHJp
bmcgbmFtZTsKLSAgVmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKGluaXQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0
YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgewot
ICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOwotICAgIHdoaWxlICh0b2tlbk5hbWUudHlw
ZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tlbk9rKQotICAgICAgaW5pdGlhbFRva2Vu
T2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKLSAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQotICAg
ICAgYnJlYWs7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBu
YW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgbmFt
ZSA9ICIiOwotICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKLSAgICAg
IGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCi0gICAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLSAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50
eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKLSAg
ICAgIFZhbHVlIG51bWJlck5hbWU7Ci0gICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUs
IG51bWJlck5hbWUpKQotICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVj
dEVuZCk7Ci0gICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOwotICAgIH0gZWxzZSB7
Ci0gICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBUb2tlbiBjb2xvbjsKLSAgICBpZiAoIXJlYWRU
b2tlbihjb2xvbikgfHwgY29sb24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKLSAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJzonIGFm
dGVyIG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQot
ICAgIGlmIChuYW1lLmxlbmd0aCgpID49ICgxVTw8MzApKSB0aHJvd1J1bnRpbWVFcnJvcigia2V5
bGVuZ3RoID49IDJeMzAiKTsKLSAgICBpZiAoZmVhdHVyZXNfLnJlamVjdER1cEtleXNfICYmIGN1
cnJlbnRWYWx1ZSgpLmlzTWVtYmVyKG5hbWUpKSB7Ci0gICAgICBzdGQ6OnN0cmluZyBtc2cgPSAi
RHVwbGljYXRlIGtleTogJyIgKyBuYW1lICsgIiciOwotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICBtc2csIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOwotICAg
IH0KLSAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKLSAgICBub2Rlc18u
cHVzaCgmdmFsdWUpOwotICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICBub2Rlc18ucG9w
KCk7Ci0gICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLQotICAgIFRva2VuIGNvbW1hOwotICAgIGlm
ICghcmVhZFRva2VuKGNvbW1hKSB8fAotICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmpl
Y3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgotICAgICAgICAg
Y29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJh
dGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQotICAgIGJvb2wgZmluYWxpemVU
b2tlbk9rID0gdHJ1ZTsKLSAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYm
IGZpbmFsaXplVG9rZW5PaykKLSAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21t
YSk7Ci0gICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQotICAgICAgcmV0dXJu
IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICJNaXNzaW5n
ICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsK
LX0KLQotYm9vbCBPdXJSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkgewotICBW
YWx1ZSBpbml0KGFycmF5VmFsdWUpOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0
KTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBi
ZWdpbl8pOwotICBza2lwU3BhY2VzKCk7Ci0gIGlmICgqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0
eSBhcnJheQotICB7Ci0gICAgVG9rZW4gZW5kQXJyYXk7Ci0gICAgcmVhZFRva2VuKGVuZEFycmF5
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotICBpbnQgaW5kZXggPSAwOwotICBmb3IgKDs7KSB7
Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107Ci0gICAgbm9kZXNf
LnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9kZXNfLnBv
cCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1cm4gcmVj
b3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKLQotICAgIFRva2VuIHRva2VuOwotICAgIC8v
IEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCi0gICAgb2sgPSBy
ZWFkVG9rZW4odG9rZW4pOwotICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYgb2spIHsKLSAgICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB9Ci0gICAgYm9vbCBi
YWRUb2tlblR5cGUgPQotICAgICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRv
ciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKLSAgICBpZiAoIW9rIHx8IGJhZFRv
a2VuVHlwZSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAi
TWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRva2VuQXJy
YXlFbmQpOwotICAgIH0KLSAgICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVuZCkKLSAg
ICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVj
b2RlTnVtYmVyKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29k
ZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJl
YWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgLy8g
QXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVy
IGlzCi0gIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBp
bnRlZ2VyIHRoZW4KLSAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCi0gIExv
Y2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87Ci0gIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJy
ZW50ID09ICctJzsKLSAgaWYgKGlzTmVnYXRpdmUpCi0gICAgKytjdXJyZW50OwotICAvLyBUT0RP
OiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9y
IGdldCByaWQgb2YgdGhlbS4KLSAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9
Ci0gICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2Vz
dEludCkKLSAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKLSAgVmFsdWU6
Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKLSAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRfKSB7
Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQot
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7Ci0gICAgVmFsdWU6OlVJ
bnQgZGlnaXQoYyAtICcwJyk7Ci0gICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgewotICAgICAg
Ly8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91
bmRlZCBkb3duKS4gSWYKLSAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBs
aW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCi0gICAgICAvLyBjKSBpdCdzIHNt
YWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KLSAg
ICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBv
dmVyZmxvdy4KLSAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRva2Vu
LmVuZF8gfHwKLSAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgICAgfQotICAgIH0K
LSAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKLSAgfQotICBpZiAoaXNOZWdhdGl2ZSkK
LSAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFs
dWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBW
YWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0g
IHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0
b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVj
b2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChk
ZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJl
Z2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91Ymxl
KFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAg
Y29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKLSAgaW50IGNvdW50OwotICBpbnQgbGVuZ3RoID0g
aW50KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8pOwotCi0gIC8vIFNhbml0eSBjaGVjayB0byBh
dm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCi0gIGlmIChsZW5ndGggPCAwKSB7Ci0gICAg
cmV0dXJuIGFkZEVycm9yKCJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwgdG9rZW4pOwot
ICB9Ci0KLSAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQg
Y29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KLSAgLy8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBo
YXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUKLSAgLy8gaW5m
bzoKLSAgLy8KLSAgLy8gICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFj
LyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRpYmls
aXRpZXMuaHRtbAotICBjaGFyIGZvcm1hdFtdID0gIiVsZiI7Ci0KLSAgaWYgKGxlbmd0aCA8PSBi
dWZmZXJTaXplKSB7Ci0gICAgQ2hhciBidWZmZXJbYnVmZmVyU2l6ZSArIDFdOwotICAgIG1lbWNw
eShidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3RoKTsKLSAgICBidWZmZXJbbGVuZ3RoXSA9IDA7
Ci0gICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSk7Ci0gIH0gZWxzZSB7
Ci0gICAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7Ci0gICAg
Y291bnQgPSBzc2NhbmYoYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlKTsKLSAgfQotCi0g
IGlmIChjb3VudCAhPSAxKQotICAgIHJldHVybiBhZGRFcnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0
b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKLSAgICAgICAgICAgICAgICAgICAgICAgICInIGlz
IG5vdCBhIG51bWJlci4iLAotICAgICAgICAgICAgICAgICAgICB0b2tlbik7Ci0gIGRlY29kZWQg
PSB2YWx1ZTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJp
bmcoVG9rZW4mIHRva2VuKSB7Ci0gIHN0ZDo6c3RyaW5nIGRlY29kZWRfc3RyaW5nOwotICBpZiAo
IWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQotICAgIHJldHVybiBmYWxzZTsK
LSAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKGRlY29kZWQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5z
dGFydF8gLSBiZWdpbl8pOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5l
bmRfIC0gYmVnaW5fKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNv
ZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCkgewotICBkZWNvZGVk
LnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIpOwotICBMb2NhdGlvbiBjdXJy
ZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAnIicKLSAgTG9jYXRpb24gZW5kID0gdG9r
ZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlICciJwotICB3aGlsZSAoY3VycmVu
dCAhPSBlbmQpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICciJykK
LSAgICAgIGJyZWFrOwotICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgewotICAgICAgaWYgKGN1cnJl
bnQgPT0gZW5kKQotICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7Ci0gICAgICBDaGFyIGVzY2FwZSA9ICpjdXJy
ZW50Kys7Ci0gICAgICBzd2l0Y2ggKGVzY2FwZSkgewotICAgICAgY2FzZSAnIic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJyInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJy8nOgotICAgICAg
ICBkZWNvZGVkICs9ICcvJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdcXCc6Ci0gICAg
ICAgIGRlY29kZWQgKz0gJ1xcJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdiJzoKLSAg
ICAgICAgZGVjb2RlZCArPSAnXGInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2YnOgot
ICAgICAgICBkZWNvZGVkICs9ICdcZic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnbic6
Ci0gICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdy
JzoKLSAgICAgICAgZGVjb2RlZCArPSAnXHInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2Ug
J3QnOgotICAgICAgICBkZWNvZGVkICs9ICdcdCc7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2Fz
ZSAndSc6IHsKLSAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7Ci0gICAgICAgIGlmICghZGVj
b2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKLSAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVu
aWNvZGUpOwotICAgICAgfSBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBh
ZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7
Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRlY29kZWQgKz0gYzsKLSAgICB9Ci0gIH0K
LSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBv
aW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50JiB1bmljb2RlKSB7Ci0KLSAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9r
ZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBpZiAodW5p
Y29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKLSAgICAvLyBzdXJyb2dhdGUg
cGFpcnMKLSAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICByZXR1cm4gYWRkRXJyb3Io
Ci0gICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2Ug
dW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAotICAgICAgICAgIHRva2VuLAotICAgICAgICAgIGN1
cnJlbnQpOwotICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWlyOwotICAgIGlmICgqKGN1cnJl
bnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7Ci0gICAgICBpZiAoZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIp
KSB7Ci0gICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEw
KSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOwotICAgICAgfSBlbHNlCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9IGVsc2UKLSAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFu
b3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCi0gICAgICAgICAgICAgICAg
ICAgICAgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgY3VycmVudCk7Ci0gIH0KLSAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVu
Y2UoVG9rZW4mIHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKLSAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQot
ICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsCi0gICAgICAgIHRva2VuLAotICAg
ICAgICBjdXJyZW50KTsKLSAgdW5pY29kZSA9IDA7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsgaW5k
ZXggPCA0OyArK2luZGV4KSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICB1bmljb2Rl
ICo9IDE2OwotICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICAgIHVuaWNvZGUgKz0g
YyAtICcwJzsKLSAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKLSAgICAgIHVuaWNv
ZGUgKz0gYyAtICdhJyArIDEwOwotICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQot
ICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7Ci0gICAgZWxzZQotICAgICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
OiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAotICAgICAgICAgIHRva2VuLAotICAgICAg
ICAgIGN1cnJlbnQpOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sCi1PdXJSZWFkZXI6
OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhKSB7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2VuXyA9IHRva2VuOwot
ICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAgZXJy
b3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBPdXJSZWFk
ZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGludCBl
cnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgVG9rZW4gc2tpcDsKLSAgZm9yICg7
OykgewotICAgIGlmICghcmVhZFRva2VuKHNraXApKQotICAgICAgZXJyb3JzXy5yZXNpemUoZXJy
b3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQotICAgIGlmIChz
a2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0
cmVhbSkKLSAgICAgIGJyZWFrOwotICB9Ci0gIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOwot
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIo
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKLSAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4pOwotfQotCi1WYWx1ZSYgT3VyUmVh
ZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KLQotT3VyUmVh
ZGVyOjpDaGFyIE91clJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7Ci0gIGlmIChjdXJyZW50XyA9PSBl
bmRfKQotICAgIHJldHVybiAwOwotICByZXR1cm4gKmN1cnJlbnRfKys7Ci19Ci0KLXZvaWQgT3Vy
UmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKLSAgTG9jYXRp
b24gY3VycmVudCA9IGJlZ2luXzsKLSAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7
Ci0gIGxpbmUgPSAwOwotICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0g
ZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewot
ICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCi0gICAgICAgICsrY3VycmVudDsKLSAgICAgIGxh
c3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0gZWxzZSBpZiAoYyA9
PSAnXG4nKSB7Ci0gICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICsrbGluZTsK
LSAgICB9Ci0gIH0KLSAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCi0gIGNvbHVtbiA9IGlu
dChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKLSAgKytsaW5lOwotfQotCi1zdGQ6OnN0
cmluZyBPdXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlv
bikgY29uc3QgewotICBpbnQgbGluZSwgY29sdW1uOwotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1
bW4obG9jYXRpb24sIGxpbmUsIGNvbHVtbik7Ci0gIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiAr
IDFdOwotICBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1u
ICVkIiwgbGluZSwgY29sdW1uKTsKLSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcg
T3VyUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgZm9ybWF0dGVk
TWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgIGlmIChlcnJvci5l
eHRyYV8pCi0gICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Ci0gICAgICAgICAgIlNlZSAiICsgZ2V0
TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOwot
ICB9Ci0gIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwotfQotCi1zdGQ6OnZlY3RvcjxPdXJSZWFk
ZXI6OlN0cnVjdHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29u
c3QgewotICBzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3Jz
OwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4o
KTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7Ci0gICAgICAgKytpdEVycm9yKSB7
Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOwotICAgIE91clJlYWRlcjo6
U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7Ci0gICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQg
PSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xp
bWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87Ci0gICAgc3RydWN0dXJlZC5tZXNzYWdl
ID0gZXJyb3IubWVzc2FnZV87Ci0gICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsK
LSAgfQotICByZXR1cm4gYWxsRXJyb3JzOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9y
KGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgVG9rZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsK
LSAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9r
ZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5m
bzsKLSAgaW5mby50b2tlbl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0g
IGluZm8uZXh0cmFfID0gMDsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiB0
cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgewotICBzaXpl
X3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKLSAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+
IGxlbmd0aAotICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKLSAgICB8fCBl
eHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJldHVybiBmYWxzZTsKLSAgVG9r
ZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9rZW4uc3RhcnRfID0g
YmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9rZW4uZW5kXyA9IGJlZ2luXyAr
IHZhbHVlLmdldE9mZnNldExpbWl0KCk7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2Vu
XyA9IHRva2VuOwotICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBi
ZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOwotICBlcnJvcnNfLnB1c2hfYmFjayhpbmZv
KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpnb29kKCkgY29uc3Qgewot
ICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOwotfQotCi0KLWNsYXNzIE91ckNoYXJSZWFkZXIgOiBw
dWJsaWMgQ2hhclJlYWRlciB7Ci0gIGJvb2wgY29uc3QgY29sbGVjdENvbW1lbnRzXzsKLSAgT3Vy
UmVhZGVyIHJlYWRlcl87Ci1wdWJsaWM6Ci0gIE91ckNoYXJSZWFkZXIoCi0gICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMsCi0gICAgT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQotICA6IGNvbGxl
Y3RDb21tZW50c18oY29sbGVjdENvbW1lbnRzKQotICAsIHJlYWRlcl8oZmVhdHVyZXMpCi0gIHt9
Ci0gIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBjb25zdCog
ZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSB7Ci0gICAgYm9v
bCBvayA9IHJlYWRlcl8ucGFyc2UoYmVnaW5Eb2MsIGVuZERvYywgKnJvb3QsIGNvbGxlY3RDb21t
ZW50c18pOwotICAgIGlmIChlcnJzKSB7Ci0gICAgICAqZXJycyA9IHJlYWRlcl8uZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcygpOwotICAgIH0KLSAgICByZXR1cm4gb2s7Ci0gIH0KLX07Ci0KLUNo
YXJSZWFkZXJCdWlsZGVyOjpDaGFyUmVhZGVyQnVpbGRlcigpCi17Ci0gIHNldERlZmF1bHRzKCZz
ZXR0aW5nc18pOwotfQotQ2hhclJlYWRlckJ1aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcigpCi17
fQotQ2hhclJlYWRlciogQ2hhclJlYWRlckJ1aWxkZXI6Om5ld0NoYXJSZWFkZXIoKSBjb25zdAot
ewotICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRpbmdzX1siY29sbGVjdENvbW1lbnRzIl0u
YXNCb29sKCk7Ci0gIE91ckZlYXR1cmVzIGZlYXR1cmVzID0gT3VyRmVhdHVyZXM6OmFsbCgpOwot
ICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRpbmdzX1siYWxsb3dDb21tZW50cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHNldHRpbmdzX1sic3RyaWN0Um9vdCJd
LmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IHNl
dHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOwotICBmZWF0
dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IHNldHRpbmdzX1siYWxsb3dOdW1lcmljS2V5cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd1NpbmdsZVF1b3Rlc18gPSBzZXR0aW5nc19bImFsbG93
U2luZ2xlUXVvdGVzIl0uYXNCb29sKCk7Ci0gIGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc2V0dGlu
Z3NfWyJzdGFja0xpbWl0Il0uYXNJbnQoKTsKLSAgZmVhdHVyZXMuZmFpbElmRXh0cmFfID0gc2V0
dGluZ3NfWyJmYWlsSWZFeHRyYSJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5yZWplY3REdXBLZXlz
XyA9IHNldHRpbmdzX1sicmVqZWN0RHVwS2V5cyJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxv
d1NwZWNpYWxGbG9hdHNfID0gc2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXS5hc0Jvb2wo
KTsKLSAgcmV0dXJuIG5ldyBPdXJDaGFyUmVhZGVyKGNvbGxlY3RDb21tZW50cywgZmVhdHVyZXMp
OwotfQotc3RhdGljIHZvaWQgZ2V0VmFsaWRSZWFkZXJLZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogdmFsaWRfa2V5cykKLXsKLSAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKLSAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJjb2xsZWN0Q29tbWVudHMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Nv
bW1lbnRzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgic3RyaWN0Um9vdCIpOwotICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJhbGxvd051bWVyaWNLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxs
b3dTaW5nbGVRdW90ZXMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdGFja0xpbWl0Iik7Ci0g
IHZhbGlkX2tleXMtPmluc2VydCgiZmFpbElmRXh0cmEiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0
KCJyZWplY3REdXBLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTcGVjaWFsRmxv
YXRzIik7Ci19Ci1ib29sIENoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSog
aW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZh
bGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0
IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3Rk
OjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZhbGlkUmVhZGVyS2V5cygmdmFsaWRfa2V5cyk7
Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAg
c2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kp
IHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRf
a2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgewotICAgICAgaW52W2tleV0gPSBz
ZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19
Ci1WYWx1ZSYgQ2hhclJlYWRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQot
ewotICByZXR1cm4gc2V0dGluZ3NfW2tleV07Ci19Ci0vLyBzdGF0aWMKLXZvaWQgQ2hhclJlYWRl
ckJ1aWxkZXI6OnN0cmljdE1vZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQotewotLy8hIFtDaGFy
UmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCi0gICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0g
PSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IHRydWU7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5n
cylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiYWxsb3dTaW5n
bGVRdW90ZXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsK
LSAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsicmVq
ZWN0RHVwS2V5cyJdID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJd
ID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KLX0KLS8vIHN0YXRp
Ywotdm9pZCBDaGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRp
bmdzKQotewotLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQotICAoKnNldHRpbmdzKVsi
Y29sbGVjdENvbW1lbnRzIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJd
ID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOwotICAoKnNldHRp
bmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U2lu
Z2xlUXVvdGVzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7
Ci0gICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7Ci0gICgqc2V0dGluZ3MpWyJy
ZWplY3REdXBLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0
cyJdID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCi19Ci0KLS8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGdsb2JhbCBmdW5jdGlvbnMKLQotYm9v
bCBwYXJzZUZyb21TdHJlYW0oCi0gICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdCwg
c3RkOjppc3RyZWFtJiBzaW4sCi0gICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKQot
ewotICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3NpbjsKLSAgc3NpbiA8PCBzaW4ucmRidWYoKTsKLSAg
c3RkOjpzdHJpbmcgZG9jID0gc3Npbi5zdHIoKTsKLSAgY2hhciBjb25zdCogYmVnaW4gPSBkb2Mu
ZGF0YSgpOwotICBjaGFyIGNvbnN0KiBlbmQgPSBiZWdpbiArIGRvYy5zaXplKCk7Ci0gIC8vIE5v
dGUgdGhhdCB3ZSBkbyBub3QgYWN0dWFsbHkgbmVlZCBhIG51bGwtdGVybWluYXRvci4KLSAgQ2hh
clJlYWRlclB0ciBjb25zdCByZWFkZXIoZmFjdC5uZXdDaGFyUmVhZGVyKCkpOwotICByZXR1cm4g
cmVhZGVyLT5wYXJzZShiZWdpbiwgZW5kLCByb290LCBlcnJzKTsKLX0KLQotc3RkOjppc3RyZWFt
JiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCkgewotICBDaGFyUmVh
ZGVyQnVpbGRlciBiOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0gcGFyc2VGcm9t
U3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKLSAgaWYgKCFvaykgewotICAgIGZwcmludGYo
c3RkZXJyLAotICAgICAgICAgICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCi0gICAgICAgICAg
ICBlcnJzLmNfc3RyKCkpOwotCi0gICAgdGhyb3dSdW50aW1lRXJyb3IoZXJycyk7Ci0gIH0KLSAg
cmV0dXJuIHNpbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3Bw
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9y
LmlubAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0vLyBpbmNsdWRlZCBieSBqc29uX3ZhbHVlLmNw
cAotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9y
QmFzZSgpCi0gICAgOiBjdXJyZW50XygpLCBpc051bGxfKHRydWUpIHsKLX0KLQotVmFsdWVJdGVy
YXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogY3VycmVudF8oY3VycmVudCksIGlzTnVsbF8o
ZmFsc2UpIHt9Ci0KLVZhbHVlJiBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdCB7Ci0g
IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOwotfQotCi12b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpp
bmNyZW1lbnQoKSB7Ci0gICsrY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6
OmRlY3JlbWVudCgpIHsKLSAgLS1jdXJyZW50XzsKLX0KLQotVmFsdWVJdGVyYXRvckJhc2U6OmRp
ZmZlcmVuY2VfdHlwZQotVmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBT
ZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAot
ICByZXR1cm4gb3RoZXIuY3VycmVudF8gLSBjdXJyZW50XzsKLSNlbHNlCi0gIC8vIEl0ZXJhdG9y
IGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVsdAotICAvLyBj
b25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0byB0aGUgZGVmYXVsdAotICAv
LyBzdGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkgYW5kIGVuZCgpIGFyZSB0d28gaW5zdGFu
Y2UKLSAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3Qg
YmUgY29tcGFyZWQuCi0gIC8vIFRvIGFsbG93IHRoaXMsIHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlz
b24gc3BlY2lmaWNhbGx5LgotICBpZiAoaXNOdWxsXyAmJiBvdGhlci5pc051bGxfKSB7Ci0gICAg
cmV0dXJuIDA7Ci0gIH0KLQotICAvLyBVc2FnZSBvZiBzdGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0
YWJsZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBTdHVkaW8gMTIKLSAgLy8gUm9ndWVXYXZl
IFNUTCwKLSAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgotICAvLyBVc2lu
ZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGlu
c3RlYWQ6Ci0gIC8vICAgcmV0dXJuIGRpZmZlcmVuY2VfdHlwZSggc3RkOjpkaXN0YW5jZSggY3Vy
cmVudF8sIG90aGVyLmN1cnJlbnRfICkgKTsKLSAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2Ug
PSAwOwotICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87
IGl0ICE9IG90aGVyLmN1cnJlbnRfOwotICAgICAgICsraXQpIHsKLSAgICArK215RGlzdGFuY2U7
Ci0gIH0KLSAgcmV0dXJuIG15RGlzdGFuY2U7Ci0jZW5kaWYKLX0KLQotYm9vbCBWYWx1ZUl0ZXJh
dG9yQmFzZTo6aXNFcXVhbChjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKGlz
TnVsbF8pIHsKLSAgICByZXR1cm4gb3RoZXIuaXNOdWxsXzsKLSAgfQotICByZXR1cm4gY3VycmVu
dF8gPT0gb3RoZXIuY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmNvcHko
Y29uc3QgU2VsZlR5cGUmIG90aGVyKSB7Ci0gIGN1cnJlbnRfID0gb3RoZXIuY3VycmVudF87Ci0g
IGlzTnVsbF8gPSBvdGhlci5pc051bGxfOwotfQotCi1WYWx1ZSBWYWx1ZUl0ZXJhdG9yQmFzZTo6
a2V5KCkgY29uc3QgewotICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJl
bnRfKS5maXJzdDsKLSAgaWYgKGN6c3RyaW5nLmRhdGEoKSkgewotICAgIGlmIChjenN0cmluZy5p
c1N0YXRpY1N0cmluZygpKQotICAgICAgcmV0dXJuIFZhbHVlKFN0YXRpY1N0cmluZyhjenN0cmlu
Zy5kYXRhKCkpKTsKLSAgICByZXR1cm4gVmFsdWUoY3pzdHJpbmcuZGF0YSgpLCBjenN0cmluZy5k
YXRhKCkgKyBjenN0cmluZy5sZW5ndGgoKSk7Ci0gIH0KLSAgcmV0dXJuIFZhbHVlKGN6c3RyaW5n
LmluZGV4KCkpOwotfQotCi1VSW50IFZhbHVlSXRlcmF0b3JCYXNlOjppbmRleCgpIGNvbnN0IHsK
LSAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7Ci0g
IGlmICghY3pzdHJpbmcuZGF0YSgpKQotICAgIHJldHVybiBjenN0cmluZy5pbmRleCgpOwotICBy
ZXR1cm4gVmFsdWU6OlVJbnQoLTEpOwotfQotCi1zdGQ6OnN0cmluZyBWYWx1ZUl0ZXJhdG9yQmFz
ZTo6bmFtZSgpIGNvbnN0IHsKLSAgY2hhciBjb25zdCoga2VleTsKLSAgY2hhciBjb25zdCogZW5k
OwotICBrZWV5ID0gbWVtYmVyTmFtZSgmZW5kKTsKLSAgaWYgKCFrZWV5KSByZXR1cm4gc3RkOjpz
dHJpbmcoKTsKLSAgcmV0dXJuIHN0ZDo6c3RyaW5nKGtlZXksIGVuZCk7Ci19Ci0KLWNoYXIgY29u
c3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29uc3QgewotICBjb25zdCBjaGFy
KiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsKLSAgcmV0dXJuIGNuYW1lID8gY25h
bWUgOiAiIjsKLX0KLQotY2hhciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUo
Y2hhciBjb25zdCoqIGVuZCkgY29uc3QgewotICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKLSAgaWYgKCFjbmFtZSkgewotICAgICplbmQgPSBOVUxMOwotICAg
IHJldHVybiBOVUxMOwotICB9Ci0gICplbmQgPSBjbmFtZSArICgqY3VycmVudF8pLmZpcnN0Lmxl
bmd0aCgpOwotICByZXR1cm4gY25hbWU7Ci19Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcgotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVl
Q29uc3RJdGVyYXRvcigpIHt9Ci0KLVZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJh
dG9yKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQot
ICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KLQotVmFsdWVDb25zdEl0ZXJhdG9y
OjpWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCi0gICAgOiBW
YWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KLQotVmFsdWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNv
bnN0SXRlcmF0b3I6Ogotb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcikg
ewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZUl0ZXJhdG9yCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3I6OlZhbHVl
SXRlcmF0b3IoKSB7fQotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVl
OjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogVmFsdWVJdGVyYXRvckJh
c2UoY3VycmVudCkge30KLQotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1
ZUNvbnN0SXRlcmF0b3ImIG90aGVyKQotICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsK
LSAgdGhyb3dSdW50aW1lRXJyb3IoIkNvbnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5l
dmVyIGJlIGFsbG93ZWQuIik7Ci19Ci0KLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29u
c3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpCi0gICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
e30KLQotVmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZU
eXBlJiBvdGhlcikgewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi19IC8v
IG5hbWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9m
IGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0b3IuaW5sCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAKLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0K
LSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxqc29uL2Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+Ci0jaW5jbHVkZSA8anNvbi93cml0ZXIu
aD4KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRl
IDxtYXRoLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1
ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KLSNpZmRlZiBKU09OX1VTRV9DUFBUTAot
I2luY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjc3RkZGVm
PiAvLyBzaXplX3QKLSNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIG1pbigpCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfVU5SRUFDSEFCTEUgYXNzZXJ0KGZhbHNlKQotCi0vKgotLS0gVmFsdmUgMS83LzE2
Ci00NzAyIHVucmVhY2hhYmxlIGNvZGUKLSovCi0jcHJhZ21hIHdhcm5pbmcgKHB1c2gpCi0jcHJh
Z21hIHdhcm5pbmcgKGRpc2FibGU6IDQ3MDIpCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8gVGhp
cyBpcyBhIHdhbGthcm91bmQgdG8gYXZvaWQgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiBvZiBW
YWx1ZTo6bnVsbC4KLS8vIGtOdWxsIG11c3QgYmUgd29yZC1hbGlnbmVkIHRvIGF2b2lkIGNyYXNo
aW5nIG9uIEFSTS4gIFdlIHVzZSBhbiBhbGlnbm1lbnQgb2YKLS8vIDggKGluc3RlYWQgb2YgNCkg
YXMgYSBiaXQgb2YgZnV0dXJlLXByb29maW5nLgotI2lmIGRlZmluZWQoX19BUk1FTF9fKQotI2Rl
ZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGJ5dGVf
YWxpZ25tZW50KSkpCi0jZWxzZQotI2RlZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KQotI2Vu
ZGlmCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBBTElHTkFTKDgpIGtOdWxsW3NpemVvZihW
YWx1ZSldID0geyAwIH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyJiBrTnVsbFJlZiA9IGtOdWxsWzBd
OwotY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBWYWx1
ZSY+KGtOdWxsUmVmKTsKLWNvbnN0IFZhbHVlJiBWYWx1ZTo6bnVsbFJlZiA9IG51bGw7Ci0KLWNv
bnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KH4oVUludCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQg
VmFsdWU6Om1heEludCA9IEludChVSW50KC0xKSAvIDIpOwotY29uc3QgVUludCBWYWx1ZTo6bWF4
VUludCA9IFVJbnQoLTEpOwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWluSW50NjQgPSBJbnQ2NCh+KFVJbnQ2NCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWF4SW50NjQgPSBJbnQ2NChVSW50NjQoLTEpIC8gMik7Ci1jb25zdCBVSW50NjQg
VmFsdWU6Om1heFVJbnQ2NCA9IFVJbnQ2NCgtMSk7Ci0vLyBUaGUgY29uc3RhbnQgaXMgaGFyZC1j
b2RlZCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgaGF2ZSB0cm91YmxlCi0vLyBjb252ZXJ0aW5nIFZh
bHVlOjptYXhVSW50NjQgdG8gYSBkb3VibGUgY29ycmVjdGx5IChBSVgveGxDKS4KLS8vIEFzc3Vt
ZXMgdGhhdCBVSW50NjQgaXMgYSA2NCBiaXRzIGludGVnZXIuCi1zdGF0aWMgY29uc3QgZG91Ymxl
IG1heFVJbnQ2NEFzRG91YmxlID0gMTg0NDY3NDQwNzM3MDk1NTE2MTUuMDsKLSNlbmRpZiAvLyBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWluTGFyZ2Vz
dEludCA9IExhcmdlc3RJbnQofihMYXJnZXN0VUludCgtMSkgLyAyKSk7Ci1jb25zdCBMYXJnZXN0
SW50IFZhbHVlOjptYXhMYXJnZXN0SW50ID0gTGFyZ2VzdEludChMYXJnZXN0VUludCgtMSkgLyAy
KTsKLWNvbnN0IExhcmdlc3RVSW50IFZhbHVlOjptYXhMYXJnZXN0VUludCA9IExhcmdlc3RVSW50
KC0xKTsKLQotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgSW5S
YW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gIHJldHVybiBkID49IG1pbiAmJiBkIDw9
IG1heDsKLX0KLSNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShKc29uOjpVSW50
NjQgdmFsdWUpIHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgLyAy
KSkgKiAyLjAgKyBJbnQ2NCh2YWx1ZSAmIDEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
c3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKFQgdmFsdWUpIHsKLSAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwg
VSBtYXgpIHsKLSAgcmV0dXJuIGQgPj0gaW50ZWdlclRvRG91YmxlKG1pbikgJiYgZCA8PSBpbnRl
Z2VyVG9Eb3VibGUobWF4KTsKLX0KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKLQotLyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJp
bmcgdmFsdWUuCi0gKiBAcGFyYW0gdmFsdWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxp
Y2F0ZS4gTXVzdCBiZSB6ZXJvLXRlcm1pbmF0ZWQgaWYKLSAqICAgICAgICAgICAgICBsZW5ndGgg
aXMgInVua25vd24iLgotICogQHBhcmFtIGxlbmd0aCBMZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBl
cXVhbHMgdG8gdW5rbm93biwgdGhlbiBpdCB3aWxsIGJlCi0gKiAgICAgICAgICAgICAgIGNvbXB1
dGVkIHVzaW5nIHN0cmxlbih2YWx1ZSkuCi0gKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxp
Y2F0ZSBpbnN0YW5jZSBvZiBzdHJpbmcuCi0gKi8KLXN0YXRpYyBpbmxpbmUgY2hhciogZHVwbGlj
YXRlU3RyaW5nVmFsdWUoY29uc3QgY2hhciogdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpIHsKLSAgLy8gQXZvaWQgYW4gaW50ZWdl
ciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3Ro
Ci0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgaWYgKGxlbmd0aCA+PSAoc2l6ZV90KVZhbHVlOjpt
YXhJbnQpCi0gICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7Ci0KLSAgY2hhciogbmV3U3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhsZW5ndGggKyAxKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gTlVMTCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNv
bjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxlZCB0byBh
bGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgbWVtY3B5KG5ld1N0cmluZywg
dmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgcmV0dXJuIG5ld1N0
cmluZzsKLX0KLQotLyogUmVjb3JkIHRoZSBsZW5ndGggYXMgYSBwcmVmaXguCi0gKi8KLXN0YXRp
YyBpbmxpbmUgY2hhciogZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCi0gICAgY29uc3Qg
Y2hhciogdmFsdWUsCi0gICAgdW5zaWduZWQgaW50IGxlbmd0aCkKLXsKLSAgLy8gQXZvaWQgYW4g
aW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcg
bGVuZ3RoCi0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgSlNPTl9BU1NFUlRfTUVTU0FHRShsZW5n
dGggPD0gKHVuc2lnbmVkKVZhbHVlOjptYXhJbnQgLSBzaXplb2YodW5zaWduZWQpIC0gMVUsCi0g
ICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhT
dHJpbmdWYWx1ZSgpOiAiCi0gICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCB0b28gYmlnIGZv
ciBwcmVmaXhpbmciKTsKLSAgdW5zaWduZWQgYWN0dWFsTGVuZ3RoID0gbGVuZ3RoICsgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHNpemVvZih1bnNpZ25lZCkpICsgMVU7Ci0gIGNoYXIqIG5ld1N0cmlu
ZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoYWN0dWFsTGVuZ3RoKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gMCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNvbjo6
VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxl
ZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgKnJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihuZXdTdHJpbmcpID0gbGVuZ3RoOwotICBtZW1jcHkobmV3U3RyaW5n
ICsgc2l6ZW9mKHVuc2lnbmVkKSwgdmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1thY3R1YWxM
ZW5ndGggLSAxVV0gPSAwOyAvLyB0byBhdm9pZCBidWZmZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5
IHVzZXJzIGxhdGVyCi0gIHJldHVybiBuZXdTdHJpbmc7Ci19Ci1pbmxpbmUgc3RhdGljIHZvaWQg
ZGVjb2RlUHJlZml4ZWRTdHJpbmcoCi0gICAgYm9vbCBpc1ByZWZpeGVkLCBjaGFyIGNvbnN0KiBw
cmVmaXhlZCwKLSAgICB1bnNpZ25lZCogbGVuZ3RoLCBjaGFyIGNvbnN0KiogdmFsdWUpCi17Ci0g
IGlmICghaXNQcmVmaXhlZCkgewotICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c3RybGVuKHByZWZpeGVkKSk7Ci0gICAgKnZhbHVlID0gcHJlZml4ZWQ7Ci0gIH0gZWxzZSB7Ci0g
ICAgKmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQp
OwotICAgICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVkKTsKLSAgfQotfQotLyoq
IEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkvZHVw
bGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIHJl
bGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeyBmcmVlKHZhbHVlKTsgfQotCi19IC8vIG5h
bWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIFZhbHVlSW50ZXJuYWxzLi4uCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0jaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLSNpbmNsdWRlICJq
c29uX3ZhbHVlaXRlcmF0b3IuaW5sIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLUV4Y2VwdGlvbjo6RXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogbXNnXyhtc2cpCi17fQotRXhjZXB0aW9uOjp+RXhj
ZXB0aW9uKCkgdGhyb3coKQote30KLWNoYXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0
IHRocm93KCkKLXsKLSAgcmV0dXJuIG1zZ18uY19zdHIoKTsKLX0KLVJ1bnRpbWVFcnJvcjo6UnVu
dGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhjZXB0aW9uKG1zZykKLXt9
Ci1Mb2dpY0Vycm9yOjpMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhj
ZXB0aW9uKG1zZykKLXt9Ci12b2lkIHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0
JiBtc2cpCi17Ci0gIHRocm93IFJ1bnRpbWVFcnJvcihtc2cpOwotfQotdm9pZCB0aHJvd0xvZ2lj
RXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKLXsKLSAgdGhyb3cgTG9naWNFcnJvcihtc2cp
OwotfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFz
cyBWYWx1ZTo6Q29tbWVudEluZm8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbygpIDogY29tbWVudF8oMCkg
e30KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8oKSB7Ci0gIGlmIChjb21tZW50
XykKLSAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29tbWVudF8pOwotfQotCi12b2lkIFZhbHVlOjpD
b21tZW50SW5mbzo6c2V0Q29tbWVudChjb25zdCBjaGFyKiB0ZXh0LCBzaXplX3QgbGVuKSB7Ci0g
IGlmIChjb21tZW50XykgewotICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7Ci0gICAg
Y29tbWVudF8gPSAwOwotICB9Ci0gIEpTT05fQVNTRVJUKHRleHQgIT0gMCk7Ci0gIEpTT05fQVNT
RVJUX01FU1NBR0UoCi0gICAgICB0ZXh0WzBdID09ICdcMCcgfHwgdGV4dFswXSA9PSAnLycsCi0g
ICAgICAiaW4gSnNvbjo6VmFsdWU6OnNldENvbW1lbnQoKTogQ29tbWVudHMgbXVzdCBzdGFydCB3
aXRoIC8iKTsKLSAgLy8gSXQgc2VlbXMgdGhhdCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2Nl
cHRhYmxlIGFzIHdlbGwuCi0gIGNvbW1lbnRfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUodGV4dCwg
bGVuKTsKLX0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8g
Y2xhc3MgVmFsdWU6OkNaU3RyaW5nCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLS8vIE5vdGVzOiBwb2xpY3lfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBh
bGxvY2F0ZWQgd2hlbgotLy8gYSBzdHJpbmcgaXMgc3RvcmVkLgotCi1WYWx1ZTo6Q1pTdHJpbmc6
OkNaU3RyaW5nKEFycmF5SW5kZXggYWluZGV4KSA6IGNzdHJfKDApLCBpbmRleF8oYWluZGV4KSB7
fQotCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwgdW5zaWduZWQg
dWxlbmd0aCwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUpCi0gICAgOiBjc3RyXyhzdHIpIHsK
LSAgLy8gYWxsb2NhdGUgIT0gZHVwbGljYXRlCi0gIHN0b3JhZ2VfLnBvbGljeV8gPSBhbGxvY2F0
ZSAmIDB4MzsKLSAgc3RvcmFnZV8ubGVuZ3RoXyA9IHVsZW5ndGggJiAweDNGRkZGRkZGOwotfQot
Ci1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNvbnN0IENaU3RyaW5nJiBvdGhlcikKLSAgICA6
IGNzdHJfKG90aGVyLnN0b3JhZ2VfLnBvbGljeV8gIT0gbm9EdXBsaWNhdGlvbiAmJiBvdGhlci5j
c3RyXyAhPSAwCi0gICAgICAgICAgICAgICAgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShvdGhlci5j
c3RyXywgb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXykKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNz
dHJfKSB7Ci0gIHN0b3JhZ2VfLnBvbGljeV8gPSAob3RoZXIuY3N0cl8KLSAgICAgICAgICAgICAg
ICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGlj
eV8pID09IG5vRHVwbGljYXRpb24KLSAgICAgICAgICAgICAgICAgICAgID8gbm9EdXBsaWNhdGlv
biA6IGR1cGxpY2F0ZSkKLSAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlv
blBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5XykpOwotICBzdG9yYWdlXy5sZW5ndGhfID0g
b3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKLX0KLQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVO
Q0VTCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpCi0gIDogY3N0
cl8ob3RoZXIuY3N0cl8pLCBpbmRleF8ob3RoZXIuaW5kZXhfKSB7Ci0gIG90aGVyLmNzdHJfID0g
bnVsbHB0cjsKLX0KLSNlbmRpZgotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpIHsKLSAg
aWYgKGNzdHJfICYmIHN0b3JhZ2VfLnBvbGljeV8gPT0gZHVwbGljYXRlKQotICAgIHJlbGVhc2VT
dHJpbmdWYWx1ZShjb25zdF9jYXN0PGNoYXIqPihjc3RyXykpOwotfQotCi12b2lkIFZhbHVlOjpD
WlN0cmluZzo6c3dhcChDWlN0cmluZyYgb3RoZXIpIHsKLSAgc3RkOjpzd2FwKGNzdHJfLCBvdGhl
ci5jc3RyXyk7Ci0gIHN0ZDo6c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Ci19Ci0KLVZhbHVl
OjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0oQ1pTdHJpbmcgb3RoZXIpIHsK
LSAgc3dhcChvdGhlcik7Ci0gIHJldHVybiAqdGhpczsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJp
bmc6Om9wZXJhdG9yPChjb25zdCBDWlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKCFjc3Ry
XykgcmV0dXJuIGluZGV4XyA8IG90aGVyLmluZGV4XzsKLSAgLy9yZXR1cm4gc3RyY21wKGNzdHJf
LCBvdGhlci5jc3RyXykgPCAwOwotICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5z
aWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhl
cl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBtaW5fbGVuID0gc3Rk
OjptaW4odGhpc19sZW4sIG90aGVyX2xlbik7Ci0gIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNz
dHJfLCBvdGhlci5jc3RyXywgbWluX2xlbik7Ci0gIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7
Ci0gIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOwotICByZXR1cm4gKHRoaXNfbGVuIDwgb3Ro
ZXJfbGVuKTsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pT
dHJpbmcmIG90aGVyKSBjb25zdCB7Ci0gIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPT0gb3Ro
ZXIuaW5kZXhfOwotICAvL3JldHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA9PSAwOwot
ICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlz
LT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdl
Xy5sZW5ndGhfOwotICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
IGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgdGhpc19sZW4pOwot
ICByZXR1cm4gY29tcCA9PSAwOwotfQotCi1BcnJheUluZGV4IFZhbHVlOjpDWlN0cmluZzo6aW5k
ZXgoKSBjb25zdCB7IHJldHVybiBpbmRleF87IH0KLQotLy9jb25zdCBjaGFyKiBWYWx1ZTo6Q1pT
dHJpbmc6OmNfc3RyKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KLWNvbnN0IGNoYXIqIFZhbHVl
OjpDWlN0cmluZzo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Ci11bnNpZ25lZCBWYWx1
ZTo6Q1pTdHJpbmc6Omxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0K
LWJvb2wgVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0
b3JhZ2VfLnBvbGljeV8gPT0gbm9EdXBsaWNhdGlvbjsgfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6VmFsdWUKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLyohIFxpbnRlcm5hbCBEZWZhdWx0IGNv
bnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIG11c3QgYmUgZXF1aXZhbGVudCB0bzoKLSAqIG1lbXNl
dCggdGhpcywgMCwgc2l6ZW9mKFZhbHVlKSApCi0gKiBUaGlzIG9wdGltaXphdGlvbiBpcyB1c2Vk
IGluIFZhbHVlSW50ZXJuYWxNYXAgZmFzdCBhbGxvY2F0b3IuCi0gKi8KLVZhbHVlOjpWYWx1ZShW
YWx1ZVR5cGUgdnR5cGUpIHsKLSAgaW5pdEJhc2ljKHZ0eXBlKTsKLSAgc3dpdGNoICh2dHlwZSkg
ewotICBjYXNlIG51bGxWYWx1ZToKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgdmFsdWVfLmludF8gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIHJl
YWxWYWx1ZToKLSAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3Ry
aW5nVmFsdWU6Ci0gICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIGFy
cmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8gPSBuZXcgT2Jq
ZWN0VmFsdWVzKCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVl
Xy5ib29sXyA9IGZhbHNlOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci19Ci0KLVZhbHVlOjpWYWx1ZShJbnQgdmFsdWUpIHsKLSAgaW5p
dEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZh
bHVlKFVJbnQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7Ci0gIHZhbHVlXy51aW50
XyA9IHZhbHVlOwotfQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1WYWx1ZTo6VmFsdWUo
SW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2
YWx1ZTsKLX0KLVZhbHVlOjpWYWx1ZShVSW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRW
YWx1ZSk7Ci0gIHZhbHVlXy51aW50XyA9IHZhbHVlOwotfQotI2VuZGlmIC8vIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCi0KLVZhbHVlOjpWYWx1ZShkb3VibGUgdmFsdWUpIHsKLSAgaW5pdEJhc2lj
KHJlYWxWYWx1ZSk7Ci0gIHZhbHVlXy5yZWFsXyA9IHZhbHVlOwotfQotCi1WYWx1ZTo6VmFsdWUo
Y29uc3QgY2hhciogdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKLSAg
dmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbih2YWx1ZSkpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNv
bnN0IGNoYXIqIGJlZ2luVmFsdWUsIGNvbnN0IGNoYXIqIGVuZFZhbHVlKSB7Ci0gIGluaXRCYXNp
YyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0gIHZhbHVlXy5zdHJpbmdfID0KLSAgICAgIGR1cGxpY2F0
ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKGJlZ2luVmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihl
bmRWYWx1ZSAtIGJlZ2luVmFsdWUpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOwotICB2YWx1ZV8u
c3RyaW5nXyA9Ci0gICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZS5kYXRh
KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotCi1WYWx1ZTo6
VmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFs
dWUpOwotICB2YWx1ZV8uc3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkp
OwotfQotCi0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6
Q29uc3RTdHJpbmcmIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0g
IHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotI2VuZGlmCi0KLVZhbHVl
OjpWYWx1ZShib29sIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhib29sZWFuVmFsdWUpOwotICB2YWx1
ZV8uYm9vbF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZhbHVlKFZhbHVlIGNvbnN0JiBvdGhlcikK
LSAgICA6IHR5cGVfKG90aGVyLnR5cGVfKSwgYWxsb2NhdGVkXyhmYWxzZSkKLSAgICAgICwKLSAg
ICAgIGNvbW1lbnRzXyhudWxscHRyKSwgZGVmYXVsdF92YWx1ZV8obnVsbHB0ciksIHN0YXJ0Xyhv
dGhlci5zdGFydF8pLCBsaW1pdF8ob3RoZXIubGltaXRfKQotewotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICBjYXNlIGludFZhbHVlOgotICBjYXNlIHVpbnRWYWx1ZToK
LSAgY2FzZSByZWFsVmFsdWU6Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVlXyA9IG90
aGVyLnZhbHVlXzsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAob3Ro
ZXIudmFsdWVfLnN0cmluZ18gJiYgb3RoZXIuYWxsb2NhdGVkXykgewotICAgICAgdW5zaWduZWQg
bGVuOwotICAgICAgY2hhciBjb25zdCogc3RyOwotICAgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmco
b3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sCi0gICAgICAgICAgJmxlbiwg
JnN0cik7Ci0gICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKHN0ciwgbGVuKTsKLSAgICAgIGFsbG9jYXRlZF8gPSB0cnVlOwotICAgIH0gZWxzZSB7Ci0g
ICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90aGVyLnZhbHVlXy5zdHJpbmdfOwotICAgICAgYWxsb2Nh
dGVkXyA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBj
YXNlIG9iamVjdFZhbHVlOgotICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygqb3Ro
ZXIudmFsdWVfLm1hcF8pOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci0gIGlmIChvdGhlci5jb21tZW50c18pIHsKLSAgICBjb21tZW50
c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgICBmb3Ig
KGludCBjb21tZW50ID0gMDsgY29tbWVudCA8IG51bWJlck9mQ29tbWVudFBsYWNlbWVudDsgKytj
b21tZW50KSB7Ci0gICAgICBjb25zdCBDb21tZW50SW5mbyYgb3RoZXJDb21tZW50ID0gb3RoZXIu
Y29tbWVudHNfW2NvbW1lbnRdOwotICAgICAgaWYgKG90aGVyQ29tbWVudC5jb21tZW50XykKLSAg
ICAgICAgY29tbWVudHNfW2NvbW1lbnRdLnNldENvbW1lbnQoCi0gICAgICAgICAgICBvdGhlckNv
bW1lbnQuY29tbWVudF8sIHN0cmxlbihvdGhlckNvbW1lbnQuY29tbWVudF8pKTsKLSAgICB9Ci0g
IH0KLQotICBpZiAoIG90aGVyLmRlZmF1bHRfdmFsdWVfICkKLSAgewotICAgICAgICAgZGVmYXVs
dF92YWx1ZV8gPSBuZXcgVmFsdWUoICpvdGhlci5kZWZhdWx0X3ZhbHVlXyApOwotICB9Ci0KLX0K
LQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0vLyBNb3ZlIGNvbnN0cnVjdG9yCi1W
YWx1ZTo6VmFsdWUoVmFsdWUmJiBvdGhlcikgewotICBpbml0QmFzaWMobnVsbFZhbHVlKTsKLSAg
c3dhcChvdGhlcik7Ci19Ci0jZW5kaWYKLQotVmFsdWU6On5WYWx1ZSgpIHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAoYWxsb2NhdGVkXykKLSAgICAgIHJlbGVh
c2VTdHJpbmdWYWx1ZSh2YWx1ZV8uc3RyaW5nXyk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlW
YWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBkZWxldGUgdmFsdWVfLm1hcF87Ci0gICAg
YnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLQot
ICBpZiAoY29tbWVudHNfKQotICAgIGRlbGV0ZVtdIGNvbW1lbnRzXzsKLQotICBpZiAoIGRlZmF1
bHRfdmFsdWVfKQotICAgICAgICAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOwotfQotCi1WYWx1ZSYg
VmFsdWU6Om9wZXJhdG9yPShWYWx1ZSBvdGhlcikgewotICBzd2FwKG90aGVyKTsKLSAgcmV0dXJu
ICp0aGlzOwotfQotCi12b2lkIFZhbHVlOjpzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpIHsKLSAg
VmFsdWVUeXBlIHRlbXAgPSB0eXBlXzsKLSAgdHlwZV8gPSBvdGhlci50eXBlXzsKLSAgb3RoZXIu
dHlwZV8gPSB0ZW1wOwotICBzdGQ6OnN3YXAodmFsdWVfLCBvdGhlci52YWx1ZV8pOwotICBpbnQg
dGVtcDIgPSBhbGxvY2F0ZWRfOwotICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAg
b3RoZXIuYWxsb2NhdGVkXyA9IHRlbXAyICYgMHgxOwotfQotCi12b2lkIFZhbHVlOjpzd2FwKFZh
bHVlJiBvdGhlcikgewotICBzd2FwUGF5bG9hZChvdGhlcik7Ci0gIHN0ZDo6c3dhcChjb21tZW50
c18sIG90aGVyLmNvbW1lbnRzXyk7Ci0gIHN0ZDo6c3dhcChkZWZhdWx0X3ZhbHVlXywgb3RoZXIu
ZGVmYXVsdF92YWx1ZV8pOwotICBzdGQ6OnN3YXAoc3RhcnRfLCBvdGhlci5zdGFydF8pOwotICBz
dGQ6OnN3YXAobGltaXRfLCBvdGhlci5saW1pdF8pOwotfQotCi1WYWx1ZVR5cGUgVmFsdWU6OnR5
cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQotCi1pbnQgVmFsdWU6OmNvbXBhcmUoY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlmICgqdGhpcyA8IG90aGVyKQotICAgIHJldHVybiAt
MTsKLSAgaWYgKCp0aGlzID4gb3RoZXIpCi0gICAgcmV0dXJuIDE7Ci0gIHJldHVybiAwOwotfQot
Ci1ib29sIFZhbHVlOjpvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlu
dCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICBpZiAodHlwZURlbHRhKQotICAg
IHJldHVybiB0eXBlRGVsdGEgPCAwID8gdHJ1ZSA6IGZhbHNlOwotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiBmYWxzZTsKLSAgY2FzZSBpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKLSAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5y
ZWFsXzsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90
aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIGlmICgodmFs
dWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7Ci0gICAg
ICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18pIHJldHVybiB0cnVlOwotICAgICAgZWxzZSByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIHVuc2lnbmVkIG90
aGVyX2xlbjsKLSAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgICBjaGFyIGNvbnN0KiBvdGhl
cl9zdHI7Ci0gICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+
dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAgICBkZWNvZGVQcmVmaXhl
ZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xl
biwgJm90aGVyX3N0cik7Ci0gICAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVu
LCBvdGhlcl9sZW4pOwotICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIs
IG1pbl9sZW4pOwotICAgIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGNvbXAg
PiAwKSByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Ci0g
IH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgaW50IGRl
bHRhID0gaW50KHZhbHVlXy5tYXBfLT5zaXplKCkgLSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgp
KTsKLSAgICBpZiAoZGVsdGEpCi0gICAgICByZXR1cm4gZGVsdGEgPCAwOwotICAgIHJldHVybiAo
KnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1hcF8pOwotICB9Ci0gIGRlZmF1bHQ6Ci0g
ICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJl
YWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsgfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
cj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsg
fQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBvdGhlciA8ICp0aGlzOyB9Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdCB7Ci0gIC8vIGlmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAv
LyBHQ0MgMi45NS4zIHNheXM6Ci0gIC8vIGF0dGVtcHQgdG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1m
aWVsZCBzdHJ1Y3R1cmUgbWVtYmVyIGBKc29uOjpWYWx1ZTo6dHlwZV8nCi0gIC8vIEJlYXRzIG1l
LCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4KLSAgaW50IHRlbXAgPSBvdGhlci50eXBl
XzsKLSAgaWYgKHR5cGVfICE9IHRlbXApCi0gICAgcmV0dXJuIGZhbHNlOwotICBzd2l0Y2ggKHR5
cGVfKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiB0cnVlOwotICBjYXNlIGludFZh
bHVlOgotICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhlci52YWx1ZV8udWlu
dF87Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIu
dmFsdWVfLnJlYWxfOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAg
IGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDAp
KSB7Ci0gICAgICByZXR1cm4gKHZhbHVlXy5zdHJpbmdfID09IG90aGVyLnZhbHVlXy5zdHJpbmdf
KTsKLSAgICB9Ci0gICAgdW5zaWduZWQgdGhpc19sZW47Ci0gICAgdW5zaWduZWQgb3RoZXJfbGVu
OwotICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGNoYXIgY29uc3QqIG90aGVyX3N0cjsK
LSAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8u
c3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5n
KG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLCAmb3Ro
ZXJfc3RyKTsKLSAgICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
ICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90aGVyX3N0ciwgdGhpc19sZW4pOwotICAg
IHJldHVybiBjb21wID09IDA7Ci0gIH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVj
dFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IG90aGVyLnZhbHVlXy5t
YXBfLT5zaXplKCkgJiYKLSAgICAgICAgICAgKCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1
ZV8ubWFwXyk7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0K
LSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
ciE9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
IH0KLQotY29uc3QgY2hhciogVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0IHsKLSAgSlNPTl9BU1NF
UlRfTUVTU0FHRSh0eXBlXyA9PSBzdHJpbmdWYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAi
aW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOwotICBp
ZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuIDA7Ci0gIHVuc2lnbmVkIHRoaXNfbGVuOwot
ICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAg
cmV0dXJuIHRoaXNfc3RyOwotfQotCi1ib29sIFZhbHVlOjpnZXRTdHJpbmcoY2hhciBjb25zdCoq
IHN0ciwgY2hhciBjb25zdCoqIGNlbmQpIGNvbnN0IHsKLSAgaWYgKHR5cGVfICE9IHN0cmluZ1Zh
bHVlKSByZXR1cm4gZmFsc2U7Ci0gIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gZmFs
c2U7Ci0gIHVuc2lnbmVkIGxlbmd0aDsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZsZW5ndGgsIHN0cik7Ci0gICpjZW5kID0g
KnN0ciArIGxlbmd0aDsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjph
c1N0cmluZygpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToK
LSAgICByZXR1cm4gIiI7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAgICBpZiAodmFsdWVf
LnN0cmluZ18gPT0gMCkgcmV0dXJuICIiOwotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIGNo
YXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9j
YXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7Ci0gICAg
cmV0dXJuIHN0ZDo6c3RyaW5nKHRoaXNfc3RyLCB0aGlzX2xlbik7Ci0gIH0KLSAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/ICJ0cnVlIiA6ICJmYWxzZSI7Ci0g
IGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLmludF8pOwot
ICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8udWludF8p
OwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8ucmVh
bF8pOwotICBkZWZhdWx0OgotICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1N0cmluZygpOwotICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgfQotfQotCi0jaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKLUNwcFRMOjpDb25zdFN0cmluZyBWYWx1ZTo6YXNDb25zdFN0cmluZygpIGNvbnN0IHsK
LSAgdW5zaWduZWQgbGVuOwotICBjaGFyIGNvbnN0KiBzdHI7Ci0gIGRlY29kZVByZWZpeGVkU3Ry
aW5nKGFsbG9jYXRlZF8sIHZhbHVlXy5zdHJpbmdfLAotICAgICAgJmxlbiwgJnN0cik7Ci0gIHJl
dHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoc3RyLCBsZW4pOwotfQotI2VuZGlmCi0KLVZhbHVlOjpJ
bnQgVmFsdWU6OmFzSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50
VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdEludCBvdXQg
b2YgSW50IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludCh2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWlu
dFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RVSW50IG91
dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gSW50KHZhbHVlXy51aW50Xyk7Ci0gIGNhc2Ug
cmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8s
IG1pbkludCwgbWF4SW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9m
IEludCByYW5nZSIpOwotICAgIHJldHVybiBJbnQodmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgcmV0dXJuIDA7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHJldHVybiB2
YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92
YWx1ZV8gKQotICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQoKTsK
LSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgfQotfQotCi1WYWx1
ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJ
bnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludCh2YWx1ZV8uaW50Xyk7Ci0g
IGNhc2UgdWludFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJn
ZXN0VUludCBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50
Xyk7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2
YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJs
ZSBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy5yZWFsXyk7Ci0g
IGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAo
IGRlZmF1bHRfdmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8t
PmFzVUludCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiAwdTsKLSAg
fQotfQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OkludDY0IFZhbHVl
Ojphc0ludDY0KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6
Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQg
cmFuZ2UiKTsKLSAgICByZXR1cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKLSAgY2FzZSByZWFsVmFs
dWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50
NjQsIG1heEludDY0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIElu
dDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7Ci0gIGNhc2UgbnVs
bFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4g
dmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAoIGRlZmF1bHRf
dmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzSW50NjQo
KTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMGw7Ci0gIH0KLX0KLQot
VmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50NjQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8p
IHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludDY0KCks
ICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludDY0KHZh
bHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
dWludF8pOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFu
Z2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ImRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
cmVhbF8pOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBib29sZWFu
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICBkZWZhdWx0OgotICAg
ICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHRfdmFsdWVfLT5hc1VJbnQ2NCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiAwdWw7Ci0gIH0KLX0KLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQot
Ci1MYXJnZXN0SW50IFZhbHVlOjphc0xhcmdlc3RJbnQoKSBjb25zdCB7Ci0jaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQotICByZXR1cm4gYXNJbnQoKTsKLSNlbHNlCi0gIHJldHVybiBhc0ludDY0
KCk7Ci0jZW5kaWYKLX0KLQotTGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25z
dCB7Ci0jaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICByZXR1cm4gYXNVSW50KCk7Ci0jZWxz
ZQotICByZXR1cm4gYXNVSW50NjQoKTsKLSNlbmRpZgotfQotCi1kb3VibGUgVmFsdWU6OmFzRG91
YmxlKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVfLmludF8pOwotICBjYXNlIHVpbnRWYWx1
ZToKLSNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8udWludF8pOwotI2Vsc2UgIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBpbnRl
Z2VyVG9Eb3VibGUodmFsdWVfLnVpbnRfKTsKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VT
RV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJu
IHZhbHVlXy5yZWFsXzsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJuIDAuMDsKLSAgY2Fz
ZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMCA6IDAuMDsKLSAg
ZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAgICAgICAgICAgICAg
IHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNEb3VibGUoKTsKLSAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMC4wOwotICB9Ci19Ci0KLWZsb2F0IFZhbHVlOjphc0Zsb2F0KCkg
Y29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWludFZhbHVlOgotI2lm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnVpbnRfKTsKLSNlbHNlICAvLyBpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICByZXR1cm4gaW50ZWdlclRvRG91
YmxlKHZhbHVlXy51aW50Xyk7Ci0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCi0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4odmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJu
IDAuMDsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEu
MGYgOiAwLjBmOwotICBkZWZhdWx0OgotICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzRmxvYXQoKTsKLSAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgIHJldHVybiAwLjBmOwotICB9Ci19Ci0KLWJvb2wgVmFsdWU6OmFzQm9v
bCgpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZh
bHNlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6
IGZhbHNlOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICAvLyBUaGlzIGlzIGtpbmQgb2Ygc3RyYW5n
ZS4gTm90IHJlY29tbWVuZGVkLgotICAgIHJldHVybiAodmFsdWVfLnJlYWxfICE9IDAuMCkgPyB0
cnVlIDogZmFsc2U7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0g
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNCb29sKCk7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLX0KLQotYm9vbCBWYWx1ZTo6aXND
b252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3QgewotICBzd2l0Y2ggKG90aGVyKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAoaXNOdW1lcmljKCkgJiYgYXNEb3VibGUo
KSA9PSAwLjApIHx8Ci0gICAgICAgICAgICh0eXBlXyA9PSBib29sZWFuVmFsdWUgJiYgdmFsdWVf
LmJvb2xfID09IGZhbHNlKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gc3RyaW5nVmFsdWUgJiYg
YXNTdHJpbmcoKSA9PSAiIikgfHwKLSAgICAgICAgICAgKHR5cGVfID09IGFycmF5VmFsdWUgJiYg
dmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gb2JqZWN0
VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICB0eXBlXyA9
PSBudWxsVmFsdWU7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIGlzSW50KCkgfHwKLSAg
ICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWlu
SW50LCBtYXhJbnQpKSB8fAotICAgICAgICAgICB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlw
ZV8gPT0gbnVsbFZhbHVlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gaXNVSW50KCkg
fHwKLSAgICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFs
XywgMCwgbWF4VUludCkpIHx8Ci0gICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBpc051bWVy
aWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9v
bGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAg
ICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09
IHN0cmluZ1ZhbHVlIHx8Ci0gICAgICAgICAgIHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBh
cnJheVZhbHVlOgotICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlIHx8IHR5cGVfID09IG51
bGxWYWx1ZTsKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICByZXR1cm4gdHlwZV8gPT0gb2JqZWN0
VmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICB9Ci0gIEpTT05fQVNTRVJUX1VOUkVBQ0hB
QkxFOwotICByZXR1cm4gZmFsc2U7Ci19Ci0KLS8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotQXJyYXlJbmRleCBWYWx1ZTo6c2l6ZSgpIGNvbnN0IHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgY2FzZSBz
dHJpbmdWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9m
IHRoZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQotICAgIGlmICghdmFsdWVfLm1hcF8tPmVt
cHR5KCkpIHsKLSAgICAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFs
dWVfLm1hcF8tPmVuZCgpOwotICAgICAgLS1pdExhc3Q7Ci0gICAgICByZXR1cm4gKCppdExhc3Qp
LmZpcnN0LmluZGV4KCkgKyAxOwotICAgIH0KLSAgICByZXR1cm4gMDsKLSAgY2FzZSBvYmplY3RW
YWx1ZToKLSAgICByZXR1cm4gQXJyYXlJbmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKLSAgfQot
ICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOwot
fQotCi1ib29sIFZhbHVlOjplbXB0eSgpIGNvbnN0IHsKLSAgaWYgKGlzTnVsbCgpIHx8IGlzQXJy
YXkoKSB8fCBpc09iamVjdCgpKQotICAgIHJldHVybiBzaXplKCkgPT0gMHU7Ci0gIGVsc2UKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0IHsgcmV0
dXJuIGlzTnVsbCgpOyB9Ci0KLXZvaWQgVmFsdWU6OmNsZWFyKCkgewotICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgICAgICAg
ICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1
ZSIpOwotICBzdGFydF8gPSAwOwotICBsaW1pdF8gPSAwOwotICBkZWxldGUgZGVmYXVsdF92YWx1
ZV87Ci0gIGRlZmF1bHRfdmFsdWVfID0gbnVsbHB0cjsKLSAgc3dpdGNoICh0eXBlXykgewotICBj
YXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8tPmNs
ZWFyKCk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLX0KLQotdm9p
ZCBWYWx1ZTo6cmVzaXplKEFycmF5SW5kZXggbmV3U2l6ZSkgewotICBKU09OX0FTU0VSVF9NRVNT
QUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgICAg
ICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzaXplKCk6IHJlcXVpcmVzIGFycmF5VmFs
dWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICAqdGhpcyA9IFZhbHVlKGFycmF5
VmFsdWUpOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIGlmIChuZXdTaXplID09
IDApCi0gICAgY2xlYXIoKTsKLSAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCi0gICAgKCp0
aGlzKVtuZXdTaXplIC0gMV07Ci0gIGVsc2UgewotICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9
IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCkgewotICAgICAgdmFsdWVfLm1hcF8t
PmVyYXNlKGluZGV4KTsKLSAgICB9Ci0gICAgYXNzZXJ0KHNpemUoKSA9PSBuZXdTaXplKTsKLSAg
fQotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgewotICBK
U09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09
IGFycmF5VmFsdWUsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRl
eCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAg
ICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOwotICBDWlN0cmluZyBrZXkoaW5kZXgpOwotICBP
YmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGtleSk7
Ci0gIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0ga2V5KQot
ICAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0KLSAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRl
ZmF1bHRWYWx1ZShrZXksIG51bGxSZWYpOwotICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQs
IGRlZmF1bHRWYWx1ZSk7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLVZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4
KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAoKnRoaXMpW0FycmF5SW5k
ZXgoaW5kZXgpXTsKLX0KLQotY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5cGVfID09
IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAg
aWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVsbFJlZjsKLSAgQ1pTdHJpbmcg
a2V5KGluZGV4KTsKLSAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0
dXJuIG51bGxSZWY7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLWNvbnN0IFZhbHVlJiBW
YWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FH
RSgKLSAgICAgIGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10o
aW50IGluZGV4KSBjb25zdDogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAo
KnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKLX0KLQotdm9pZCBWYWx1ZTo6aW5pdEJhc2ljKFZh
bHVlVHlwZSB2dHlwZSwgYm9vbCBhbGxvY2F0ZWQpIHsKLSAgdHlwZV8gPSB2dHlwZTsKLSAgYWxs
b2NhdGVkXyA9IGFsbG9jYXRlZDsKLSAgY29tbWVudHNfID0gMDsKLSAgc3RhcnRfID0gMDsKLSAg
bGltaXRfID0gMDsKLSAgZGVmYXVsdF92YWx1ZV8gPSBudWxscHRyOwotfQotCi0vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotLy8gQHByZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwuCi0v
LyBAcGFyYW0ga2V5IGlzIG51bGwtdGVybWluYXRlZC4KLVZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJl
ZmVyZW5jZShjb25zdCBjaGFyKiBrZXkpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBK
c29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSgpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOwot
ICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQotICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUp
OwotICBDWlN0cmluZyBhY3R1YWxLZXkoCi0gICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4oa2V5KSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsgLy8gTk9URSEKLSAgT2Jq
ZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxL
ZXkpOwotICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFj
dHVhbEtleSkKLSAgICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gIE9iamVjdFZhbHVlczo6dmFs
dWVfdHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKLSAgaXQgPSB2YWx1ZV8u
bWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOwotICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5z
ZWNvbmQ7Ci0gIHJldHVybiB2YWx1ZTsKLX0KLQotLy8gQHBhcmFtIGtleSBpcyBub3QgbnVsbC10
ZXJtaW5hdGVkLgotVmFsdWUmIFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNoYXIgY29uc3QqIGtl
eSwgY2hhciBjb25zdCogY2VuZCkKLXsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5
cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBKc29u
OjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShrZXksIGVuZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVl
Iik7Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgKnRoaXMgPSBWYWx1ZShvYmplY3RW
YWx1ZSk7Ci0gIENaU3RyaW5nIGFjdHVhbEtleSgKLSAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6OmR1cGxpY2F0ZU9uQ29weSk7Ci0gIE9iamVjdFZh
bHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsK
LSAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxL
ZXkpCi0gICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLQotICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5
cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwgbnVsbFJlZik7Ci0gIGl0ID0gdmFsdWVfLm1hcF8t
Pmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKLSAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25k
OwotICByZXR1cm4gdmFsdWU7Ci19Ci0KLVZhbHVlIFZhbHVlOjpnZXQoQXJyYXlJbmRleCBpbmRl
eCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogdmFs
dWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKLSAgaWYgKCB2YWx1ZSA9PSAmbnVsbFJlZiApCi0gIHsK
LSAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gIH0KLSAgZWxzZQotICB7Ci0gICAgICAg
ICBWYWx1ZSByZXN1bHQgPSAqdmFsdWU7Ci0gICAgICAgICByZXN1bHQuZGVmYXVsdF92YWx1ZV8g
PSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOwotICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
fQotfQotCi1ib29sIFZhbHVlOjppc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gaW5kZXggPCBzaXplKCk7IH0KLQotVmFsdWUgY29uc3QqIFZhbHVlOjpmaW5kKGNo
YXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkgY29uc3QKLXsKLSAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKLSAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1
ZSwKLSAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJl
cyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkg
cmV0dXJuIE5VTEw7Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAgT2JqZWN0VmFsdWVz
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7Ci0gIGlm
IChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHJldHVybiBOVUxMOwotICByZXR1cm4gJigqaXQp
LnNlY29uZDsKLX0KLWNvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBjaGFyKiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJs
ZW4oa2V5KSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5k
OwotfQotVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGNvbnN0JiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmRhdGEoKSwga2V5
LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwot
ICByZXR1cm4gKmZvdW5kOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hh
cioga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleSwga2V5ICsgc3RybGVuKGtl
eSkpOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSkgewotICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsg
a2V5Lmxlbmd0aCgpKTsKLX0KLQotVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IFN0YXRp
Y1N0cmluZyYga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpKTsK
LX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29u
c3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsKLSAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uo
a2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci1WYWx1ZSBjb25zdCYgVmFsdWU6Om9w
ZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIFZhbHVl
IGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci0gIGlm
ICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5kOwotfQotI2VuZGlmCi0K
LVZhbHVlJiBWYWx1ZTo6YXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gKCp0aGlz
KVtzaXplKCldID0gdmFsdWU7IH0KLQotVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXks
IGNoYXIgY29uc3QqIGNlbmQsIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0g
IFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgaWYgKCAhZm91bmQgKQot
ICB7Ci0gICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICB9Ci0gIGVsc2UKLSAgewotICAg
ICAgICAgVmFsdWUgcmVzdWx0ID0gKmZvdW5kOwotICAgICAgICAgcmVzdWx0LmRlZmF1bHRfdmFs
dWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsKLSAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gIH0KLX0KLVZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBWYWx1ZSBjb25zdCYg
ZGVmYXVsdFZhbHVlKSBjb25zdAotewotICByZXR1cm4gZ2V0KGtleSwga2V5ICsgc3RybGVuKGtl
eSksIGRlZmF1bHRWYWx1ZSk7Ci19Ci1WYWx1ZSBWYWx1ZTo6Z2V0KHN0ZDo6c3RyaW5nIGNvbnN0
JiBrZXksIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0gIHJldHVybiBnZXQo
a2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgZGVmYXVsdFZhbHVlKTsKLX0K
LQotCi1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFy
KiBjZW5kLCBWYWx1ZSogcmVtb3ZlZCkKLXsKLSAgaWYgKHR5cGVfICE9IG9iamVjdFZhbHVlKSB7
Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAg
T2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7
Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICAq
cmVtb3ZlZCA9IGl0LT5zZWNvbmQ7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdCk7Ci0gIHJldHVy
biB0cnVlOwotfQotYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgVmFs
dWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSwgcmVtb3ZlZCk7Ci19Ci1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcg
Y29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5
LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgcmVtb3ZlZCk7Ci19Ci1WYWx1ZSBW
YWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgSlNPTl9BU1NFUlRfTUVT
U0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIoKTogcmVxdWlyZXMg
b2JqZWN0VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVs
bFJlZjsKLQotICBWYWx1ZSByZW1vdmVkOyAgLy8gbnVsbAotICByZW1vdmVNZW1iZXIoa2V5LCBr
ZXkgKyBzdHJsZW4oa2V5KSwgJnJlbW92ZWQpOwotICByZXR1cm4gcmVtb3ZlZDsgLy8gc3RpbGwg
bnVsbCBpZiByZW1vdmVNZW1iZXIoKSBkaWQgbm90aGluZwotfQotVmFsdWUgVmFsdWU6OnJlbW92
ZU1lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KQotewotICByZXR1cm4gcmVtb3ZlTWVtYmVy
KGtleS5jX3N0cigpKTsKLX0KLQotYm9vbCBWYWx1ZTo6cmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBp
bmRleCwgVmFsdWUqIHJlbW92ZWQpIHsKLSAgaWYgKHR5cGVfICE9IGFycmF5VmFsdWUpIHsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgQ1pTdHJpbmcga2V5KGluZGV4KTsKLSAgT2JqZWN0VmFs
dWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2
YWx1ZV8ubWFwXy0+ZW5kKCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgKnJlbW92ZWQg
PSBpdC0+c2Vjb25kOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIC8vIHNoaWZ0
IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8gdGhlIHBsYWNlIG9mIHRoZSAicmVtb3ZlZCIKLSAg
Zm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsgaSA8IChvbGRTaXplIC0gMSk7ICsraSl7Ci0gICAg
Q1pTdHJpbmcga2VleShpKTsKLSAgICAoKnZhbHVlXy5tYXBfKVtrZWV5XSA9ICgqdGhpcylbaSAr
IDFdOwotICB9Ci0gIC8vIGVyYXNlIHRoZSBsYXN0IG9uZSAoImxlZnRvdmVyIikKLSAgQ1pTdHJp
bmcga2V5TGFzdChvbGRTaXplIC0gMSk7Ci0gIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXRMYXN0
ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5TGFzdCk7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdExh
c3QpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSBW
YWx1ZTo6Z2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LAotICAgICAgICAgICAgICAg
ICBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7Ci0gIHJldHVybiBnZXQoa2V5LmNf
c3RyKCksIGtleS5lbmRfY19zdHIoKSwgZGVmYXVsdFZhbHVlKTsKLX0KLSNlbmRpZgotCi1ib29s
IFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0
Ci17Ci0gIFZhbHVlIGNvbnN0KiB2YWx1ZSA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgcmV0dXJuIE5V
TEwgIT0gdmFsdWU7Ci19Ci1ib29sIFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXkpIGNv
bnN0Ci17Ci0gIHJldHVybiBpc01lbWJlcihrZXksIGtleSArIHN0cmxlbihrZXkpKTsKLX0KLWJv
b2wgVmFsdWU6OmlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIHJl
dHVybiBpc01lbWJlcihrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKLX0K
LQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1ib29sIFZhbHVlOjppc01lbWJlcihjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3QgewotICByZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3Ry
KCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQotVmFsdWU6Ok1lbWJlcnMgVmFsdWU6
OmdldE1lbWJlck5hbWVzKCkgY29uc3QgewotICBKU09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAg
dHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgImluIEpz
b246OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7
Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7
Ci0gIE1lbWJlcnMgbWVtYmVyczsKLSAgbWVtYmVycy5yZXNlcnZlKHZhbHVlXy5tYXBfLT5zaXpl
KCkpOwotICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJl
Z2luKCk7Ci0gIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFw
Xy0+ZW5kKCk7Ci0gIGZvciAoOyBpdCAhPSBpdEVuZDsgKytpdCkgewotICAgIG1lbWJlcnMucHVz
aF9iYWNrKHN0ZDo6c3RyaW5nKCgqaXQpLmZpcnN0LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKml0KS5maXJzdC5sZW5ndGgoKSkpOwotICB9Ci0gIHJldHVybiBt
ZW1iZXJzOwotfQotLy8KLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gRW51bU1lbWJlck5h
bWVzCi0vLyBWYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkgY29uc3QKLS8vewotLy8gICBpZiAoIHR5
cGVfID09IG9iamVjdFZhbHVlICkKLS8vICAgewotLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06
OmFueSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCi0vLyAgICAgICAgIENwcFRMOjpFbnVtOjpr
ZXlzKCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAot
Ly8gICAgICAgICBNZW1iZXJOYW1lc1RyYW5zZm9ybSgpICkgKTsKLS8vICAgfQotLy8gICByZXR1
cm4gRW51bU1lbWJlck5hbWVzKCk7Ci0vL30KLS8vCi0vLwotLy8gRW51bVZhbHVlcwotLy8gVmFs
dWU6OmVudW1WYWx1ZXMoKSBjb25zdAotLy97Ci0vLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFs
dWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVt
OjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ3BwVEw6OlR5cGU8Y29uc3QgVmFsdWUgJj4oKSApOwotLy8gICByZXR1cm4g
RW51bVZhbHVlcygpOwotLy99Ci0vLwotLy8jIGVuZGlmCi0KLXN0YXRpYyBib29sIElzSW50ZWdy
YWwoZG91YmxlIGQpIHsKLSAgZG91YmxlIGludGVncmFsX3BhcnQ7Ci0gIHJldHVybiBtb2RmKGQs
ICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsgfQotCi1ib29sIFZhbHVlOjppc0Jvb2woKSBj
b25zdCB7IHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFsdWU7IH0KLQotYm9vbCBWYWx1ZTo6aXNJ
bnQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBy
ZXR1cm4gdmFsdWVfLmludF8gPj0gbWluSW50ICYmIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAg
Y2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7
Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYm
IHZhbHVlXy5yZWFsXyA8PSBtYXhJbnQgJiYKLSAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8u
cmVhbF8pOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBWYWx1ZTo6aXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQo
dmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJbnQpOwotICBjYXNlIHVpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJbnQ7Ci0gIGNhc2UgcmVhbFZhbHVlOgot
ICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAm
JgotICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gIGRlZmF1bHQ6Ci0gICAg
YnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFZhbHVlOjppc0ludDY0KCkg
Y29uc3QgewotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsK
LSAgY2FzZSBpbnRWYWx1ZToKLSAgICByZXR1cm4gdHJ1ZTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50NjQobWF4SW50NjQpOwotICBjYXNlIHJlYWxW
YWx1ZToKLSAgICAvLyBOb3RlIHRoYXQgbWF4SW50NjQgKD0gMl42MyAtIDEpIGlzIG5vdCBleGFj
dGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heEludDY0
KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCi0gICAgLy8gcmVxdWly
ZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICByZXR1
cm4gdmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2NCkgJiYKLSAgICAgICAgICAgdmFsdWVf
LnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJiBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0g
IGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAotICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzVUludDY0KCkgY29uc3QgewotI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1
ZToKLSAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
cmV0dXJuIHRydWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50
NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8v
IGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQu
IFRoZXJlZm9yZSB3ZQotICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxl
c3MgdGhhbiB0aGUgbGltaXQuCi0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVl
Xy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCi0gICAgICAgICAgIElzSW50ZWdyYWwodmFs
dWVfLnJlYWxfKTsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotI2VuZGlmIC8vIEpTT05f
SEFTX0lOVDY0Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgp
IGNvbnN0IHsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgp
IHx8IGlzVUludDY0KCk7Ci0jZWxzZQotICByZXR1cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKLSNl
bmRpZgotfQotCi1ib29sIFZhbHVlOjppc0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09
IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7IH0KLQotYm9vbCBWYWx1ZTo6aXNOdW1lcmljKCkg
Y29uc3QgeyByZXR1cm4gaXNJbnRlZ3JhbCgpIHx8IGlzRG91YmxlKCk7IH0KLQotYm9vbCBWYWx1
ZTo6aXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBzdHJpbmdWYWx1ZTsgfQotCi1i
b29sIFZhbHVlOjppc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsg
fQotCi1ib29sIFZhbHVlOjppc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IG9iamVj
dFZhbHVlOyB9Ci0KLXZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwg
c2l6ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKLSAgaWYgKCFjb21tZW50
c18pCi0gICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNl
bWVudF07Ci0gIGlmICgobGVuID4gMCkgJiYgKGNvbW1lbnRbbGVuLTFdID09ICdcbicpKSB7Ci0g
ICAgLy8gQWx3YXlzIGRpc2NhcmQgdHJhaWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9u
LgotICAgIGxlbiAtPSAxOwotICB9Ci0gIGNvbW1lbnRzX1twbGFjZW1lbnRdLnNldENvbW1lbnQo
Y29tbWVudCwgbGVuKTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBj
b21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgewotICBzZXRDb21tZW50KGNvbW1l
bnQsIHN0cmxlbihjb21tZW50KSwgcGxhY2VtZW50KTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29t
bWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIHsKLSAgc2V0Q29tbWVudChjb21tZW50LmNfc3RyKCksIGNvbW1lbnQubGVuZ3RoKCksIHBs
YWNlbWVudCk7Ci19Ci0KLWJvb2wgVmFsdWU6Omhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQpIGNvbnN0IHsKLSAgcmV0dXJuIGNvbW1lbnRzXyAhPSAwICYmIGNvbW1lbnRzX1tw
bGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjpnZXRDb21t
ZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7Ci0gIGlmIChoYXNDb21tZW50
KHBsYWNlbWVudCkpCi0gICAgcmV0dXJuIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfOwot
ICByZXR1cm4gIiI7Ci19Ci0KLXZvaWQgVmFsdWU6OnNldE9mZnNldFN0YXJ0KHNpemVfdCBzdGFy
dCkgeyBzdGFydF8gPSBzdGFydDsgfQotCi12b2lkIFZhbHVlOjpzZXRPZmZzZXRMaW1pdChzaXpl
X3QgbGltaXQpIHsgbGltaXRfID0gbGltaXQ7IH0KLQotc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRT
dGFydCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0XzsgfQotCi1zaXplX3QgVmFsdWU6OmdldE9mZnNl
dExpbWl0KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjp0
b1N0eWxlZFN0cmluZygpIGNvbnN0IHsKLSAgU3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgcmV0dXJu
IHdyaXRlci53cml0ZSgqdGhpcyk7Ci19Ci0KLVZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6
YmVnaW4oKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgot
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBj
b25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1
bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Ci19Ci0KLVZh
bHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6ZW5kKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVf
KSB7Ci0gIGNhc2UgYXJyYXlWYWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBpZiAodmFs
dWVfLm1hcF8pCi0gICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgp
KTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICByZXR1cm4gY29u
c3RfaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjpiZWdpbigpIHsKLSAg
c3dpdGNoICh0eXBlXykgewotICBjYXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgaWYgKHZhbHVlXy5tYXBfKQotICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBf
LT5iZWdpbigpKTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICBy
ZXR1cm4gaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjplbmQoKSB7Ci0g
IHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVl
OgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBpdGVyYXRvcih2YWx1ZV8ubWFw
Xy0+ZW5kKCkpOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJl
dHVybiBpdGVyYXRvcigpOwotfQotCi0vLyBjbGFzcyBQYXRoQXJndW1lbnQKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpIDoga2V5XygpLCBpbmRleF8oKSwga2lu
ZF8oa2luZE5vbmUpIHt9Ci0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KEFycmF5SW5kZXgg
aW5kZXgpCi0gICAgOiBrZXlfKCksIGluZGV4XyhpbmRleCksIGtpbmRfKGtpbmRJbmRleCkge30K
LQotUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KQotICAgIDoga2V5
XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotUGF0aEFyZ3VtZW50OjpQYXRo
QXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkKLSAgICA6IGtleV8oa2V5LmNfc3RyKCkp
LCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotLy8gY2xhc3MgUGF0aAotLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLVBhdGg6OlBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCi0gICAgICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIs
Ci0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMsCi0gICAgICAgICAgIGNvbnN0IFBh
dGhBcmd1bWVudCYgYTQsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUpIHsKLSAg
SW5BcmdzIGluOwotICBpbi5wdXNoX2JhY2soJmExKTsKLSAgaW4ucHVzaF9iYWNrKCZhMik7Ci0g
IGluLnB1c2hfYmFjaygmYTMpOwotICBpbi5wdXNoX2JhY2soJmE0KTsKLSAgaW4ucHVzaF9iYWNr
KCZhNSk7Ci0gIG1ha2VQYXRoKHBhdGgsIGluKTsKLX0KLQotdm9pZCBQYXRoOjptYWtlUGF0aChj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5BcmdzJiBpbikgewotICBjb25zdCBjaGFy
KiBjdXJyZW50ID0gcGF0aC5jX3N0cigpOwotICBjb25zdCBjaGFyKiBlbmQgPSBjdXJyZW50ICsg
cGF0aC5sZW5ndGgoKTsKLSAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciBpdEluQXJnID0gaW4uYmVn
aW4oKTsKLSAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7Ci0gICAgaWYgKCpjdXJyZW50ID09ICdb
JykgewotICAgICAgKytjdXJyZW50OwotICAgICAgaWYgKCpjdXJyZW50ID09ICclJykKLSAgICAg
ICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCk7Ci0gICAgICBlbHNlIHsKLSAgICAgICAgQXJyYXlJbmRleCBpbmRleCA9IDA7Ci0gICAgICAg
IGZvciAoOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0g
JzknOyArK2N1cnJlbnQpCi0gICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRl
eCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgIGFyZ3NfLnB1c2hfYmFjayhpbmRleCk7Ci0gICAg
ICB9Ci0gICAgICBpZiAoY3VycmVudCA9PSBlbmQgfHwgKmN1cnJlbnQrKyAhPSAnXScpCi0gICAg
ICAgIGludmFsaWRQYXRoKHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSk7Ci0gICAg
fSBlbHNlIGlmICgqY3VycmVudCA9PSAnJScpIHsKLSAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBp
biwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kS2V5KTsKLSAgICAgICsrY3VycmVudDsKLSAg
ICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICcuJykgewotICAgICAgKytjdXJyZW50OwotICAgIH0g
ZWxzZSB7Ci0gICAgICBjb25zdCBjaGFyKiBiZWdpbk5hbWUgPSBjdXJyZW50OwotICAgICAgd2hp
bGUgKGN1cnJlbnQgIT0gZW5kICYmICFzdHJjaHIoIlsuIiwgKmN1cnJlbnQpKQotICAgICAgICAr
K2N1cnJlbnQ7Ci0gICAgICBhcmdzXy5wdXNoX2JhY2soc3RkOjpzdHJpbmcoYmVnaW5OYW1lLCBj
dXJyZW50KSk7Ci0gICAgfQotICB9Ci19Ci0KLXZvaWQgUGF0aDo6YWRkUGF0aEluQXJnKGNvbnN0
IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
QXJncyYgaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9y
JiBpdEluQXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtp
bmQpIHsKLSAgaWYgKGl0SW5BcmcgPT0gaW4uZW5kKCkpIHsKLSAgICAvLyBFcnJvcjogbWlzc2lu
ZyBhcmd1bWVudCAlZAotICB9IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQpIHsK
LSAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUKLSAgfSBlbHNlIHsKLSAgICBhcmdzXy5w
dXNoX2JhY2soKippdEluQXJnKTsKLSAgfQotfQotCi12b2lkIFBhdGg6OmludmFsaWRQYXRoKGNv
bnN0IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywgaW50IC8qbG9jYXRpb24qLykgewotICAvLyBFcnJv
cjogaW52YWxpZCBwYXRoLgotfQotCi1jb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBW
YWx1ZSYgcm9vdCkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3Ig
KEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5k
KCk7ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAo
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUt
PmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKSB7Ci0gICAgICAg
IC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBh
dCBwb3NpdGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhf
XSk7Ci0gICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7
Ci0gICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IHVuYWJs
ZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikK
LSAgICAgIH0KLSAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgIGlmIChu
b2RlID09ICZWYWx1ZTo6bnVsbFJlZikgewotICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJl
c29sdmUgcGF0aCAob2JqZWN0IGhhcyBubyBtZW1iZXIgbmFtZWQgJycgYXQKLSAgICAgICAgLy8g
cG9zaXRpb24uLi4pCi0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiAqbm9kZTsKLX0KLQot
VmFsdWUgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3IgKEFy
Z3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7
ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAoYXJn
LmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlz
QXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKQotICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOwotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0g
ICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAg
ICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0g
ICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICBpZiAobm9kZSA9PSAmVmFs
dWU6Om51bGxSZWYpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgfQotICB9Ci0g
IHJldHVybiAqbm9kZTsKLX0KLQotVmFsdWUmIFBhdGg6Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0
IHsKLSAgVmFsdWUqIG5vZGUgPSAmcm9vdDsKLSAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBp
dCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7Ci0gICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7Ci0gICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1l
bnQ6OmtpbmRJbmRleCkgewotICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkpIHsKLSAgICAgICAg
Ly8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgotICAgICAgfQot
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0gICAgfSBlbHNlIGlmIChhcmcu
a2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlzT2Jq
ZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3Np
dGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAg
IH0KLSAgfQotICByZXR1cm4gKm5vZGU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI3By
YWdtYSB3YXJuaW5nIChwb3ApCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50
IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0v
LyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+
Ci0jaW5jbHVkZSAianNvbl90b29sLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8aW9tYW5pcD4KLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5j
bHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNs
dWRlIDxjYXNzZXJ0PgotI2luY2x1ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotCi0j
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTIwMCAmJiBfTVNDX1ZFUiA8IDE4
MDAgLy8gQmV0d2VlbiBWQysrIDYuMCBhbmQgVkMrKyAxMS4wCi0jaW5jbHVkZSA8ZmxvYXQuaD4K
LSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQotI2VsaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5l
ZChfX1NWUjQpIC8vU29sYXJpcwotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPGll
ZWVmcC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChf
QUlYKQotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPG1hdGguaD4KLSNkZWZpbmUg
aXNmaW5pdGUgZmluaXRlCi0jZW5kaWYKLSNlbGlmIGRlZmluZWQoX19ocHV4KQotI2lmICFkZWZp
bmVkKGlzZmluaXRlKQotI2lmIGRlZmluZWQoX19pYTY0KSAmJiAhZGVmaW5lZChmaW5pdGUpCi0j
ZGVmaW5lIGlzZmluaXRlKHgpICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9hdCkgPyBcCi0gICAg
ICAgICAgICAgICAgICAgICBfSXNmaW5pdGVmKHgpIDogX0lzRmluaXRlKHgpKSkKLSNlbHNlCi0j
aW5jbHVkZSA8bWF0aC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VuZGlm
Ci0jZWxzZQotI2luY2x1ZGUgPGNtYXRoPgotI2lmICEoZGVmaW5lZChfX1FOWE5UT19fKSkgLy8g
UU5YIGFscmVhZHkgZGVmaW5lcyBpc2Zpbml0ZQotI2RlZmluZSBpc2Zpbml0ZSBzdGQ6OmlzZmlu
aXRlCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNpZiAhZGVmaW5l
ZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAx
NTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNl
bGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNl
bmRpZgotI2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQot
I2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAot
I2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19C
T1JMQU5EQ19fKSAgCi0jaW5jbHVkZSA8ZmxvYXQuaD4KLSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0
ZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAotLy8gRGlzYWJsZSB3YXJuaW5n
IGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUg
OiA0OTk2KQotI2VuZGlmCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotI2lmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkK
LXR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gU3RyZWFtV3JpdGVyUHRyOwot
I2Vsc2UKLXR5cGVkZWYgc3RkOjphdXRvX3B0cjxTdHJlYW1Xcml0ZXI+ICAgU3RyZWFtV3JpdGVy
UHRyOwotI2VuZGlmCi0KLXN0YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcihjb25z
dCBjaGFyKiBzdHIpIHsKLSAgd2hpbGUgKCpzdHIpIHsKLSAgICBpZiAoaXNDb250cm9sQ2hhcmFj
dGVyKCooc3RyKyspKSkKLSAgICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsK
LX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hhcmFjdGVyMChjb25zdCBjaGFyKiBz
dHIsIHVuc2lnbmVkIGxlbikgewotICBjaGFyIGNvbnN0KiBlbmQgPSBzdHIgKyBsZW47Ci0gIHdo
aWxlIChlbmQgIT0gc3RyKSB7Ci0gICAgaWYgKGlzQ29udHJvbENoYXJhY3Rlcigqc3RyKSB8fCAw
PT0qc3RyKQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKytzdHI7Ci0gIH0KLSAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUpIHsK
LSAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgY2hhciogY3VycmVudCA9IGJ1ZmZlciAr
IHNpemVvZihidWZmZXIpOwotICBpZiAodmFsdWUgPT0gVmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsK
LSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMSwg
Y3VycmVudCk7Ci0gICAgKi0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwgY3VycmVudCk7Ci0gICAg
Ki0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJ
bnQodmFsdWUpLCBjdXJyZW50KTsKLSAgfQotICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIpOwot
ICByZXR1cm4gY3VycmVudDsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0
VUludCB2YWx1ZSkgewotICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICBjaGFyKiBjdXJy
ZW50ID0gYnVmZmVyICsgc2l6ZW9mKGJ1ZmZlcik7Ci0gIHVpbnRUb1N0cmluZyh2YWx1ZSwgY3Vy
cmVudCk7Ci0gIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7Ci0gIHJldHVybiBjdXJyZW50Owot
fQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhJbnQgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1
ZSkpOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpIHsKLSAgcmV0
dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpKTsKLX0KLQotI2VuZGlmIC8vICMg
aWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhk
b3VibGUgdmFsdWUsIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywgdW5zaWduZWQgaW50IHByZWNpc2lv
bikgewotICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGlzIG1vcmUgdGhhbiBsYXJnZSBlbm91
Z2ggdG8gc3RvcmUgdGhlIDE2IGRpZ2l0cyBvZgotICAvLyBwcmVjaXNpb24gcmVxdWVzdGVkIGJl
bG93LgotICBjaGFyIGJ1ZmZlclszMl07Ci0gIGludCBsZW4gPSAtMTsKLQotICBjaGFyIGZvcm1h
dFN0cmluZ1s2XTsKLSAgc3ByaW50Zihmb3JtYXRTdHJpbmcsICIlJS4lZGciLCBwcmVjaXNpb24p
OwotCi0gIC8vIFByaW50IGludG8gdGhlIGJ1ZmZlci4gV2UgbmVlZCBub3QgcmVxdWVzdCB0aGUg
YWx0ZXJuYXRpdmUgcmVwcmVzZW50YXRpb24KLSAgLy8gdGhhdCBhbHdheXMgaGFzIGEgZGVjaW1h
bCBwb2ludCBiZWNhdXNlIEpTT04gZG9lc24ndCBkaXN0aW5naXNoIHRoZQotICAvLyBjb25jZXB0
cyBvZiByZWFscyBhbmQgaW50ZWdlcnMuCi0gIGlmIChpc2Zpbml0ZSh2YWx1ZSkpIHsKLSAgICBs
ZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCBmb3JtYXRTdHJpbmcsIHZhbHVl
KTsKLSAgfSBlbHNlIHsKLSAgICAvLyBJRUVFIHN0YW5kYXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1
ZXMgd2lsbCBub3QgY29tcGFyZSB0byB0aGVtc2VsdmVzCi0gICAgaWYgKHZhbHVlICE9IHZhbHVl
KSB7Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVj
aWFsRmxvYXRzID8gIk5hTiIgOiAibnVsbCIpOwotICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7
Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFs
RmxvYXRzID8gIi1JbmZpbml0eSIgOiAiLTFlKzk5OTkiKTsKLSAgICB9IGVsc2UgewotICAgICAg
bGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/
ICJJbmZpbml0eSIgOiAiMWUrOTk5OSIpOwotICAgIH0KLSAgICAvLyBGb3IgdGhvc2UsIHdlIGRv
IG5vdCBuZWVkIHRvIGNhbGwgZml4TnVtTG9jLCBidXQgaXQgaXMgZmFzdC4KLSAgfQotICBhc3Nl
cnQobGVuID49IDApOwotICBmaXhOdW1lcmljTG9jYWxlKGJ1ZmZlciwgYnVmZmVyICsgbGVuKTsK
LSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWUsIGZhbHNlLCAxNyk7IH0KLQotc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVl
IiA6ICJmYWxzZSI7IH0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBj
aGFyKiB2YWx1ZSkgewotICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICByZXR1cm4gIiI7Ci0gIC8v
IE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgotICBpZiAoc3RycGJyayh2YWx1ZSwg
IlwiXFxcYlxmXG5cclx0IikgPT0gTlVMTCAmJgotICAgICAgIWNvbnRhaW5zQ29udHJvbENoYXJh
Y3Rlcih2YWx1ZSkpCi0gICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJcIiIpICsgdmFsdWUgKyAiXCIi
OwotICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFy
YWN0ZXJzLgotICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpzdHJpbmcgaXMgbm90IGVmZmljaWVudCwg
YnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCi0gIC8vIChOb3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJl
ICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGluZyB0aGVtLikKLSAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBtYXhzaXplID0KLSAgICAgIHN0cmxlbih2YWx1ZSkgKiAyICsgMzsgLy8gYWxs
ZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNl
cnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKLSAgcmVzdWx0ICs9ICJc
IiI7Ci0gIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyAqYyAhPSAwOyArK2MpIHsKLSAgICBz
d2l0Y2ggKCpjKSB7Ci0gICAgY2FzZSAnXCInOgotICAgICAgcmVzdWx0ICs9ICJcXFwiIjsKLSAg
ICAgIGJyZWFrOwotICAgIGNhc2UgJ1xcJzoKLSAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAg
ICBicmVhazsKLSAgICBjYXNlICdcYic6Ci0gICAgICByZXN1bHQgKz0gIlxcYiI7Ci0gICAgICBi
cmVhazsKLSAgICBjYXNlICdcZic6Ci0gICAgICByZXN1bHQgKz0gIlxcZiI7Ci0gICAgICBicmVh
azsKLSAgICBjYXNlICdcbic6Ci0gICAgICByZXN1bHQgKz0gIlxcbiI7Ci0gICAgICBicmVhazsK
LSAgICBjYXNlICdccic6Ci0gICAgICByZXN1bHQgKz0gIlxcciI7Ci0gICAgICBicmVhazsKLSAg
ICBjYXNlICdcdCc6Ci0gICAgICByZXN1bHQgKz0gIlxcdCI7Ci0gICAgICBicmVhazsKLSAgICAv
LyBjYXNlICcvJzoKLSAgICAvLyBFdmVuIHRob3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwg
ZXNjYXBlIGluIEpTT04sIGEgYmFyZQotICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkg
c2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCi0gICAgLy8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1
bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4KLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2Nh
cGluZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBz
ZXF1ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGli
aWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJp
bmcuCi0gICAgZGVmYXVsdDoKLSAgICAgIGlmIChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB7Ci0g
ICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8PCAiXFx1IiA8PCBz
dGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQotICAgICAgICAg
ICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwotICAgICAgICByZXN1
bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ICs9ICpjOwot
ICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCArPSAiXCIiOwotICBy
ZXR1cm4gcmVzdWx0OwotfQotCi0vLyBodHRwczovL2dpdGh1Yi5jb20vdXBjYXN0ZS91cGNhc3Rl
L2Jsb2IvbWFzdGVyL3NyYy91cGNvcmUvc3JjL2NzdHJpbmcvc3RybnBicmsuY3BwCi1zdGF0aWMg
Y2hhciBjb25zdCogc3RybnBicmsoY2hhciBjb25zdCogcywgY2hhciBjb25zdCogYWNjZXB0LCBz
aXplX3QgbikgewotICBhc3NlcnQoKHMgfHwgIW4pICYmIGFjY2VwdCk7Ci0KLSAgY2hhciBjb25z
dCogY29uc3QgZW5kID0gcyArIG47Ci0gIGZvciAoY2hhciBjb25zdCogY3VyID0gczsgY3VyIDwg
ZW5kOyArK2N1cikgewotICAgIGludCBjb25zdCBjID0gKmN1cjsKLSAgICBmb3IgKGNoYXIgY29u
c3QqIGEgPSBhY2NlcHQ7ICphOyArK2EpIHsKLSAgICAgIGlmICgqYSA9PSBjKSB7Ci0gICAgICAg
IHJldHVybiBjdXI7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiBOVUxMOwotfQotc3Rh
dGljIHN0ZDo6c3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJpbmdOKGNvbnN0IGNoYXIqIHZhbHVlLCB1
bnNpZ25lZCBsZW5ndGgpIHsKLSAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgcmV0dXJuICIiOwot
ICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4KLSAgaWYgKHN0cm5wYnJrKHZh
bHVlLCAiXCJcXFxiXGZcblxyXHQiLCBsZW5ndGgpID09IE5VTEwgJiYKLSAgICAgICFjb250YWlu
c0NvbnRyb2xDaGFyYWN0ZXIwKHZhbHVlLCBsZW5ndGgpKQotICAgIHJldHVybiBzdGQ6OnN0cmlu
ZygiXCIiKSArIHZhbHVlICsgIlwiIjsKLSAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBl
c2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KLSAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3Ry
aW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgotICAvLyAoTm90
ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcg
dGhlbS4pCi0gIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9Ci0gICAgICBsZW5ndGgg
KiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7
Ci0gIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MK
LSAgcmVzdWx0ICs9ICJcIiI7Ci0gIGNoYXIgY29uc3QqIGVuZCA9IHZhbHVlICsgbGVuZ3RoOwot
ICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1ZTsgYyAhPSBlbmQ7ICsrYykgewotICAgIHN3aXRj
aCAoKmMpIHsKLSAgICBjYXNlICdcIic6Ci0gICAgICByZXN1bHQgKz0gIlxcXCIiOwotICAgICAg
YnJlYWs7Ci0gICAgY2FzZSAnXFwnOgotICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKLSAgICAgIGJy
ZWFrOwotICAgIGNhc2UgJ1xiJzoKLSAgICAgIHJlc3VsdCArPSAiXFxiIjsKLSAgICAgIGJyZWFr
OwotICAgIGNhc2UgJ1xmJzoKLSAgICAgIHJlc3VsdCArPSAiXFxmIjsKLSAgICAgIGJyZWFrOwot
ICAgIGNhc2UgJ1xuJzoKLSAgICAgIHJlc3VsdCArPSAiXFxuIjsKLSAgICAgIGJyZWFrOwotICAg
IGNhc2UgJ1xyJzoKLSAgICAgIHJlc3VsdCArPSAiXFxyIjsKLSAgICAgIGJyZWFrOwotICAgIGNh
c2UgJ1x0JzoKLSAgICAgIHJlc3VsdCArPSAiXFx0IjsKLSAgICAgIGJyZWFrOwotICAgIC8vIGNh
c2UgJy8nOgotICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2Nh
cGUgaW4gSlNPTiwgYSBiYXJlCi0gICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUg
bm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KLSAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVy
c3RhbmRpbmcgc29tZXRoaW5nLikKLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGlu
ZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBzZXF1
ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxp
dHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcu
Ci0gICAgZGVmYXVsdDoKLSAgICAgIGlmICgoaXNDb250cm9sQ2hhcmFjdGVyKCpjKSkgfHwgKCpj
ID09IDApKSB7Ci0gICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8
PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAn
KQotICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwot
ICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVz
dWx0ICs9ICpjOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCAr
PSAiXCIiOwotICByZXR1cm4gcmVzdWx0OwotfQotCi0vLyBDbGFzcyBXcml0ZXIKLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwotV3JpdGVyOjp+V3JpdGVyKCkge30KLQotLy8gQ2xhc3MgRmFzdFdyaXRlcgotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLUZhc3RXcml0ZXI6OkZhc3RXcml0ZXIoKQotICAgIDogeWFtbENvbXBhdGlibGl0
eUVuYWJsZWRfKGZhbHNlKSwgZHJvcE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwKLSAgICAgIG9t
aXRFbmRpbmdMaW5lRmVlZF8oZmFsc2UpIHt9Ci0KLXZvaWQgRmFzdFdyaXRlcjo6ZW5hYmxlWUFN
TENvbXBhdGliaWxpdHkoKSB7IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA9IHRydWU7IH0KLQot
dm9pZCBGYXN0V3JpdGVyOjpkcm9wTnVsbFBsYWNlaG9sZGVycygpIHsgZHJvcE51bGxQbGFjZWhv
bGRlcnNfID0gdHJ1ZTsgfQotCi12b2lkIEZhc3RXcml0ZXI6Om9taXRFbmRpbmdMaW5lRmVlZCgp
IHsgb21pdEVuZGluZ0xpbmVGZWVkXyA9IHRydWU7IH0KLQotc3RkOjpzdHJpbmcgRmFzdFdyaXRl
cjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9jdW1lbnRfID0gIiI7Ci0gIHdyaXRl
VmFsdWUocm9vdCk7Ci0gIGlmICghb21pdEVuZGluZ0xpbmVGZWVkXykKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgcmV0dXJuIGRvY3VtZW50XzsKLX0KLQotdm9pZCBGYXN0V3JpdGVyOjp3cml0
ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgewot
ICBjYXNlIG51bGxWYWx1ZToKLSAgICBpZiAoIWRyb3BOdWxsUGxhY2Vob2xkZXJzXykKLSAgICAg
IGRvY3VtZW50XyArPSAibnVsbCI7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
ZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2
YWx1ZS5hc0xhcmdlc3RVSW50KCkpOwotICAgIGJyZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKTsKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9y
IHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVu
ZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChv
aykgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGVuZC1zdHIpKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToK
LSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZTogewotICAgIGRvY3VtZW50XyArPSAnWyc7Ci0gICAgaW50
IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNp
emU7ICsraW5kZXgpIHsKLSAgICAgIGlmIChpbmRleCA+IDApCi0gICAgICAgIGRvY3VtZW50XyAr
PSAnLCc7Ci0gICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7Ci0gICAgfQotICAgIGRvY3Vt
ZW50XyArPSAnXSc7Ci0gIH0gYnJlYWs7Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6IHsKLSAgICBWYWx1
ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOwotICAgIGRvY3VtZW50
XyArPSAneyc7Ci0gICAgZm9yIChWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJz
LmJlZ2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7Ci0gICAgICAgICArK2l0KSB7Ci0gICAgICBj
b25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKLSAgICAgIGlmIChpdCAhPSBtZW1iZXJzLmJl
Z2luKCkpCi0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICBkb2N1bWVudF8gKz0gdmFs
dWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1l
Lmxlbmd0aCgpKSk7Ci0gICAgICBkb2N1bWVudF8gKz0geWFtbENvbXBhdGlibGl0eUVuYWJsZWRf
ID8gIjogIiA6ICI6IjsKLSAgICAgIHdyaXRlVmFsdWUodmFsdWVbbmFtZV0pOwotICAgIH0KLSAg
ICBkb2N1bWVudF8gKz0gJ30nOwotICB9IGJyZWFrOwotICB9Ci19Ci0KLS8vIENsYXNzIFN0eWxl
ZFdyaXRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKCkKLSAg
ICA6IHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudFNpemVfKDMpLCBhZGRDaGlsZFZhbHVlc18oKSB7
fQotCi1zdGQ6OnN0cmluZyBTdHlsZWRXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7
Ci0gIGRvY3VtZW50XyA9ICIiOwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgaW5kZW50
U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKLSAgd3JpdGVW
YWx1ZShyb290KTsKLSAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7Ci0g
IGRvY3VtZW50XyArPSAiXG4iOwotICByZXR1cm4gZG9jdW1lbnRfOwotfQotCi12b2lkIFN0eWxl
ZFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgc3dpdGNoICh2YWx1
ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKCJudWxsIik7Ci0g
ICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzRG91YmxlKCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewot
ICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25z
dCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNo
VmFsdWUoIiIpOwotICAgIGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgYXJyYXlWYWx1ZToKLSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwot
ICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5n
ZXRNZW1iZXJOYW1lcygpKTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZh
bHVlKCJ7fSIpOwotICAgIGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAg
ICBpbmRlbnQoKTsKLSAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsKLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUgPSAqaXQ7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07
Ci0gICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3
cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKLSAgICAg
ICAgZG9jdW1lbnRfICs9ICIgOiAiOwotICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwot
ICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXplID09IDAp
Ci0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlNdWx0aUxp
bmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsK
LSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAgICBib29s
IGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZh
bHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGls
ZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICB3
cml0ZUluZGVudCgpOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgewotICAgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICAgIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgfQotICAgICAgdW5pbmRlbnQo
KTsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOwotICAgIH0gZWxzZSAvLyBvdXRwdXQgb24g
YSBzaW5nbGUgbGluZQotICAgIHsKLSAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09
IHNpemUpOwotICAgICAgZG9jdW1lbnRfICs9ICJbICI7Ci0gICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChpbmRleCA+IDAp
Ci0gICAgICAgICAgZG9jdW1lbnRfICs9ICIsICI7Ci0gICAgICAgIGRvY3VtZW50XyArPSBjaGls
ZFZhbHVlc19baW5kZXhdOwotICAgICAgfQotICAgICAgZG9jdW1lbnRfICs9ICIgXSI7Ci0gICAg
fQotICB9Ci19Ci0KLWJvb2wgU3R5bGVkV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxp
bmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwot
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5k
ZXgpIHsKLSAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBp
c011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVj
dCgpKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsK
LSAgfQotICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBs
aW5lIGxlbmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRk
Q2hpbGRWYWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEp
ICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGlu
ZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1
ZVtpbmRleF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAg
IHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxk
VmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBm
YWxzZTsKLSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmln
aHRNYXJnaW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBTdHlsZWRX
cml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKLSAgaWYgKGFkZENo
aWxkVmFsdWVzXykKLSAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKLSAgZWxzZQot
ICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlSW5k
ZW50KCkgewotICBpZiAoIWRvY3VtZW50Xy5lbXB0eSgpKSB7Ci0gICAgY2hhciBsYXN0ID0gZG9j
dW1lbnRfW2RvY3VtZW50Xy5sZW5ndGgoKSAtIDFdOwotICAgIGlmIChsYXN0ID09ICcgJykgLy8g
YWxyZWFkeSBpbmRlbnRlZAotICAgICAgcmV0dXJuOwotICAgIGlmIChsYXN0ICE9ICdcbicpIC8v
IENvbW1lbnRzIG1heSBhZGQgbmV3LWxpbmUKLSAgICAgIGRvY3VtZW50XyArPSAnXG4nOwotICB9
Ci0gIGRvY3VtZW50XyArPSBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICB3cml0ZUluZGVu
dCgpOwotICBkb2N1bWVudF8gKz0gdmFsdWU7Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjppbmRl
bnQoKSB7IGluZGVudFN0cmluZ18gKz0gc3RkOjpzdHJpbmcoaW5kZW50U2l6ZV8sICcgJyk7IH0K
LQotdm9pZCBTdHlsZWRXcml0ZXI6OnVuaW5kZW50KCkgewotICBhc3NlcnQoaW50KGluZGVudFN0
cmluZ18uc2l6ZSgpKSA+PSBpbmRlbnRTaXplXyk7Ci0gIGluZGVudFN0cmluZ18ucmVzaXplKGlu
ZGVudFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50U2l6ZV8pOwotfQotCi12b2lkIFN0eWxlZFdyaXRl
cjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKCFy
b290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGRvY3VtZW50
XyArPSAiXG4iOwotICB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVu
dCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1l
bnQuZW5kKCkpIHsKLSAgICBkb2N1bWVudF8gKz0gKml0ZXI7Ci0gICAgaWYgKCppdGVyID09ICdc
bicgJiYKLSAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcv
JykpCi0gICAgICB3cml0ZUluZGVudCgpOwotICAgICsraXRlcjsKLSAgfQotCi0gIC8vIENvbW1l
bnRzIGFyZSBzdHJpcHBlZCBvZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJlCi0g
IGRvY3VtZW50XyArPSAiXG4iOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKHJvb3QuaGFz
Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKLSAgICBkb2N1bWVudF8gKz0gIiAiICsg
cm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIGRvY3VtZW50XyArPSAiXG4iOwotICAgIGRv
Y3VtZW50XyArPSByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgfQotfQotCi1ib29sIFN0eWxlZFdyaXRlcjo6aGFzQ29tbWVudEZvclZhbHVl
KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChjb21tZW50
QmVmb3JlKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVM
aW5lKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOwotfQotCi0v
LyBDbGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1TdHlsZWRTdHJlYW1X
cml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbikKLSAgICA6
IGRvY3VtZW50XyhOVUxMKSwgcmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50YXRpb25fKGluZGVudGF0
aW9uKSwKLSAgICAgIGFkZENoaWxkVmFsdWVzXygpIHt9Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9j
dW1lbnRfID0gJm91dDsKLSAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7Ci0gIGluZGVudFN0cmlu
Z18gPSAiIjsKLSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
cm9vdCk7Ci0gIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBpbmRlbnRlZF8gPSB0
cnVlOwotICB3cml0ZVZhbHVlKHJvb3QpOwotICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShyb290KTsKLSAgKmRvY3VtZW50XyA8PCAiXG4iOwotICBkb2N1bWVudF8gPSBOVUxMOyAv
LyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4KLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7Ci0gIHN3aXRjaCAodmFsdWUu
dHlwZSgpKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHB1c2hWYWx1ZSgibnVsbCIpOwotICAg
IGJyZWFrOwotICBjYXNlIGludFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzTGFyZ2VzdEludCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdWludFZhbHVlOgotICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0RvdWJsZSgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAg
ICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPwotICAgIGNoYXIgY29uc3Qq
IHN0cjsKLSAgICBjaGFyIGNvbnN0KiBlbmQ7Ci0gICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmlu
Zygmc3RyLCAmZW5kKTsKLSAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5n
TihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOwotICAgIGVsc2UgcHVzaFZh
bHVlKCIiKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOwotICAgIGJyZWFrOwotICBjYXNl
IGFycmF5VmFsdWU6Ci0gICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKLSAgICBicmVhazsKLSAg
Y2FzZSBvYmplY3RWYWx1ZTogewotICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0
TWVtYmVyTmFtZXMoKSk7Ci0gICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKLSAgICAgIHB1c2hWYWx1
ZSgie30iKTsKLSAgICBlbHNlIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOwotICAgICAg
aW5kZW50KCk7Ci0gICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJl
Z2luKCk7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1l
ID0gKml0OwotICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOwot
ICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7Ci0gICAgICAg
ICpkb2N1bWVudF8gPDwgIiA6ICI7Ci0gICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0g
ICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKLSAgICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFs
dWUmIHZhbHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXpl
ID09IDApCi0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlN
dWx0aUxpbmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxp
bmUpIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAg
ICBib29sIGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNp
Z25lZCBpbmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBj
aGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgICAgICAgICBpbmRlbnRlZF8g
PSB0cnVlOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgaW5k
ZW50ZWRfID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkg
ewotICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICpkb2N1bWVudF8gPDwgIiwi
OwotICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsK
LSAgICAgIH0KLSAgICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsK
LSAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3Nl
cnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpkb2N1bWVudF8gPDwgIlsg
IjsKLSAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKLSAgICAgICAgaWYgKGluZGV4ID4gMCkKLSAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7
Ci0gICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAg
ICAgICpkb2N1bWVudF8gPDwgIiBdIjsKLSAgICB9Ci0gIH0KLX0KLQotYm9vbCBTdHlsZWRTdHJl
YW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBpbnQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0
TWFyZ2luXzsKLSAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkgewotICAgIGNvbnN0IFZhbHVl
JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZh
bHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDApOwotICB9Ci0gIGlmICghaXNNdWx0aUxp
bmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCi0gIHsKLSAgICBj
aGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKLSAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOwot
ICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypu
ICsgJyBdJwotICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7
Ci0gICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVlW2luZGV4XSkpIHsKLSAgICAgICAg
aXNNdWx0aUxpbmUgPSB0cnVlOwotICAgICAgfQotICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRl
eF0pOwotICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgo
KSk7Ci0gICAgfQotICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOwotICAgIGlzTXVsdGlMaW5l
ID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87Ci0gIH0KLSAgcmV0
dXJuIGlzTXVsdGlMaW5lOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVl
KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQotICAg
IGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBlbHNlCi0gICAgKmRvY3VtZW50XyA8
PCB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgewot
ICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3Ry
aW5nCi0gIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBi
dXQKLSAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBz
b21lIHNhdmVkIHN0YXRlLgotICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCi0gICpk
b2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBp
ZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKLSAg
aW5kZW50ZWRfID0gZmFsc2U7Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQo
KSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9Ci0KLXZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGlu
ZGVudGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdf
LnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYg
KCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGlmICgh
aW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0
ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1lbnQu
ZW5kKCkpIHsKLSAgICAqZG9jdW1lbnRfIDw8ICppdGVyOwotICAgIGlmICgqaXRlciA9PSAnXG4n
ICYmCi0gICAgICAgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycp
KQotICAgICAgLy8gd3JpdGVJbmRlbnQoKTsgIC8vIHdvdWxkIGluY2x1ZGUgbmV3bGluZQotICAg
ICAgKmRvY3VtZW50XyA8PCBpbmRlbnRTdHJpbmdfOwotICAgICsraXRlcjsKLSAgfQotICBpbmRl
bnRlZF8gPSBmYWxzZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KSB7Ci0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCi0gICAgKmRvY3VtZW50XyA8PCAnICcg
PDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgKmRv
Y3VtZW50XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgfQotICBpbmRlbnRl
ZF8gPSBmYWxzZTsKLX0KLQotYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JW
YWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25T
YW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKLX0K
LQotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ci0KLS8vLyBTY29wZWQgZW51bXMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgQysrMTEuCi1zdHJ1
Y3QgQ29tbWVudFN0eWxlIHsKLSAgLy8vIERlY2lkZSB3aGV0aGVyIHRvIHdyaXRlIGNvbW1lbnRz
LgotICBlbnVtIEVudW0gewotICAgIE5vbmUsICAvLy88IERyb3AgYWxsIGNvbW1lbnRzLgotICAg
IE1vc3QsICAvLy88IFJlY292ZXIgb2RkIGJlaGF2aW9yIG9mIHByZXZpb3VzIHZlcnNpb25zIChu
b3QgaW1wbGVtZW50ZWQgeWV0KS4KLSAgICBBbGwgIC8vLzwgS2VlcCBhbGwgY29tbWVudHMuCi0g
IH07Ci19OwotCi1zdHJ1Y3QgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyCi17Ci0gIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAotICAgICAgc3RkOjpzdHJpbmcg
Y29uc3QmIGluZGVudGF0aW9uLAotICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAotICAgICAg
c3RkOjpzdHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAotICAgICAgc3RkOjpzdHJpbmcgY29uc3Qm
IG51bGxTeW1ib2wsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1i
b2wsCi0gICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCi0gICAgICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uKTsKLSAgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNv
dXQpOwotcHJpdmF0ZToKLSAgdm9pZCB3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0g
IHZvaWQgd3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0gIGJvb2wgaXNNdWx0
aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCBwdXNoVmFsdWUoc3RkOjpzdHJp
bmcgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUluZGVudCgpOwotICB2b2lkIHdyaXRlV2l0
aEluZGVudChzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUpOwotICB2b2lkIGluZGVudCgpOwotICB2
b2lkIHVuaW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29u
c3QmIHJvb3QpOwotICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVl
IGNvbnN0JiByb290KTsKLSAgc3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZh
bHVlJiB2YWx1ZSk7Ci0KLSAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRW
YWx1ZXM7Ci0KLSAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
bl87Ci0gIENvbW1lbnRTdHlsZTo6RW51bSBjc187Ci0gIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9s
XzsKLSAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbF87Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVG
ZWVkU3ltYm9sXzsKLSAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOwotICBib29sIGluZGVudGVk
XyA6IDE7Ci0gIGJvb2wgdXNlU3BlY2lhbEZsb2F0c18gOiAxOwotICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uXzsKLX07Ci1CdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXIoCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgaW5kZW50YXRpb24sCi0gICAgICBDb21t
ZW50U3R5bGU6OkVudW0gY3MsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2ws
Ci0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbnVsbFN5bWJvbCwKLSAgICAgIHN0ZDo6c3RyaW5n
IGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5bWJvbCwKLSAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0
cywKLSAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24pCi0gIDogcmlnaHRNYXJnaW5fKDc0KQot
ICAsIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbikKLSAgLCBjc18oY3MpCi0gICwgY29sb25TeW1i
b2xfKGNvbG9uU3ltYm9sKQotICAsIG51bGxTeW1ib2xfKG51bGxTeW1ib2wpCi0gICwgZW5kaW5n
TGluZUZlZWRTeW1ib2xfKGVuZGluZ0xpbmVGZWVkU3ltYm9sKQotICAsIGFkZENoaWxkVmFsdWVz
XyhmYWxzZSkKLSAgLCBpbmRlbnRlZF8oZmFsc2UpCi0gICwgdXNlU3BlY2lhbEZsb2F0c18odXNl
U3BlY2lhbEZsb2F0cykKLSAgLCBwcmVjaXNpb25fKHByZWNpc2lvbikKLXsKLX0KLWludCBCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVh
bSogc291dCkKLXsKLSAgc291dF8gPSBzb3V0OwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgaW5kZW50U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShyb290KTsKLSAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0g
IGluZGVudGVkXyA9IHRydWU7Ci0gIHdyaXRlVmFsdWUocm9vdCk7Ci0gIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKHJvb3QpOwotICAqc291dF8gPDwgZW5kaW5nTGluZUZlZWRTeW1i
b2xfOwotICBzb3V0XyA9IE5VTEw7Ci0gIHJldHVybiAwOwotfQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgc3dpdGNoICh2
YWx1ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKG51bGxTeW1i
b2xfKTsKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOwotICAgIGJyZWFrOwotICBjYXNlIHVpbnRW
YWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkp
KTsKLSAgICBicmVhazsKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9T
dHJpbmcodmFsdWUuYXNEb3VibGUoKSwgdXNlU3BlY2lhbEZsb2F0c18sIHByZWNpc2lvbl8pKTsK
LSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgaXMg
cG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNo
YXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQp
OwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNoVmFsdWUoIiIpOwotICAg
IGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRv
U3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZToK
LSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwotICBjYXNlIG9iamVjdFZh
bHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygp
KTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZhbHVlKCJ7fSIpOwotICAg
IGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAgICBpbmRlbnQoKTsKLSAg
ICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAg
IGZvciAoOzspIHsKLSAgICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG5hbWUgPSAqaXQ7Ci0gICAg
ICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07Ci0gICAgICAgIHdyaXRl
Q29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3cml0ZVdpdGhJbmRlbnQo
dmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihu
YW1lLmxlbmd0aCgpKSkpOwotICAgICAgICAqc291dF8gPDwgY29sb25TeW1ib2xfOwotICAgICAg
ICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVu
ZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgKnNvdXRfIDw8ICIs
IjsKLSAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
Ci0gICAgICB9Ci0gICAgICB1bmluZGVudCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7
Ci0gICAgfQotICB9IGJyZWFrOwotICB9Ci19Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OndyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgdW5zaWduZWQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgaWYgKHNpemUgPT0gMCkKLSAgICBwdXNoVmFsdWUoIltdIik7
Ci0gIGVsc2UgewotICAgIGJvb2wgaXNNdWx0aUxpbmUgPSAoY3NfID09IENvbW1lbnRTdHlsZTo6
QWxsKSB8fCBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzTXVsdGlMaW5lKSB7Ci0g
ICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKLSAgICAgIGluZGVudCgpOwotICAgICAgYm9vbCBo
YXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOwotICAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOwotICAgICAgZm9yICg7OykgewotICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1
ZSA9IHZhbHVlW2luZGV4XTsKLSAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgIGlmIChoYXNDaGlsZFZhbHVlKQotICAgICAgICAgIHdyaXRlV2l0aElu
ZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgaWYg
KCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsK
LSAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGluZGVudGVkXyA9
IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKLSAgICAg
ICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAqc291dF8gPDwgIiwiOwotICAgICAgICB3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgIH0KLSAg
ICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKLSAgICB9IGVsc2Ug
Ly8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3NlcnQoY2hpbGRWYWx1
ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpzb3V0XyA8PCAiWyI7Ci0gICAgICBpZiAoIWlu
ZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOwotICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgICBpZiAoaW5kZXggPiAw
KQotICAgICAgICAgICpzb3V0XyA8PCAiLCAiOwotICAgICAgICAqc291dF8gPDwgY2hpbGRWYWx1
ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpICpz
b3V0XyA8PCAiICI7Ci0gICAgICAqc291dF8gPDwgIl0iOwotICAgIH0KLSAgfQotfQotCi1ib29s
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFs
dWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxpbmUgPSBz
aXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwotICBmb3Ig
KGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsK
LSAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBpc011bHRp
TGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKLSAgfQot
ICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxl
bmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRkQ2hpbGRW
YWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsg
Ly8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRl
eF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHdyaXRl
VmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVz
X1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJn
aW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6cHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAo
YWRkQ2hpbGRWYWx1ZXNfKQotICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBl
bHNlCi0gICAgKnNvdXRfIDw8IHZhbHVlOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUluZGVudCgpIHsKLSAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQg
dGhlIHNvLWZhci13cml0dGVuIHN0cmluZwotICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBh
cmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0Ci0gIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRv
IHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KLSAgLy8gVGhlIGNhbGxlciBj
aGVja3MgaW5kZW50ZWRfLgotCi0gIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpIHsKLSAgICAv
LyBJbiB0aGlzIGNhc2UsIGRyb3AgbmV3bGluZXMgdG9vLgotICAgICpzb3V0XyA8PCAnXG4nIDw8
IGluZGVudFN0cmluZ187Ci0gIH0KLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAoIWluZGVu
dGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKnNvdXRfIDw8IHZhbHVlOwotICBpbmRlbnRlZF8gPSBm
YWxzZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRl
bnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsgfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVu
dGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNp
emUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25zdCYgcm9vdCkgewotICBp
ZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJuOwotICBpZiAoIXJvb3QuaGFzQ29t
bWVudChjb21tZW50QmVmb3JlKSkKLSAgICByZXR1cm47Ci0KLSAgaWYgKCFpbmRlbnRlZF8pIHdy
aXRlSW5kZW50KCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50ID0gcm9vdC5nZXRDb21t
ZW50KGNvbW1lbnRCZWZvcmUpOwotICBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9
IGNvbW1lbnQuYmVnaW4oKTsKLSAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgewotICAg
ICpzb3V0XyA8PCAqaXRlcjsKLSAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgotICAgICAgIChpdGVy
ICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKLSAgICAgIC8vIHdyaXRl
SW5kZW50KCk7ICAvLyB3b3VsZCB3cml0ZSBleHRyYSBuZXdsaW5lCi0gICAgICAqc291dF8gPDwg
aW5kZW50U3RyaW5nXzsKLSAgICArK2l0ZXI7Ci0gIH0KLSAgaW5kZW50ZWRfID0gZmFsc2U7Ci19
Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KSB7Ci0gIGlmIChjc18gPT0gQ29tbWVudFN0eWxl
OjpOb25lKSByZXR1cm47Ci0gIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1l
TGluZSkpCi0gICAgKnNvdXRfIDw8ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKTsKLQotICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKLSAg
ICB3cml0ZUluZGVudCgpOwotICAgICpzb3V0XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFm
dGVyKTsKLSAgfQotfQotCi0vLyBzdGF0aWMKLWJvb2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVl
Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEFmdGVyKTsKLX0KLQotLy8vLy8vLy8vLy8vLy8vCi0vLyBTdHJlYW1Xcml0ZXIKLQotU3Ry
ZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIoKQotICAgIDogc291dF8oTlVMTCkKLXsKLX0KLVN0cmVh
bVdyaXRlcjo6flN0cmVhbVdyaXRlcigpCi17Ci19Ci1TdHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5G
YWN0b3J5KCkKLXt9Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjpTdHJlYW1Xcml0ZXJCdWlsZGVyKCkK
LXsKLSAgc2V0RGVmYXVsdHMoJnNldHRpbmdzXyk7Ci19Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjp+
U3RyZWFtV3JpdGVyQnVpbGRlcigpCi17fQotU3RyZWFtV3JpdGVyKiBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjpuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdAotewotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
biA9IHNldHRpbmdzX1siaW5kZW50YXRpb24iXS5hc1N0cmluZygpOwotICBzdGQ6OnN0cmluZyBj
c19zdHIgPSBzZXR0aW5nc19bImNvbW1lbnRTdHlsZSJdLmFzU3RyaW5nKCk7Ci0gIGJvb2wgZXlj
ID0gc2V0dGluZ3NfWyJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9vbCgpOwotICBib29s
IGRucCA9IHNldHRpbmdzX1siZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKLSAgYm9v
bCB1c2YgPSBzZXR0aW5nc19bInVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsgCi0gIHVuc2ln
bmVkIGludCBwcmUgPSBzZXR0aW5nc19bInByZWNpc2lvbiJdLmFzVUludCgpOwotICBDb21tZW50
U3R5bGU6OkVudW0gY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKLSAgaWYgKGNzX3N0ciA9PSAiQWxs
IikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7Ci0gIH0gZWxzZSBpZiAoY3Nfc3RyID09
ICJOb25lIikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpOb25lOwotICB9IGVsc2UgewotICAg
IHRocm93UnVudGltZUVycm9yKCJjb21tZW50U3R5bGUgbXVzdCBiZSAnQWxsJyBvciAnTm9uZSci
KTsKLSAgfQotICBzdGQ6OnN0cmluZyBjb2xvblN5bWJvbCA9ICIgOiAiOwotICBpZiAoZXljKSB7
Ci0gICAgY29sb25TeW1ib2wgPSAiOiAiOwotICB9IGVsc2UgaWYgKGluZGVudGF0aW9uLmVtcHR5
KCkpIHsKLSAgICBjb2xvblN5bWJvbCA9ICI6IjsKLSAgfQotICBzdGQ6OnN0cmluZyBudWxsU3lt
Ym9sID0gIm51bGwiOwotICBpZiAoZG5wKSB7Ci0gICAgbnVsbFN5bWJvbCA9ICIiOwotICB9Ci0g
IGlmIChwcmUgPiAxNykgcHJlID0gMTc7Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3lt
Ym9sID0gIiI7Ci0gIHJldHVybiBuZXcgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCi0gICAgICBp
bmRlbnRhdGlvbiwgY3MsCi0gICAgICBjb2xvblN5bWJvbCwgbnVsbFN5bWJvbCwgZW5kaW5nTGlu
ZUZlZWRTeW1ib2wsIHVzZiwgcHJlKTsKLX0KLXN0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5
cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMpCi17Ci0gIHZhbGlkX2tleXMtPmNs
ZWFyKCk7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiaW5kZW50YXRpb24iKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJjb21tZW50U3R5bGUiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSIpOwotICB2YWxpZF9rZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vo
b2xkZXJzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgidXNlU3BlY2lhbEZsb2F0cyIpOwotICB2
YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvbiIpOwotfQotYm9vbCBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFs
dWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAv
LyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYg
PSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZh
bGlkV3JpdGVyS2V5cygmdmFsaWRfa2V5cyk7Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0
aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAgc2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5
ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5l
bmQoKSkgewotICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAg
cmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19Ci1WYWx1ZSYgU3RyZWFtV3JpdGVyQnVpbGRlcjo6
b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpCi17Ci0gIHJldHVybiBzZXR0aW5nc19ba2V5XTsK
LX0KLS8vIHN0YXRpYwotdm9pZCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29u
OjpWYWx1ZSogc2V0dGluZ3MpCi17Ci0gIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRz
XQotICAoKnNldHRpbmdzKVsiY29tbWVudFN0eWxlIl0gPSAiQWxsIjsKLSAgKCpzZXR0aW5ncylb
ImluZGVudGF0aW9uIl0gPSAiXHQiOwotICAoKnNldHRpbmdzKVsiZW5hYmxlWUFNTENvbXBhdGli
aWxpdHkiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiZHJvcE51bGxQbGFjZWhvbGRlcnMiXSA9
IGZhbHNlOwotICAoKnNldHRpbmdzKVsidXNlU3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7Ci0gICgq
c2V0dGluZ3MpWyJwcmVjaXNpb24iXSA9IDE3OwotICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJE
ZWZhdWx0c10KLX0KLQotc3RkOjpzdHJpbmcgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0
b3J5IGNvbnN0JiBidWlsZGVyLCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBzdGQ6Om9zdHJpbmdz
dHJlYW0gc291dDsKLSAgU3RyZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0
cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZShyb290LCAmc291dCk7Ci0gIHJldHVybiBz
b3V0LnN0cigpOwotfQotCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBz
b3V0LCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBTdHJlYW1Xcml0ZXJCdWlsZGVyIGJ1aWxkZXI7
Ci0gIFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIo
KSk7Ci0gIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQpOwotICByZXR1cm4gc291dDsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVu
dnJfYXBpX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM5NmU2NzcyMmYz
Njk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vLz09PT09PT09
PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNkZWZpbmUgVlJf
QVBJX0VYUE9SVCAxCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaXZyY2xpZW50Y29y
ZS5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRl
ICJobWRlcnJvcnNfcHVibGljLmgiCi0jaW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgi
Ci0jaW5jbHVkZSA8bXV0ZXg+Ci0KLXVzaW5nIHZyOjpFVlJJbml0RXJyb3I7Ci11c2luZyB2cjo6
SVZSU3lzdGVtOwotdXNpbmcgdnI6OklWUkNsaWVudENvcmU7Ci11c2luZyB2cjo6VlJJbml0RXJy
b3JfTm9uZTsKLQotbmFtZXNwYWNlIHZyCi17Ci0KLXN0YXRpYyB2b2lkICpnX3BWUk1vZHVsZSA9
IE5VTEw7Ci1zdGF0aWMgSVZSQ2xpZW50Q29yZSAqZ19wSG1kU3lzdGVtID0gTlVMTDsKLXN0YXRp
YyBzdGQ6OnJlY3Vyc2l2ZV9tdXRleCBnX211dGV4U3lzdGVtOwotCi0KLXR5cGVkZWYgdm9pZCog
KCpWUkNsaWVudENvcmVGYWN0b3J5Rm4pKGNvbnN0IGNoYXIgKnBJbnRlcmZhY2VOYW1lLCBpbnQg
KnBSZXR1cm5Db2RlKTsKLQotc3RhdGljIHVpbnQzMl90IGdfblZSVG9rZW4gPSAwOwotCi11aW50
MzJfdCBWUl9HZXRJbml0VG9rZW4oKQotewotICAgICAgIHJldHVybiBnX25WUlRva2VuOwotfQot
Ci1FVlJJbml0RXJyb3IgVlJfTG9hZEhtZFN5c3RlbUludGVybmFsKCk7Ci12b2lkIENsZWFudXBJ
bnRlcm5hbEludGVyZmFjZXMoKTsKLQotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlw
ZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAgIEVW
UkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKLSAgICAgICBpZiAo
IGVyciA9PSB2cjo6VlJJbml0RXJyb3JfTm9uZSApCi0gICAgICAgewotICAgICAgICAgICAgICBl
cnIgPSBnX3BIbWRTeXN0ZW0tPkluaXQoIGVBcHBsaWNhdGlvblR5cGUsIHBTdGFydHVwSW5mbyAp
OwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAgICAgICAgICAgICpwZUVy
cm9yID0gZXJyOwotCi0gICAgICAgaWYgKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCi0gICAg
ICAgewotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOwotICAg
ICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBnX3BWUk1vZHVs
ZSA9IE5VTEw7Ci0KLSAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgfQotCi0gICAgICAg
cmV0dXJuICsrZ19uVlJUb2tlbjsKLX0KLQotVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExU
WVBFIFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlv
blR5cGUgZUFwcGxpY2F0aW9uVHlwZSApOwotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwoIEVW
UkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25U
eXBlICkKLXsKLSAgICAgICByZXR1cm4gVlJfSW5pdEludGVybmFsMiggcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSwgbnVsbHB0ciApOwotfQotCi12b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKQot
ewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19t
dXRleFN5c3RlbSApOwotICAgICAgIAotICAgICAgIGlmICggZ19wSG1kU3lzdGVtICkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGdfcEhtZFN5c3RlbS0+Q2xlYW51cCgpOwotICAgICAgICAgICAg
ICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgIH0KLSAgICAgICBpZiAoIGdfcFZSTW9kdWxl
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxl
ICk7Ci0gICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKLSAgICAgICB9Ci0KLSNpZiAh
ZGVmaW5lZCggVlJfQVBJX1BVQkxJQyApCi0gICAgICAgQ2xlYW51cEludGVybmFsSW50ZXJmYWNl
cygpOwotI2VuZGlmCi0KLSAgICAgICArK2dfblZSVG9rZW47Ci19Ci0KLUVWUkluaXRFcnJvciBW
Ul9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNSdW50aW1l
UGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAgYm9vbCBiUmVhZFBhdGhSZWdp
c3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAm
c0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwotICAgICAgIGlmKCAhYlJlYWRQ
YXRoUmVnaXN0cnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIC8vIGZp
Z3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAg
ICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAg
aWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCi0gICAgICAgewotICAgICAg
ICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQ7
Ci0gICAgICAgfQotCi0gICAgICAgLy8gQmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNl
bGVjdCBkZWJ1ZyB2cy4gcmVsZWFzZSB5ZXQgd2UnbGwganVzdAotICAgICAgIC8vIHVzZSBkZWJ1
ZyBpZiBpdCdzIHRoZXJlCi0jaWYgZGVmaW5lZCggTElOVVg2NCApCi0gICAgICAgc3RkOjpzdHJp
bmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iLCBQTEFUU1VCRElS
ICk7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1
bnRpbWVQYXRoLCAiYmluIiApOwotI2VuZGlmCi0gICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5
KCBzVGVzdFBhdGggKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdDsKLSAgICAgICB9Ci0KLSNpZiBkZWZpbmVk
KCBXSU42NCApCi0gICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQYXRoX0pvaW4oIHNUZXN0
UGF0aCwgInZyY2xpZW50X3g2NCIgRFlOQU1JQ19MSUJfRVhUICk7Ci0jZWxzZQotICAgICAgIHN0
ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBhdGgsICJ2cmNsaWVudCIgRFlO
QU1JQ19MSUJfRVhUICk7Ci0jZW5kaWYKLQotICAgICAgIC8vIG9ubHkgbG9vayBpbiB0aGUgb3Zl
cnJpZGUKLSAgICAgICB2b2lkICpwTW9kID0gU2hhcmVkTGliX0xvYWQoIHNETExQYXRoLmNfc3Ry
KCkgKTsKLSAgICAgICAvLyBub3RoaW5nIG1vcmUgdG8gZG8gaWYgd2UgY2FuJ3QgbG9hZCB0aGUg
RExMCi0gICAgICAgaWYoICFwTW9kICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiB2
cjo6VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kOwotICAgICAgIH0KLQotICAg
ICAgIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiBmbkZhY3RvcnkgPSAoIFZSQ2xpZW50Q29yZUZhY3Rv
cnlGbiApKCBTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIHBNb2QsICJWUkNsaWVudENvcmVGYWN0b3J5
IiApICk7Ci0gICAgICAgaWYoICFmbkZhY3RvcnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
U2hhcmVkTGliX1VubG9hZCggcE1vZCApOwotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIGludCBuUmV0
dXJuQ29kZSA9IDA7Ci0gICAgICAgZ19wSG1kU3lzdGVtID0gc3RhdGljX2Nhc3Q8IElWUkNsaWVu
dENvcmUgKiA+ICggZm5GYWN0b3J5KCB2cjo6SVZSQ2xpZW50Q29yZV9WZXJzaW9uLCAmblJldHVy
bkNvZGUgKSApOwotICAgICAgIGlmKCAhZ19wSG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHZy
OjpWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAg
IGdfcFZSTW9kdWxlID0gcE1vZDsKLSAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLX0K
LQotCi12b2lkICpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKGNvbnN0IGNoYXIgKnBjaEludGVyZmFj
ZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvcikKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAg
IGlmICghZ19wSG1kU3lzdGVtKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKHBlRXJyb3Ip
Ci0gICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IHZyOjpWUkluaXRFcnJvcl9Jbml0X05v
dEluaXRpYWxpemVkOwotICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFj
ZVZlcnNpb24sIHBlRXJyb3IpOwotfQotCi1ib29sIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24pCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAg
ICBpZiAoIWdfcEhtZFN5c3RlbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5Jc0ludGVyZmFjZVZl
cnNpb25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKSA9PSBWUkluaXRFcnJvcl9Ob25lOwotfQot
Ci1ib29sIFZSX0lzSG1kUHJlc2VudCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6
cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19w
SG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkg
aW5pdGlhbGl6ZWQsIGp1c3QgY2FsbCB0aHJvdWdoCi0gICAgICAgICAgICAgIHJldHVybiBnX3BI
bWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3
b3JrCi0gICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50
ZXJuYWwoKTsKLSAgICAgICAgICAgICAgaWYoIGVyciAhPSBWUkluaXRFcnJvcl9Ob25lICkKLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgICBib29sIGJI
YXNIbWQgPSBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLQotICAgICAgICAgICAgICBn
X3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BW
Uk1vZHVsZSApOwotICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7Ci0KLSAgICAgICAg
ICAgICAgcmV0dXJuIGJIYXNIbWQ7Ci0gICAgICAgfQotfQotCi0vKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCi1ib29sIFZSX0lzUnVudGltZUlu
c3RhbGxlZCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4
PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIE9w
ZW5WUiBpcyBvYnZpb3VzbHkgaW5zdGFsbGVkCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBvdGhlcndp
c2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKLSAgICAgICAgICAgICAgc3RkOjpzdHJp
bmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7Ci0KLSAgICAgICAgICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgICAgICAgICBpZiggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZvciB2
cmNsaWVudC5kbGwKLSAgICAgICAgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBh
Y3R1YWxseSBleGlzdHMuCi0gICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1
bnRpbWVQYXRoICkgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyB0aGUgaW5zdGFs
bGF0aW9uIG1heSBiZSBjb3JydXB0IGluIHNvbWUgd2F5LCBidXQgaXQgY2VydGFpbmx5IGxvb2tz
IGluc3RhbGxlZAotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICB9Ci19Ci0KLQot
LyoqIFJldHVybnMgd2hlcmUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotY29uc3Qg
Y2hhciAqVlJfUnVudGltZVBhdGgoKQotewotICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRv
IGRvIGEgYml0IG1vcmUgd29yawotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBzUnVudGltZVBh
dGg7Ci0gICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgIGlmICggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgIH0KLQotICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUg
d2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAgICAgLy8gc2VlIGlmIHRo
ZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAgaWYgKCAhUGF0aF9Jc0Rp
cmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNSdW50aW1lUGF0aC5jX3N0cigp
OwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBzeW1ib2wgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3Iu
ICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3Ig
ZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOwotCi0gICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCi0gICAg
ICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldElERm9yVlJJbml0RXJyb3IoIGVycm9y
ICk7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gR2V0SURGb3JWUkluaXRFcnJv
ciggZXJyb3IgKTsKLX0KLQotCi0vKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lv
biBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzRW5n
bGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOwotCi0g
ICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQotICAgICAgICAgICAgICByZXR1cm4gZ19wSG1kU3lz
dGVtLT5HZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVycm9yICk7Ci0gICAgICAgZWxzZQot
ICAgICAgICAgICAgICByZXR1cm4gR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciAp
OwotfQotCi0KLVZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9HZXRTdHJp
bmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlcnJvciApOwotCi0vKiogUmV0dXJucyB0
aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFy
ICpWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggRVZSSW5pdEVycm9yIGVycm9yICkKLXsKLSAgICAg
ICByZXR1cm4gVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggZXJyb3IgKTsK
LX0KLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY4YmQyM2Q0MGVlNDlmNDA4MGY3MWIyNjYwMzNkNjRkYTFjZmVmYzMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI2luY2x1ZGUgImRpcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgInN0cnRvb2xz
X3B1YmxpYy5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLQotI2luY2x1ZGUgPGVy
cm5vLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZmRlZiBfV0lOMzIKLSNpbmNsdWRlICJ3
aW5kb3dzLmgiCi0jZWxzZQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+
Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNlbmRpZgot
Ci0jaWYgZGVmaW5lZCggT1NYICkKLSNpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+Ci0jZW5kaWYK
LQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiB1dGlsaXR5IGZ1bmN0aW9u
IHRvIGNyZWF0ZSBkaXJzICYgc3ViZGlycwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBC
Q3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICkKLXsKLSAgICAg
ICAvLyBEb2VzIGl0IGFscmVhZHkgZXhpc3Q/Ci0gICAgICAgaWYgKCBQYXRoX0lzRGlyZWN0b3J5
KCBwY2hQYXRoICkgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgIC8vIGNv
cHkgdGhlIHBhdGggaW50byBzb21ldGhpbmcgd2UgY2FuIG11bmdlCi0gICAgICAgaW50IGxlbiA9
IChpbnQpc3RybGVuKCBwY2hQYXRoICk7Ci0gICAgICAgY2hhciAqcGF0aCA9IChjaGFyICopbWFs
bG9jKCBsZW4gKyAxICk7Ci0gICAgICAgc3RyY3B5KCBwYXRoLCBwY2hQYXRoICk7Ci0KLSAgICAg
ICAvLyBXYWxrIGJhY2t3YXJkcyB0byBmaXJzdCBub24tZXhpc3RpbmcgZGlyIHRoYXQgd2UgZmlu
ZAotICAgICAgIGNoYXIgKnMgPSBwYXRoICsgbGVuIC0gMTsKLQotICAgICAgIGNvbnN0IGNoYXIg
c2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0gICAgICAgd2hpbGUgKCBzID4gcGF0aCApCi0gICAg
ICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAgICAgICAgYm9v
bCBiRXhpc3RzID0gUGF0aF9Jc0RpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAg
ICAgKnMgPSBzbGFzaDsKLQotICAgICAgICAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3M7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLS1zOwotICAgICAgIH0KLQotICAgICAg
IC8vIGFuZCB0aGVuIG1vdmUgZm9yd2FyZHMgZnJvbSB0aGVyZQotCi0gICAgICAgd2hpbGUgKCAq
cyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAg
ICAgICAgQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAgICAgKnMg
PSBzbGFzaDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBzKys7Ci0gICAgICAgfQot
Ci0gICAgICAgYm9vbCBiUmV0VmFsID0gQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAg
IGZyZWUoIHBhdGggKTsKLSAgICAgICByZXR1cm4gYlJldFZhbDsKLX0KLQotCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBDcmVhdGVzIHRoZSBkaXJlY3RvcnksIHJldHVybmlu
ZyB0cnVlIGlmIGl0IGlzIGNyZWF0ZWQsIG9yIGlmIGl0IGFscmVhZHkgZXhpc3RlZAotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQ
YXRoICkKLXsKLSNpZmRlZiBXSU4zMgotICAgICAgIHN0ZDo6d3N0cmluZyB3UGF0aCA9IFVURjh0
bzE2KCBwY2hQYXRoICk7Ci0gICAgICAgaWYgKCA6OkNyZWF0ZURpcmVjdG9yeVcoIHdQYXRoLmNf
c3RyKCksIE5VTEwgKSApCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgaWYg
KCA6OkdldExhc3RFcnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTICkKLSAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIGlu
dCBpID0gbWtkaXIoIHBjaFBhdGgsIFNfSVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTyApOwotICAg
ICAgIGlmICggaSA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgaWYg
KCBlcnJubyA9PSBFRVhJU1QgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjA0OGI0MWI3ODE0ZmRlMDcyNzc2NGFlNzk0ZWRlOGUwZGZkNGU2MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0ZGludC5oPgot
I2luY2x1ZGUgPHN0cmluZz4KLQotCi0jaWYgIWRlZmluZWQoX1dJTjMyKQotI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotCi1leHRlcm4gYm9v
bCBCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci1leHRl
cm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci0KLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2
YXJ0b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWQxNmQ5
Zjg1NjI2ZmNhMDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAg
QEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgot
Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotCi0jdW5kZWYgR2V0
RW52aXJvbm1lbnRWYXJpYWJsZQotI3VuZGVmIFNldEVudmlyb25tZW50VmFyaWFibGUKLSNlbmRp
ZgotCi0KLXN0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBj
aFZhck5hbWUgKQotewotI2lmIGRlZmluZWQoX1dJTjMyKQotICAgICAgIGNoYXIgcmNoVmFsdWVb
MzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52IHZhciBvbiBXaW5kb3dzCi0gICAgICAgRFdP
UkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHJjaFZhbHVl
LCBzaXplb2YoIHJjaFZhbHVlICkgKTsKLSAgICAgICBpZiggY0NoYXJzID09IDAgKQotICAgICAg
ICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gcmNo
VmFsdWU7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIGNoYXIgKnBjaFZhbHVlID0gZ2V0
ZW52KCBwY2hWYXJOYW1lICk7Ci0gICAgICAgaWYoIHBjaFZhbHVlICkKLSAgICAgICAgICAgICAg
cmV0dXJuIHBjaFZhbHVlOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwot
I2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi1ib29s
IFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUsIGNvbnN0IGNo
YXIgKnBjaFZhclZhbHVlICkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4g
MCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUgKTsK
LSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAgaWYoIHBjaFZhclZhbHVlID09IE5VTEwgKQot
ICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNldGVudiggcGNoVmFyTmFtZSApOwotICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuIDAgPT0gc2V0ZW52KCBwY2hWYXJOYW1lLCBwY2hW
YXJWYWx1ZSwgMSApOwotI2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5k
aWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
ZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZGU5ODFhYzNlMzk3MDZkNTlhMDBjMmM0MWY4NTU4ZTRjNWQyMDYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxzdHJpbmc+Ci0KLXN0ZDo6c3RyaW5nIEdl
dEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKTsKLWJvb2wgU2V0
RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAq
cGNoVmFyVmFsdWUgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MTJlMWM0YjNhODEzMDhjMDE5ZDcyYmNjY2Q3YzZhZTcwOTgxOWY0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyMjkgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaG1kZXJyb3Jz
X3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8YWxnb3JpdGhtPgotCi11
c2luZyBuYW1lc3BhY2UgdnI7Ci0KLSNkZWZpbmUgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKGVudW1W
YWx1ZSkgY2FzZSBlbnVtVmFsdWU6IHJldHVybiAjZW51bVZhbHVlOwotCi0KLWNvbnN0IGNoYXIg
KkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQot
ewotICAgICAgIHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Ob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJObyBFcnJvciAoMCkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SW5zdGFsbGF0aW9uIE5vdCBGb3VuZCAoMTAwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0
YWxsYXRpb24gQ29ycnVwdCAoMTAxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZS
Q2xpZW50RExMTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJ2cmNsaWVudCBT
aGFyZWQgTGliIE5vdCBGb3VuZCAoMTAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X0ZpbGVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlsZSBOb3QgRm91bmQgKDEwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRmFjdG9yeSBG
dW5jdGlvbiBOb3QgRm91bmQgKDEwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9J
bnRlcmZhY2VOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVyZmFjZSBO
b3QgRm91bmQgKDEwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgSW50ZXJm
YWNlICgxMDYpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQ6ICAgICAgIHJldHVybiAiVXNlciBDb25maWcgRGlyZWN0b3J5IEludmFsaWQg
KDEwNykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCAoMTA4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIk5vdCBJbml0aWFsaXplZCAoMTA5KSI7Ci0gICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDEx
MCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGg6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbmZpZyBwYXRoIGNvdWxkIG5vdCBi
ZSBsb2NhdGVkICgxMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRo
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJMb2cgcGF0aCBjb3Vs
ZCBub3QgYmUgbG9jYXRlZCAoMTEyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlOiAgICAgICAgICAgICAgcmV0dXJuICJVbmFibGUgdG8gd3Jp
dGUgcGF0aCByZWdpc3RyeSAoMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Fw
cEluZm9Jbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQXBwIGluZm8gbWFu
YWdlciBpbml0IGZhaWxlZCAoMTE0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW50
ZXJuYWwgUmV0cnkgKDExNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXI6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJVc2VyIENhbmNlbGVkIElu
aXQgKDExNikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNo
aW5nOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQW5vdGhlciBhcHAgd2FzIGFscmVhZHkg
bGF1bmNoaW5nICgxMTcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2V0dGluZ3NJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2V0dGluZ3MgbWFuYWdlciBp
bml0IGZhaWxlZCAoMTE4KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5n
RG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVlIgc3lzdGVt
IHNodXR0aW5nIGRvd24gKDExOSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJUb28gbWFueSB0
cmFja2VkIG9iamVjdHMgKDEyMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob1Nl
cnZlckZvckJhY2tncm91bmRBcHA6ICAgICAgICAgICAgICByZXR1cm4gIk5vdCBzdGFydGluZyB2
cnNlcnZlciBmb3IgYmFja2dyb3VuZCBhcHAgKDEyMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvcjogICAgICAgcmV0dXJuICJUaGUgcmVx
dWVzdGVkIGludGVyZmFjZSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29tcG9zaXRvciBhbmQg
dGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZyAoMTIyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHM6ICAgICAgIHJldHVybiAiVGhpcyBpbnRl
cmZhY2UgaXMgbm90IGF2YWlsYWJsZSB0byB1dGlsaXR5IGFwcGxpY2F0aW9ucyAoMTIzKSI7Ci0g
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJzZXJ2ZXIgaW50ZXJuYWwgZXJyb3IgKDEy
NCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZTogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBpbnZhbGlkICgxMjUpIjsK
LSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZDog
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kIFByZXNlbmNlIEZhaWxlZCAoMTI2KSI7Ci0gICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBOb3QgRm91bmQgKDEyNykiOwotICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0
dXJuICJWUiBNb25pdG9yIHN0YXJ0dXAgZmFpbGVkICgxMjgpIjsKLSAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZDogcmV0dXJuICJMb3cgUG93
ZXIgV2F0Y2hkb2cgTm90IFN1cHBvcnRlZCAoMTI5KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGU6ICAgICAgICAgICAgICByZXR1cm4gIkludmFs
aWQgQXBwbGljYXRpb24gVHlwZSAoMTMwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzOiAgICAgICByZXR1cm4gIk5vdCBhdmFpbGFibGUg
dG8gd2F0Y2hkb2cgYXBwcyAoMTMxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1dh
dGNoZG9nRGlzYWJsZWRJblNldHRpbmdzOiAgICAgICByZXR1cm4gIldhdGNoZG9nIGRpc2FibGVk
IGluIHNldHRpbmdzICgxMzIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBO
b3QgRm91bmQgKDEzMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBzdGFydHVw
IGZhaWxlZCAoMTM0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZv
dW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIEhvbWUgTm90IEZvdW5k
ICgxMzUpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxl
ZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIGhvbWUgc3RhcnR1cCBmYWlsZWQgKDEz
NikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlJlYm9vdGluZyBJbiBQcm9ncmVzcyAoMTM3KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeTogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFVwZGF0ZSBJbiBQcm9ncmVzcyAoMTM4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5OiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRmlybXdhcmUgUmVjb3ZlcnkgSW4gUHJvZ3Jlc3MgKDEz
OSkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBGYWls
ZWQgKDIwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd246ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IEtu
b3duICgyMDEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIE5vdCBL
bm93biAoMjAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5v
dCBMb2FkZWQgKDIwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIHJ1bnRp
bWUgaXMgb3V0IG9mIGRhdGUgKDIwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYXBwbGljYXRpb24gKDIwNSkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBpcyBub3QgY2FsaWJyYXRlZCAoMjA2
KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBDYWxpYnJhdGlvbiBpcyBp
bnZhbGlkICgyMDcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVk
IG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91bmQgKDIwOCkiOwotICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duOiAgICAgICByZXR1
cm4gIkRyaXZlciBUcmFja2VkIERldmljZSBJbnRlcmZhY2UgdW5rbm93biAoMjA5KSI7Ci0gICAg
ICAgLy8gY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXg6
ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91
bmQgYWZ0ZXIgYXR0ZW1wdCB0byBmaXggKDIxMCkiOyAvLyB0YWtlbiBvdXQgdXBvbiBCZW4ncyBy
ZXF1ZXN0OiBIZSB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHNlcGFyYXRlIHRoYXQg
ZXJyb3IgZnJvbSAyMDgKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJ
ZE91dE9mQm91bmRzOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIERyaXZlcklkIGlz
IG91ciBvZiBib3VuZHMgKDIxMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ht
ZERpc3BsYXlNaXJyb3JlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQg
ZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG1heSBiZSBtaXJyb3JlZCBpbnN0ZWFkIG9m
IGV4dGVuZGVkICgyMTIpIjsKLQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX1NlcnZlcklu
aXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJWUiBTZXJ2ZXIgSW5pdCBGYWlsZWQgKDMwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX0Nvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiQ29ubmVjdCB0byBWUiBTZXJ2ZXIgRmFpbGVkICgzMDEpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgU3RhdGUgSW5pdCBG
YWlsZWQgKDMwMikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQg
SVBDIENvbXBvc2l0b3IgSW5pdCBGYWlsZWQgKDMwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSVBDX011dGV4SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgTXV0ZXggSW5pdCBGYWlsZWQgKDMwNCkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBGYWlsZWQg
KDMwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFp
bGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9z
aXRvciBDb25uZWN0IEZhaWxlZCAoMzA2KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2U6ICAgICAgICAgICAgICByZXR1cm4gIlNo
YXJlZCBJUEMgQ29tcG9zaXRvciBJbnZhbGlkIENvbm5lY3QgUmVzcG9uc2UgKDMwNykiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1w
dHM6ICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb25uZWN0IEZhaWxlZCBBZnRlciBNdWx0aXBs
ZSBBdHRlbXB0cyAoMzA4KSI7Ci0KLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb21wb3Np
dG9yIGZhaWxlZCB0byBpbml0aWFsaXplICg0MDApIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0
b3IgZmFpbGVkIHRvIGZpbmQgRFgxMSBoYXJkd2FyZSAoNDAxKSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGU6ICAgICAgIHJldHVybiAi
Q29tcG9zaXRvciByZXF1aXJlcyBtYW5kYXRvcnkgZmlybXdhcmUgdXBkYXRlICg0MDIpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQ6ICAgICAg
ICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVkLCBidXQg
b3ZlcmxheSBpbml0IGZhaWxlZCAoNDAzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZDogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGlu
aXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IHNjcmVlbnNob3QgaW5pdCBmYWlsZWQgKDQwNCki
OwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmlj
ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHVuYWJsZSB0byBjcmVhdGUgZ3JhcGhpY3MgZGV2
aWNlICg0MDUpIjsKLQotICAgICAgIC8vIE9jdWx1cwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lOiAgICAgICByZXR1
cm4gIlVuYWJsZSB0byBjb25uZWN0IHRvIE9jdWx1cyBSdW50aW1lICgxMDAwKSI7Ci0KLSAgICAg
ICAvLyBMaWdodGhvdXNlCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBjYW4gbm90IG9wZW4gZGV2aWNlICgxMTAxKSI7Ci0gICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25m
aWdTdGFydDogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gcmVxdWVzdCBj
b25maWcgKDExMDIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX05vU3RvcmVkQ29uZmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IG5vIHN0b3JlZCBjb25maWcgKDExMDMpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNr
OiAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGZhaWxlZCBjb25maWd1cmF0aW9uIGNoZWNr
ICgxMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29CaWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gYmlnICgxMTA0KSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIHNtYWxs
ICgxMTA1KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb0luaXRaTGliOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhN
RCBmb3VuZCwgYnV0IHVuYWJsZSB0byBpbml0IFpMaWIgKDExMDYpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9u
OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBk
YXRhICgxMTA3KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA4KSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3Rh
cnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhl
IGRhdGEgKDExMDkpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEwKSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZTog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGgg
dGhlIGRhdGEgKDExMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VzZXJEYXRhRXJyb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMTIpIjsK
LQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZDogcmV0dXJuICJVbmFibGUgdG8gZmluZCBTdGVhbSBpbnN0YWxsYXRpb24gKDIwMDApIjsKLQot
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHN0
YXRpYyBjaGFyIGJ1ZlsxMjhdOwotICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAi
VW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYnVmOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi19Ci0KLQotY29uc3QgY2hhciAq
R2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQotewotICAgICAg
IHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfTm9uZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1Vua25vd24gKTsKLQotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbkNvcnJ1cHQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCApOwot
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVXNlckNv
bmZpZ0RpcmVjdG9yeUludmFsaWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RS
SU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCApOwotICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICk7Ci0g
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29t
cG9zaXRvciApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5v
dEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9y
dGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAp
OwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
V2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Jl
Ym9vdGluZ0J1c3kgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3kgKTsK
LQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgKTsKLQotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQg
KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2
ZXJfVW5rbm93biApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWRVbmtub3duKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSk7
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duICk7Ci0gICAgICAgICAg
ICAgIC8vIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZEFmdGVyRml4ICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxh
eU1pcnJvcmVkICk7Ci0KLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQpOwotICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JD
b25uZWN0RmFpbGVkKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UpOwotICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzKTsKLQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJl
UmVxdWlyZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRl
RGV2aWNlICk7Ci0KLSAgICAgICAgICAgICAgLy8gT2N1bHVzCi0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25u
ZWN0VG9PY3VsdXNSdW50aW1lKTsKLQotICAgICAgICAgICAgICAvLyBMaWdodGhvdXNlCi0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyk7Ci0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdUb29CaWcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCApOwotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZp
cm13YXJlVmVyc2lvbiApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhQWRkcmVzc1JhbmdlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciApOwot
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfU3RlYW1f
U3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCApOwotCi0gICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07Ci0gICAg
ICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBlRXJy
b3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNjZDZjOGE5NmMxMzBjMGFjZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI3ByYWdtYSBvbmNlCi0KLWNvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JI
bWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKLWNvbnN0IGNoYXIgKkdldElERm9y
VlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTFhNTEyMzMyNmIxZThlMjlhMzJm
YWM5MzQzZTA4ZTk1YzJjNDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xz
X3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MTkgKzAsMCBAQAotLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAic3Ry
dG9vbHNfcHVibGljLmgiCi0jaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgotCi0jaWYgZGVm
aW5lZCggX1dJTjMyKQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxkaXJlY3QuaD4K
LSNpbmNsdWRlIDxzaG9iamlkbC5oPgotI2luY2x1ZGUgPGtub3duZm9sZGVycy5oPgotI2luY2x1
ZGUgPHNobG9iai5oPgotI2luY2x1ZGUgPHNoYXJlLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVu
dFZhcmlhYmxlCi0jZWxzZQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNlbmRpZgotI2lmIGRl
ZmluZWQgT1NYCi0jaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW5jbHVkZSA8
QXBwS2l0L0FwcEtpdC5oPgotI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+Ci0jZGVmaW5lIF9TX0lG
RElSIFNfSUZESVIgICAgIC8vIHJlYWxseSBmcm9tIHRpZXIwL3BsYXRmb3JtLmggd2hpY2ggd2Ug
ZG9udCBoYXZlIHlldAotI2VuZGlmCi0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotCi0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotCi0vKiogUmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1l
KSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1
dGFibGVQYXRoKCkKLXsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHdjaGFyX3QgKnB3
Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAgY2hhciAqcGNo
UGF0aCA9IG5ldyBjaGFyW01BWF9VTklDT0RFX1BBVEhfSU5fVVRGOF07Ci0gICAgICAgOjpHZXRN
b2R1bGVGaWxlTmFtZVcoIE5VTEwsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIICk7Ci0gICAg
ICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRo
LCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAgICBkZWxldGVb
XSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0aDsKLSAgICAg
ICBkZWxldGVbXSBwY2hQYXRoOwotICAgICAgIHJldHVybiBzUGF0aDsKLSNlbGlmIGRlZmluZWQo
IE9TWCApCi0gICAgICAgY2hhciByY2hQYXRoWzEwMjRdOwotICAgICAgIHVpbnQzMl90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgYm9vbCBiU3VjY2VzcyA9IF9OU0dldEV4ZWN1
dGFibGVQYXRoKHJjaFBhdGgsICZuQnVmZikgPT0gMDsKLSAgICAgICByY2hQYXRoW25CdWZmLTFd
ID0gJ1wwJzsKLSAgICAgICBpZiggYlN1Y2Nlc3MgKQotICAgICAgICAgICAgICByZXR1cm4gcmNo
UGF0aDsKLSAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHJldHVybiAiIjsKLSNlbGlmIGRlZmlu
ZWQgTElOVVgKLSAgICAgICBjaGFyIHJjaFBhdGhbMTAyNF07Ci0gICAgICAgc2l6ZV90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgc3NpemVfdCBuUmVhZCA9IHJlYWRsaW5rKCIv
cHJvYy9zZWxmL2V4ZSIsIHJjaFBhdGgsIG5CdWZmLTEgKTsKLSAgICAgICBpZiAoIG5SZWFkICE9
IC0xICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJjaFBhdGhbIG5SZWFkIF0gPSAwOwotICAg
ICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLSNlbHNlCi0gICAgICAgQXNz
ZXJ0TXNnKCBmYWxzZSwgIkltcGxlbWVudCBQbGF0X0dldEV4ZWN1dGFibGVQYXRoIiApOwotICAg
ICAgIHJldHVybiAiIjsKLSNlbmRpZgotCi19Ci0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtp
bmdEaXJlY3RvcnkoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoOwotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgd2NoYXJfdCBidWZbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAg
c1BhdGggPSBVVEYxNnRvOCggX3dnZXRjd2QoIGJ1ZiwgTUFYX1VOSUNPREVfUEFUSCApICk7Ci0j
ZWxzZQotICAgICAgIGNoYXIgYnVmWyAxMDI0IF07Ci0gICAgICAgc1BhdGggPSBnZXRjd2QoIGJ1
Ziwgc2l6ZW9mKCBidWYgKSApOwotI2VuZGlmCi0gICAgICAgcmV0dXJuIHNQYXRoOwotfQotCi0v
KiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJu
cyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwuICovCi1ib29sIFBhdGhfU2V0V29ya2luZ0Rp
cmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgYm9vbCBiU3Vj
Y2VzczsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHN0ZDo6d3N0cmluZyB3c1BhdGgg
PSBVVEY4dG8xNiggc1BhdGguY19zdHIoKSApOwotICAgICAgIGJTdWNjZXNzID0gMCA9PSBfd2No
ZGlyKCB3c1BhdGguY19zdHIoKSApOwotI2Vsc2UKLSAgICAgICBiU3VjY2VzcyA9IDAgPT0gY2hk
aXIoIHNQYXRoLmNfc3RyKCkgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBiU3VjY2VzczsKLX0K
LQotLyoqIFJldHVybnMgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lICov
Ci1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAg
ICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3Rk
OjpzdHJpbmc6Om5wb3MgKQotICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCksIHNQYXRo
LmJlZ2luKCkgKyBuICk7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20g
dGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhf
U3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQot
ewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dl
dFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5k
X2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQot
ICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCkgKyBuICsgMSwgc1BhdGguZW5kKCkgKTsK
LX0KLQotLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2Yg
dGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKLSogSWYgdGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlz
IGxlZnQgaW50YWN0LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3Rf
cmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYoICppID09ICcuJyApCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVn
aW4oKSwgaS5iYXNlKCkgLSAxICk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAv
LyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0ZW5zaW9uCi0gICAgICAgICAgICAg
IGlmKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyApCi0gICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICB9Ci0KLSAgICAgICAvLyB3ZSBkaWRuJ3QgZmluZCBhbiBleHRlbnNpb24KLSAg
ICAgICByZXR1cm4gc1BhdGg7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRo
ZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0
ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKLXsKLSAgICAgICBmb3IgKCBzdGQ6
OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0g
c1BhdGgucmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKCAqaSA9PSAn
LicgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoIGkuYmFzZSgpLCBzUGF0aC5lbmQoKSApOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNoIHRoZXJlIGlzIG5vIGV4dGVuc2lvbgotICAg
ICAgICAgICAgICBpZiAoICppID09ICdcXCcgfHwgKmkgPT0gJy8nICkKLSAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgIH0KLQotICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4
dGVuc2lvbgotICAgICAgIHJldHVybiAiIjsKLX0KLQotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIGlmKCBzUGF0aC5lbXB0eSgpICkK
LSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAg
ICAgIGlmICggc1BhdGguc2l6ZSgpIDwgMyApIC8vIG11c3QgYmUgYzpceCBvciBcXHggYXQgbGVh
c3QKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgaWYgKCBzUGF0aFsxXSA9
PSAnOicgKSAvLyBkcml2ZSBsZXR0ZXIgcGx1cyBzbGFzaCwgYnV0IG11c3QgdGVzdCBib3RoIHNs
YXNoIGNhc2VzCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIHNQYXRoWzJdID09ICdcXCcg
fHwgc1BhdGhbMl0gPT0gJy8nICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlIGlmICggc1BhdGhbMF0gPT0gJ1xcJyAmJiBzUGF0aFsxXSA9
PSAnXFwnICkgLy8gVU5DIHBhdGgKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQot
ICAgICAgIGlmKCBzUGF0aFswXSA9PSAnXFwnIHx8IHNQYXRoWzBdID09ICcvJyApIC8vIGFueSBs
ZWFkaW5nIHNsYXNoCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0KLSAgICAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBh
IHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VB
YnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAg
KQotICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIGlmKCBQ
YXRoX0lzQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGggKSApCi0gICAgICAgICAgICAgIHJldHVybiBz
UmVsYXRpdmVQYXRoOwotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCAh
UGF0aF9Jc0Fic29sdXRlKCBzQmFzZVBhdGggKSApCi0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIiI7Ci0KLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc0NvbXBhY3RlZCA9IFBhdGhfQ29t
cGFjdCggUGF0aF9Kb2luKCBzQmFzZVBhdGgsIHNSZWxhdGl2ZVBhdGgsIHNsYXNoICksIHNsYXNo
ICk7Ci0gICAgICAgICAgICAgIGlmKCBQYXRoX0lzQWJzb2x1dGUoIHNDb21wYWN0ZWQgKSApCi0g
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0NvbXBhY3RlZDsKLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLX0KLQotCi0vKiog
Rml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRo
LCBjaGFyIHNsYXNoICkKLXsKLSAgICAgICBpZiggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAg
IHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkID0g
c1BhdGg7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6aXRlcmF0b3IgaSA9IHNGaXhlZC5iZWdp
bigpOyBpICE9IHNGaXhlZC5lbmQoKTsgaSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlm
KCAqaSA9PSAnLycgfHwgKmkgPT0gJ1xcJyApCi0gICAgICAgICAgICAgICAgICAgICAqaSA9IHNs
YXNoOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBzRml4ZWQ7Ci19Ci0KLQotY2hhciBQYXRo
X0dldFNsYXNoKCkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4gJ1xcJzsK
LSNlbHNlCi0gICAgICAgcmV0dXJuICcvJzsKLSNlbmRpZgotfQotCi0vKiogSmFtcyB0d28gcGF0
aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2luZCBvZiBzbGFzaCAqLwotc3RkOjpzdHJpbmcg
UGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNlY29uZCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAgKQotICAgICAg
ICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIC8vIG9ubHkgaW5zZXJ0
IGEgc2xhc2ggaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZQotICAgICAgIHN0ZDo6c3RyaW5n
OjpzaXplX3R5cGUgbkxlbiA9IGZpcnN0Lmxlbmd0aCgpOwotICAgICAgIGlmKCAhbkxlbiApCi0g
ICAgICAgICAgICAgIHJldHVybiBzZWNvbmQ7Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0gICAgICAg
aWYoIGZpcnN0LmJhY2soKSA9PSAnXFwnIHx8IGZpcnN0LmJhY2soKSA9PSAnLycgKQotICAgICAg
ICAgICBuTGVuLS07Ci0jZWxzZQotICAgICAgIGNoYXIgbGFzdF9jaGFyID0gZmlyc3RbZmlyc3Qu
bGVuZ3RoKCktMV07Ci0gICAgICAgaWYgKGxhc3RfY2hhciA9PSAnXFwnIHx8IGxhc3RfY2hhciA9
PSAnLycpCi0gICAgICAgICAgIG5MZW4tLTsKLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIGZpcnN0
LnN1YnN0ciggMCwgbkxlbiApICsgc3RkOjpzdHJpbmcoIDEsIHNsYXNoICkgKyBzZWNvbmQ7Ci19
Ci0KLQotc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hh
ciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwg
c2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKTsKLX0KLQotc3RkOjpzdHJpbmcgUGF0aF9K
b2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29u
ZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwg
Y2hhciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRo
X0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNs
YXNoICk7Ci19Ci0KLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0gICAgICAgY29uc3Qgc3RkOjpz
dHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIAotICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpZnRoLCAKLSAgICAgICBj
aGFyIHNsYXNoICkKLXsKLSAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhf
Sm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwg
Zm91cnRoLCBzbGFzaCApLCBmaWZ0aCwgc2xhc2ggKTsKLX0KLQotCi1zdGQ6OnN0cmluZyBQYXRo
X1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIg
c2xhc2ggKQotewotICAgICAgIGlmICggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAgIHNsYXNo
ID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBzUmF3UGF0
aDsKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG5DdXJyZW50ID0gc1Jhd1BhdGgubGVu
Z3RoKCk7Ci0gICAgICAgaWYgKCBuQ3VycmVudCA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJu
IHNQYXRoOwotCi0gICAgICAgaW50IG5MYXN0Rm91bmQgPSAtMTsKLSAgICAgICBuQ3VycmVudC0t
OwotICAgICAgIHdoaWxlKCBuQ3VycmVudCAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IGlmICggc1Jhd1BhdGhbIG5DdXJyZW50IF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBuTGFzdEZvdW5kID0gKGludCluQ3VycmVudDsKLSAgICAgICAg
ICAgICAgICAgICAgIG5DdXJyZW50LS07Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgaWYgKCBuTGFzdEZv
dW5kID49IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc1BhdGguZXJhc2UoIG5MYXN0Rm91
bmQsIHN0ZDo6c3RyaW5nOjpucG9zICk7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIHJldHVy
biBzUGF0aDsKLX0KLQotCi0vKiogUmVtb3ZlcyByZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMg
aW4gdGhlIHBhdGguIFJldHVybnMgYW4gZW1wdHkgcGF0aCBpZiB0aGUgCi0qIHNwZWNpZmllZCBw
YXRoIGhhcyBhIGJyb2tlbiBudW1iZXIgb2YgZGlyZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2Yg
Li5zICovCi1zdGQ6OnN0cmluZyBQYXRoX0NvbXBhY3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jh
d1BhdGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAg
ICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0
aCA9IFBhdGhfRml4U2xhc2hlcyggc1Jhd1BhdGgsIHNsYXNoICk7Ci0gICAgICAgc3RkOjpzdHJp
bmcgc1NsYXNoU3RyaW5nKCAxLCBzbGFzaCApOwotCi0gICAgICAgLy8gc3RyaXAgb3V0IGFsbCAv
Li8KLSAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7IChpICsgMykgPCBz
UGF0aC5sZW5ndGgoKTsgICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgaSBd
ID09IHNsYXNoICYmIHNQYXRoWyBpKzEgXSA9PSAnLicgJiYgc1BhdGhbIGkrMiBdID09IHNsYXNo
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc1BhdGgucmVwbGFjZSgg
aSwgMywgc1NsYXNoU3RyaW5nICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICArK2k7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICB9Ci0KLQotICAgICAgIC8vIGdldCByaWQgb2YgdHJhaWxpbmcgLy4gYnV0
IGxlYXZlIHRoZSBwYXRoIHNlcGFyYXRvcgotICAgICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIg
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBsZW4gPSBz
UGF0aC5sZW5ndGgoKTsKLSAgICAgICAgICAgICAgaWYoIHNQYXRoWyBsZW4tMSBdID09ICcuJyAg
JiYgc1BhdGhbIGxlbi0yIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgLy8gc1BhdGgucG9wX2JhY2soKTsKLSAgICAgICAgICAgICAgICBzUGF0aFtsZW4tMV0g
PSAwOyAgLy8gZm9yIG5vdywgYXQgbGVhc3QKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIC8vIGdldCByaWQgb2YgbGVhZGluZyAuLyAKLSAgICAgICBpZiggc1BhdGgubGVuZ3Ro
KCkgPiAyICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgMCBdID09ICcuJyAg
JiYgc1BhdGhbIDEgXSA9PSBzbGFzaCApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIHNQYXRoLnJlcGxhY2UoIDAsIDIsICIiICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICB9Ci0KLSAgICAgICAvLyBlYWNoIHRpbWUgd2UgZW5jb3VudGVyIC4uIGJhY2sgdXAgdW50aWwg
d2UndmUgZm91bmQgdGhlIHByZXZpb3VzIGRpcmVjdG9yeSBuYW1lCi0gICAgICAgLy8gdGhlbiBn
ZXQgcmlkIG9mIGJvdGgKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOwotICAg
ICAgIHdoaWxlKCBpIDwgc1BhdGgubGVuZ3RoKCkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
aWYoIGkgPiAwICYmIHNQYXRoLmxlbmd0aCgpIC0gaSA+PSAyIAotICAgICAgICAgICAgICAgICAg
ICAgJiYgc1BhdGhbaV0gPT0gJy4nCi0gICAgICAgICAgICAgICAgICAgICAmJiBzUGF0aFtpKzFd
ID09ICcuJwotICAgICAgICAgICAgICAgICAgICAgJiYgKCBpICsgMiA9PSBzUGF0aC5sZW5ndGgo
KSB8fCBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICAgICAgICAgJiYgc1Bh
dGhbIGktMSBdID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgLy8gY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nIGFuZCBoYXZl
IGEgYm9ndXMgcGF0aAotICAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMSApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIGktMQotICAg
ICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpRGlyU3RhcnQgPSBpLTI7
Ci0gICAgICAgICAgICAgICAgICAgICB3aGlsZSggaURpclN0YXJ0ID4gMCAmJiBzUGF0aFsgaURp
clN0YXJ0IC0gMSBdICE9IHNsYXNoICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWlE
aXJTdGFydDsKLQotICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgZnJv
bSBpRGlyU3RhcnQgdG8gaSsyCi0gICAgICAgICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBp
RGlyU3RhcnQsIChpIC0gaURpclN0YXJ0KSArIDMsICIiICk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgIC8vIHN0YXJ0IG92ZXIKLSAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgKytpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IHNQYXRoOwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IERMTCBv
ciBleGUgKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0VGhpc01vZHVsZVBhdGgoKQotewotICAgICAg
IC8vIGdldHMgdGhlIHBhdGggb2YgdnJjbGllbnQuZGxsIGl0c2VsZgotI2lmZGVmIFdJTjMyCi0g
ICAgICAgSE1PRFVMRSBobW9kdWxlID0gTlVMTDsKLQotICAgICAgIDo6R2V0TW9kdWxlSGFuZGxl
RXgoIEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTIHwgR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19VTkNIQU5HRURfUkVGQ09VTlQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBDVFNU
Uj4oUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCksICZobW9kdWxlICk7Ci0KLSAgICAgICB3Y2hhcl90
ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9VTklDT0RFX1BBVEhdOwotICAgICAgIGNoYXIg
KnBjaFBhdGggPSBuZXcgY2hhclsgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4IF07Ci0gICAgICAg
OjpHZXRNb2R1bGVGaWxlTmFtZVcoIGhtb2R1bGUsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRI
ICk7Ci0gICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0x
LCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAg
ICBkZWxldGVbXSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0
aDsKLSAgICAgICBkZWxldGUgW10gcGNoUGF0aDsKLSAgICAgICByZXR1cm4gc1BhdGg7Ci0KLSNl
bGlmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBnZXQgdGhl
IGFkZHIgb2YgYSBmdW5jdGlvbiBpbiB2cmNsaWVudC5zbyBhbmQgdGhlbiBhc2sgdGhlIGRsb3Bl
biBzeXN0ZW0gYWJvdXQgaXQKLSAgICAgICBEbF9pbmZvIGluZm87Ci0gICAgICAgZGxhZGRyKCAo
dm9pZCAqKVBhdGhfR2V0VGhpc01vZHVsZVBhdGgsICZpbmZvICk7Ci0gICAgICAgcmV0dXJuIGlu
Zm8uZGxpX2ZuYW1lOwotI2VuZGlmCi0KLX0KLQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBz
cGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29sIFBhdGhfSXNE
aXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIHN0ZDo6c3Ry
aW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7Ci0gICAgICAgaWYoIHNG
aXhlZFBhdGguZW1wdHkoKSApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICBj
aGFyIGNMYXN0ID0gc0ZpeGVkUGF0aFsgc0ZpeGVkUGF0aC5sZW5ndGgoKSAtIDEgXTsKLSAgICAg
ICBpZiggY0xhc3QgPT0gJy8nIHx8IGNMYXN0ID09ICdcXCcgKQotICAgICAgICAgICAgICBzRml4
ZWRQYXRoLmVyYXNlKCBzRml4ZWRQYXRoLmVuZCgpIC0gMSwgc0ZpeGVkUGF0aC5lbmQoKSApOwot
Ci0gICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0K
LSNpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIHN0cnVjdCAgICAgICBzdGF0ICAgICAgIGJ1ZjsK
LSAgICAgICBpZiAoIHN0YXQoIHNGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSNpZiBkZWZp
bmVkKCBMSU5VWCApIHx8IGRlZmluZWQoIE9TWCApCi0gICAgICAgcmV0dXJuIFNfSVNESVIoIGJ1
Zi5zdF9tb2RlICk7Ci0jZWxzZQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJ
UikgIT0gMDsKLSNlbmRpZgotCi0jZWxzZQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAg
ICBidWY7Ci0gICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhl
ZFBhdGguY19zdHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigp
LCAmYnVmICkgPT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsK
LSNlbmRpZgotfQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXBy
ZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KLWJvb2wgUGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzUGF0aCApCi17Ci0jaWYgZGVmaW5lZChPU1gpCi0gICAgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFsgTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6IFsgTlNTdHJpbmcgc3RyaW5nV2l0
aFVURjhTdHJpbmc6c1BhdGguY19zdHIoKSBdIF07Ci0gICAgICAgYm9vbCBiaXNBcHBCdW5kbGUg
PSAoIG51bGxwdHIgIT0gYnVuZGxlICk7Ci0gICAgICAgWyBidW5kbGUgcmVsZWFzZSBdOwotICAg
ICAgIHJldHVybiBiaXNBcHBCdW5kbGU7Ci0jZWxzZQotICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiByZXR1cm5zIHRy
dWUgaWYgdGhlIHRoZSBwYXRoIGV4aXN0cwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBQ
YXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgc3RkOjpz
dHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKLSAgICAgICBpZigg
c0ZpeGVkUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYg
ZGVmaW5lZCggV0lOMzIgKQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAgICBidWY7Ci0g
ICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19z
dHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkg
PT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIH0K
LSNlbHNlCi0gICAgICAgc3RydWN0IHN0YXQgYnVmOwotICAgICAgIGlmICggc3RhdCAoIHNGaXhl
ZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgIH0KLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0K
LQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBk
aXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVuIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVudERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJE
aXJlY3RvcnlOYW1lICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3Ry
U3RhcnREaXJlY3RvcnkgKTsKLSAgICAgICBpZiAoIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09
IDAgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSAgICAgICBib29sIGJFeGlzdHMgPSBQ
YXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJy
ZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7
Ci0gICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1l
LmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSApID09IDAgKQotICAgICAgICAgICAg
ICByZXR1cm4gc3RyQ3VycmVudFBhdGg7Ci0KLSAgICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJD
dXJyZW50UGF0aC5sZW5ndGgoKSAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHN0ckN1
cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZpbGVuYW1lKCBzdHJDdXJyZW50UGF0aCApOwotICAgICAg
ICAgICAgICBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0
ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3Ry
Q3VycmVudFBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0
ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSAp
ID09IDAgKQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ckN1cnJlbnRQYXRoOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiAiIjsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBhIHN1YmRpcmVjdG9yeSB1cHN0cmVhbSBmcm9t
IGEgZ2l2ZW4gcGF0aAotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgUGF0aF9G
aW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJT
dGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKQotewot
ICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0aCA9ICIiOwotICAgICAgIHN0ZDo6c3RyaW5n
IHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzdHJTdGFydERpcmVjdG9yeSApOwot
ICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgPT0gMCApCi0gICAgICAgICAgICAg
IHJldHVybiAiIjsKLQotICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJy
ZW50UGF0aCApOwotICAgICAgIHdoaWxlKCBiRXhpc3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0
aCgpICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRo
X1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMg
PSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLQotICAgICAgICAgICAgICBpZiggUGF0
aF9FeGlzdHMoIFBhdGhfSm9pbiggc3RyQ3VycmVudFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKSAp
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RyRm91bmRQYXRoID0g
UGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0b3J5TmFtZSApOwotICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgcmV0
dXJuIHN0ckZvdW5kUGF0aDsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJw
b3NlOiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVzIGluIHRoZSB2b3J0ZXggZGlyZWN0b3J5Ci0v
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi11bnNpZ25lZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5Rmls
ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBpbnQgKnBTaXplICkKLXsKLSAgICAg
ICBGSUxFICpmOwotI2lmIGRlZmluZWQoIFBPU0lYICkKLSAgICAgICBmID0gZm9wZW4oIHN0ckZp
bGVuYW1lLmNfc3RyKCksICJyYiIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJG
aWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgLy8gdGhl
IG9wZW4gb3BlcmF0aW9uIG5lZWRzIHRvIGJlIHNoYXJhYmxlLCB0aGVyZWZvcmUgdXNlIG9mIF93
ZnNvcGVuIGluc3RlYWQgb2YgX3dmb3Blbl9zCi0gICAgICAgZiA9IF93ZnNvcGVuKCB3c3RyRmls
ZW5hbWUuY19zdHIoKSwgTCJyYiIsIF9TSF9ERU5ZTk8gKTsKLSNlbmRpZgotICAgICAgIAotICAg
ICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IE5VTEw7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCAp
Ci0gICAgICAgewotICAgICAgICAgICAgICBmc2VlayhmLCAwLCBTRUVLX0VORCk7Ci0gICAgICAg
ICAgICAgIGludCBzaXplID0gZnRlbGwoZik7Ci0gICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNF
RUtfU0VUKTsKLQotICAgICAgICAgICAgICBidWYgPSBuZXcgdW5zaWduZWQgY2hhcltzaXplXTsK
LSAgICAgICAgICAgICAgaWYgKGJ1ZiAmJiBmcmVhZChidWYsIHNpemUsIDEsIGYpID09IDEpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChwU2l6ZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqcFNpemUgPSBzaXplOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgZGVs
ZXRlW10gYnVmOwotICAgICAgICAgICAgICAgICAgICAgYnVmID0gMDsKLSAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4g
YnVmOwotfQotCi11aW50MzJfdCAgUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUg
KQotewotICAgICAgIEZJTEUgKmY7Ci0jaWYgZGVmaW5lZCggUE9TSVggKQotICAgICAgIGYgPSBm
b3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJiIiApOwotI2Vsc2UKLSAgICAgICBzdGQ6Ondz
dHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAg
ICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBM
InJiIiApOwotICAgICAgIGlmICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
ZiA9IE5VTEw7Ci0gICAgICAgfQotI2VuZGlmCi0KLSAgICAgICB1aW50MzJfdCB1blNpemVUb1Jl
dHVybiA9IDA7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCApCi0gICAgICAgewotICAgICAgICAg
ICAgICBmc2VlayggZiwgMCwgU0VFS19FTkQgKTsKLSAgICAgICAgICAgICAgdWludDMyX3Qgc2l6
ZSA9ICh1aW50MzJfdClmdGVsbCggZiApOwotICAgICAgICAgICAgICBmc2VlayggZiwgMCwgU0VF
S19TRVQgKTsKLQotICAgICAgICAgICAgICBpZiAoIHNpemUgPiB1blNpemUgfHwgIXBCdWZmZXIg
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICB1blNpemVUb1JldHVybiA9
ICh1aW50MzJfdClzaXplOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCBmcmVhZCggcEJ1ZmZlciwg
c2l6ZSwgMSwgZiApID09IDEgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJuID0gKHVpbnQzMl90KXNpemU7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBmY2xvc2Uo
IGYgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdW5TaXplVG9SZXR1cm47Ci19Ci0KLWJv
b2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1
bnNpZ25lZCBjaGFyICpwRGF0YSwgdW5zaWduZWQgblNpemUpCi17Ci0gICAgICAgRklMRSAqZjsK
LSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKHN0ckZpbGVuYW1lLmNfc3Ry
KCksICJ3YiIpOwotI2Vsc2UKLSAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRG
OHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBlcnJub190IGVyciA9IF93Zm9w
ZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMIndiIiApOwotICAgICAgIGlmIChlcnIg
IT0gMCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGYgPSBOVUxMOwotICAgICAgIH0KLSNlbmRp
ZgotCi0gICAgICAgc2l6ZV90IHdyaXR0ZW4gPSAwOwotICAgICAgIGlmIChmICE9IE5VTEwpIHsK
LSAgICAgICAgICAgICAgd3JpdHRlbiA9IGZ3cml0ZShwRGF0YSwgc2l6ZW9mKHVuc2lnbmVkIGNo
YXIpLCBuU2l6ZSwgZik7Ci0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gd3JpdHRlbiA9PSBuU2l6ZSA/IHRydWUgOiBmYWxzZTsKLX0KLQotc3RkOjpz
dHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSAp
Ci17Ci0gICAgICAgLy8gZG9pbmcgaXQgdGhpcyB3YXkgc2VlbXMgYmFja3dhcmRzLCBidXQgSSBk
b24ndAotICAgICAgIC8vIHNlZSBhbiBlYXN5IHdheSB0byBkbyB0aGlzIHdpdGggQy9DKysgc3R5
bGUgSU8KLSAgICAgICAvLyB0aGF0IGlzbid0IHdvcnNlLi4uCi0gICAgICAgaW50IHNpemU7Ci0g
ICAgICAgdW5zaWduZWQgY2hhciogYnVmID0gUGF0aF9SZWFkQmluYXJ5RmlsZSggc3RyRmlsZW5h
bWUsICZzaXplICk7Ci0gICAgICAgaWYgKCFidWYpCi0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LQotICAgICAgIC8vIGNvbnZlcnQgQ1JMRiAtPiBMRgotICAgICAgIHNpemVfdCBvdXRzaXplID0g
MTsKLSAgICAgICBmb3IgKGludCBpPTE7IGkgPCBzaXplOyBpKyspCi0gICAgICAgewotICAgICAg
ICAgICAgICBpZiAoYnVmW2ldID09ICdcbicgJiYgYnVmW2ktMV0gPT0gJ1xyJykgLy8gQ1JMRgot
ICAgICAgICAgICAgICAgICAgICAgYnVmW291dHNpemUtMV0gPSAnXG4nOyAvLyAtPkxGCi0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplKytdID0gYnVm
W2ldOyAvLyBqdXN0IGNvcHkKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyByZXQoKGNo
YXIgKilidWYsIG91dHNpemUpOwotICAgICAgIGRlbGV0ZVtdIGJ1ZjsKLSAgICAgICByZXR1cm4g
cmV0OwotfQotCi0KLWJvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIGNvbnN0IHN0ZDo6
c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCi17Ci0gICAgICAgRklM
RSAqZjsKLSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFt
ZS5jX3N0cigpLCAidyIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFt
ZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgZXJybm9fdCBlcnIg
PSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3IiApOwotICAgICAgIGlm
ICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZiA9IE5VTEw7Ci0gICAgICAg
fQotI2VuZGlmCi0gICAgICAgCi0gICAgICAgYm9vbCBvayA9IGZhbHNlOwotCi0gICAgICAgaWYg
KCBmICE9IE5VTEwgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgb2sgPSBmcHV0cyggcGNoRGF0
YSwgZikgPj0gMDsKLSAgICAgICAgICAgICAgZmNsb3NlKGYpOwotICAgICAgIH0KLQotICAgICAg
IHJldHVybiBvazsKLX0KLQotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYygg
Y29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICkKLXsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJUbXBGaWxlbmFtZSA9IHN0ckZpbGVuYW1lICsgIi50bXAi
OwotCi0gICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHN0clRtcEZpbGVu
YW1lLCBwY2hEYXRhICkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAv
LyBQbGF0Zm9ybSBzcGVjaWZpYyBhdG9taWMgZmlsZSByZXBsYWNlbWVudAotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzRmlsZW5hbWUgPSBVVEY4dG8xNiggc3Ry
RmlsZW5hbWUuY19zdHIoKSApOwotICAgICAgIHN0ZDo6d3N0cmluZyB3c1RtcEZpbGVuYW1lID0g
VVRGOHRvMTYoIHN0clRtcEZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBpZiAoICE6OlJlcGxh
Y2VGaWxlVyggd3NGaWxlbmFtZS5jX3N0cigpLCB3c1RtcEZpbGVuYW1lLmNfc3RyKCksIG51bGxw
dHIsIDAsIDAsIDAgKSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZG4n
dCBSZXBsYWNlRmlsZSwgdHJ5IGEgbm9uLWF0b21pYyB3cml0ZSBhcyBhIGZhbGxiYWNrCi0gICAg
ICAgICAgICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJGaWxlbmFtZSwg
cGNoRGF0YSApICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9
Ci0jZWxpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgaWYgKCByZW5hbWUoIHN0clRtcEZpbGVu
YW1lLmNfc3RyKCksIHN0ckZpbGVuYW1lLmNfc3RyKCkgKSA9PSAtMSApCi0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbHNlCi0jZXJyb3IgRG8gbm90IGtub3cgaG93IHRvIHdyaXRlIGF0
b21pYyBmaWxlCi0jZW5kaWYKLQotICAgICAgIHJldHVybiB0cnVlOwotfQotCi0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8vIgotI2Vsc2UKLSNk
ZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vIgotI2VuZGlmCi0KLS8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFR1cm5zIGEgcGF0aCB0byBhIGZpbGUgb24gZGlzayBpbnRvIGEgVVJMIChv
ciBqdXN0IHJldHVybnMgdGhlIHZhbHVlIGlmIGl0J3MgYWxyZWFkeSBhIFVSTCkKLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCApCi17Ci0gICAg
ICAgaWYgKCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHA6Ly8iLCA3ICkK
LSAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRw
czovLyIsIDggKQotICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19z
dHIoKSwgImZpbGU6Ly8iLCA3ICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNS
ZWxhdGl2ZVBhdGg7Ci0gICAgICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHN0ZDo6c3RyaW5nIHNBYnNvbHV0ZSA9IFBhdGhfTWFrZUFic29sdXRlKCBzUmVsYXRpdmVQ
YXRoLCBzQmFzZVBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBzQWJzb2x1dGUuZW1wdHkoKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Fic29sdXRlOwotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIEZJTEVfVVJMX1BSRUZJWCApICsgc0Fic29sdXRlOwotICAgICAg
IH0KLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFN0cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhl
IHBhdGguIEZvciBvdGhlciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5l
ZAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6
c3RyaW5nIFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCAp
Ci17Ci0gICAgICAgaWYgKCAhc3RybmljbXAoIHNGaWxlVXJsLmNfc3RyKCksIEZJTEVfVVJMX1BS
RUZJWCwgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzRmlsZVVybC5jX3N0cigpICsgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKTsK
LSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuICIi
OwotICAgICAgIH0KLX0KLQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5
IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4KLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0cmluZyBHZXRV
c2VyRG9jdW1lbnRzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAgICAgIFdDSEFS
IHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmICggIVNVQ0NFRURFRCggU0hHZXRGb2xk
ZXJQYXRoVyggTlVMTCwgQ1NJRExfTVlET0NVTUVOVFMgfCBDU0lETF9GTEFHX0NSRUFURSwgTlVM
TCwgMCwgcndjaFBhdGggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LSAgICAgICB9Ci0KLSAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRvIFVURi04IGFuZCBzdG9y
ZSBpbiB0aGUgb3V0cHV0Ci0gICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQYXRoID0gVVRGMTZ0bzgo
IHJ3Y2hQYXRoICk7Ci0KLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2VsaWYgZGVmaW5lZCgg
T1NYICkKLSAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgICAgICAgTlNBcnJheSAq
cGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyggTlNEb2N1bWVudERp
cmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7Ci0gICAgICAgICAgICAgIGlmICggW3Bh
dGhzIGNvdW50XSA9PSAwICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICByZXR1cm4gW1twYXRocyBvYmplY3RBdEluZGV4OjBdIFVURjhTdHJpbmddOwotICAgICAgIH0K
LSNlbGlmIGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBAdG9kbzogbm90IHNvbHZlZC9jaGFu
Z2VkIGFzIHBhcnQgb2YgT1NYIC0gc3RpbGwgbm90IHJlYWwgLSBqdXN0IHJlbW92ZWQgb2xkIGNs
YXNzIGJhc2VkIHN0ZWFtIGN1dCBhbmQgcGFzdGUKLSAgICAgICBjb25zdCBjaGFyICpwY2hIb21l
ID0gZ2V0ZW52KCAiSE9NRSIgKTsKLSAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCi0gICAg
ICAgewotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgfQotICAgICAgIHJldHVybiBw
Y2hIb21lOwotI2VuZGlmCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI5NTdjNjRkNzM3YThjMTE2MDRmYTU4NmE0MjJhYzA4MTIyY2E1NTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzIgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNs
dWRlIDxzdGRpbnQuaD4KLQotLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFt
ZSkgdG8gdGhlIGN1cnJlbnQgZXhlY3V0YWJsZSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVj
dXRhYmxlUGF0aCgpOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KCk7
Ci0KLS8qKiBTZXRzIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBS
ZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KLWJvb2wgUGF0aF9TZXRXb3Jr
aW5nRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiByZXR1cm5z
IHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJlZCBsaWIg
b3IgRExMICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7Ci0KLS8qKiBS
ZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KLSogSWYgc2xh
c2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVu
dCBwbGF0Zm9ybQotKiB3aWxsIGJlIHVzZWQuICovCi1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmls
ZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8q
KiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVs
YXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8qKiByZXR1cm5zIGp1c3Qg
dGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4g
Ci0qIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KLXN0ZDo6
c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChp
ZiBhbnkpLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGggKTsKLQotLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0
ZSAqLwotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEg
YmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hh
ciBzbGFzaCA9IDAgKTsKLQotLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3Ig
dGhlIGN1cnJlbnQgcGxhdGZvcm0uCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRp
dmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBiZSB1c2Vk
LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQ
YXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBzZXBhcmF0b3Ig
Zm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCi1jaGFyIFBhdGhfR2V0U2xhc2goKTsKLQotLyoq
IEphbXMgdHdvIHBhdGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8K
LXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7Ci1zdGQ6OnN0cmluZyBQYXRo
X0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vj
b25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOwotc3RkOjpz
dHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJp
bmcgJmZvdXJ0aCwgY2hhciBzbGFzaCA9IDAgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0g
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcgJiBzZWNvbmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpZnRoLCAKLSAgICAgICBjaGFyIHNsYXNoID0gMCApOwotCi0KLS8qKiBSZW1vdmVzIHJlZHVu
ZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRo
IGlmIHRoZSAKLSogc3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3Rv
cmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMuCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRo
ZSBuYXRpdmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBi
ZSB1c2VkLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vLyoqIFJlbW92ZWQgdHJhaWxpbmcgc2xh
c2hlcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29s
IFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKLQotLyoqIHJl
dHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxl
ICovCi1ib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCi1ib29sIFBhdGhf
RXhpc3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiBIZWxwZXIgZnVuY3Rp
b25zIHRvIGZpbmQgcGFyZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9mIHBhcmVu
dCBkaXJlY3RvcmllcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVj
dXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJl
Y3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7Ci0KLS8qKiBQYXRo
IG9wZXJhdGlvbnMgdG8gcmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwotdW5zaWdu
ZWQgY2hhciAqIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSwgaW50ICpwU2l6ZSApOwotdWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMy
X3QgdW5TaXplICk7Ci1ib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSApOwot
c3RkOjpzdHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSApOwotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7Ci1ib29sIFBhdGhfV3JpdGVT
dHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNv
bnN0IGNoYXIgKnBjaERhdGEgKTsKLQotLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBmb3IgcGF0
aHMsIG9yIGFuIGh0dHAgb3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92aWRlZCAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNS
ZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7Ci0KLS8qKiBTdHJp
cHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIg
a2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KLXN0ZDo6c3RyaW5n
IFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApOwotCi0v
KiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMg
dG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4gKi8KLXN0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVu
dHNQYXRoKCk7Ci0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSAotICAgICAgICNkZWZpbmUgTUFY
X1VOSUNPREVfUEFUSCAzMjc2NwotI2VuZGlmCi0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSF9J
Tl9VVEY4Ci0gICAgICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1BWF9VTklD
T0RFX1BBVEggKiA0KQotI2VuZGlmCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCi0jZGVmaW5l
IFBST0dSQU1fRVhUICIuZXhlIgotI2lmZGVmIF9XSU42NAotI2RlZmluZSBQTEFUU1VCRElSICAg
ICAgICJ3aW42NCIKLSNlbHNlCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMyIgotI2Vu
ZGlmCi0jZWxpZiBkZWZpbmVkKE9TWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIu
ZHlsaWIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgotI2RlZmluZSBQUk9HUkFN
X0VYVCAiIgotI2VsaWYgZGVmaW5lZChMSU5VWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAg
ICAgICIuc28iCi0jZGVmaW5lIFBST0dSQU1fRVhUICIiCi0jaWYgZGVmaW5lZCggTElOVVgzMiAp
Ci0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgImxpbnV4MzIiCi0jZWxzZQotI2RlZmluZSBQTEFU
U1VCRElSICAgICAgICJsaW51eDY0IgotI2VuZGlmCi0jZWxzZQotI3dhcm5pbmcgIlVua25vd24g
cGxhdGZvcm0gZm9yIFBMQVRTVUJESVIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgInVua25v
d25fcGxhdGZvcm0iCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhlZWMyNjA0NTljNTFlZWM1NjlhMmNhNWIxMDI5YTU5
YzliYWNkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmln
aHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoX1dJTjMy
KQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChQT1NJWCkKLSNp
bmNsdWRlIDxkbGZjbi5oPgotI2VuZGlmCi0KLVNoYXJlZExpYkhhbmRsZSBTaGFyZWRMaWJfTG9h
ZCggY29uc3QgY2hhciAqcGNoUGF0aCApCi17Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAgICAg
IHJldHVybiAoU2hhcmVkTGliSGFuZGxlKUxvYWRMaWJyYXJ5RXgoIHBjaFBhdGgsIE5VTEwsIExP
QURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIICk7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAg
ICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKWRsb3BlbihwY2hQYXRoLCBSVExEX0xPQ0FMfFJU
TERfTk9XKTsKLSNlbmRpZgotfQotCi12b2lkICpTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIFNoYXJl
ZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIgKnBjaEZ1bmN0aW9uTmFtZSkKLXsKLSNpZiBkZWZp
bmVkKCBfV0lOMzIpCi0gICAgICAgcmV0dXJuICh2b2lkKilHZXRQcm9jQWRkcmVzcyggKEhNT0RV
TEUpbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAg
cmV0dXJuIGRsc3ltKCBsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOwotI2VuZGlmCi19Ci0KLQotdm9p
ZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICkKLXsKLSAgICAgICBpZiAo
ICFsaWIgKQotICAgICAgICAgICAgICByZXR1cm47Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAg
ICAgIEZyZWVMaWJyYXJ5KCAoSE1PRFVMRSlsaWIgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0g
ICAgICAgZGxjbG9zZSggbGliICk7Ci0jZW5kaWYKLX0KLQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJs
aWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNjNkYmZhYjJiZTgzNjJmODNi
YzIwOTNjMjQyMTRiMjQ3ZmJhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLy89PT09PT09
PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9u
Y2UKLQotdHlwZWRlZiB2b2lkICpTaGFyZWRMaWJIYW5kbGU7Ci0KLVNoYXJlZExpYkhhbmRsZSBT
aGFyZWRMaWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApOwotdm9pZCAqU2hhcmVkTGliX0dl
dEZ1bmN0aW9uKCBTaGFyZWRMaWJIYW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5h
bWUpOwotdm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICk7Ci0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0
b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjkzNzBiMmNk
MWI4YzVhYTRmZDcxMDI5NjJhOWQ0YWJlOGY4ZGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vc3RydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzNyArMCwwIEBACi0v
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNp
bmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOgotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBTdHJpbmdIYXNQcmVm
aXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJl
Zml4ICkKLXsKLSAgICAgICByZXR1cm4gMCA9PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBz
UHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQotYm9vbCBTdHJpbmdIYXNQ
cmVmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1ByZWZpeCApCi17Ci0gICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0
cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQot
Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJp
bmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgp
OwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCi0gICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5n
LnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKLQotICAgICAgIHJl
dHVybiAwID09IHN0cmljbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigp
ICk7Ci19Ci0KLWJvb2wgU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBz
aXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhM
ZW4gPSBzU3VmZml4Lmxlbmd0aCgpOwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxl
biApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNT
dHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZm
aXhMZW4gKTsKLQotICAgICAgIHJldHVybiAwID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19z
dHIoKSwgc1N1ZmZpeC5jX3N0cigpLGNTdWZmaXhMZW4gKTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5n
IFVURjE2dG84KGNvbnN0IHdjaGFyX3QgKiBpbikKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBvdXQ7
Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAm
JiAqaW4gIT0gMDsgKytpbiApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKmluID49IDB4
ZDgwMCAmJiAqaW4gPD0gMHhkYmZmKQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0g
KCgqaW4gLSAweGQ4MDApIDw8IDEwKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYg
KmluIDw9IDB4ZGZmZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0g
KmluIC0gMHhkYzAwOwotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvZGVwb2ludCA9ICppbjsKLQotICAgICAgICAgICAgICAgICAgICAgaWYg
KGNvZGVwb2ludCA8PSAweDdmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBl
bmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHg3ZmYpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFy
PigweGMwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDFmKSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9p
bnQgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNo
YXI+KDB4ZTAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDBmKSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29k
ZXBvaW50ID4+IDYpICYgMHgzZikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
YXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5k
KDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZjAgfCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+IDEyKSAmIDB4M2YpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChj
b2RlcG9pbnQgPj4gNikgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50
ID0gMDsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gb3V0OwotfQot
Ci1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29uc3QgY2hhciAqIGluKQotewotICAgICAgIHN0ZDo6
d3N0cmluZyBvdXQ7Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAg
aW50IGZvbGxvd2luZyA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiAp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKmluOwotICAgICAg
ICAgICAgICBpZiAoY2ggPD0gMHg3ZikKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgY29kZXBvaW50ID0gY2g7Ci0gICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAw
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVw
b2ludCA9IChjb2RlcG9pbnQgPDwgNikgfCAoY2ggJiAweDNmKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLWZvbGxvd2luZzsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGRmKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MWY7Ci0gICAgICAg
ICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UgaWYgKGNoIDw9IDB4ZWYpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgwZjsKLSAgICAgICAgICAgICAgICAgICAgIGZvbGxv
d2luZyA9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7Ci0gICAg
ICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAzOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIGlmIChmb2xsb3dpbmcgPT0gMCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNvZGVwb2ludCA+IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdj
aGFyX3Q+KDB4ZDgwMCArIChjb2RlcG9pbnQgPj4gMTApKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29k
ZXBvaW50ICYgMHgwM2ZmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8d2NoYXJfdD4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAgICBj
b2RlcG9pbnQgPSAwOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotICAgICAgIHJldHVybiBv
dXQ7Ci19Ci0KLQotdm9pZCBzdHJjcHlfc2FmZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5C
dWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApCi17Ci0gICAgICAgcGNoQnVm
ZmVyWyB1bkJ1ZmZlclNpemVCeXRlcyAtIDEgXSA9ICdcMCc7Ci0gICAgICAgc3RybmNweSggcGNo
QnVmZmVyLCBwY2hTb3VyY2UsIHVuQnVmZmVyU2l6ZUJ5dGVzIC0gMSApOwotfQotCi0KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBjb252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJp
bmcgJiBzU3RyaW5nICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzT3V0OwotICAgICAgIHNPdXQu
cmVzZXJ2ZSggc1N0cmluZy5zaXplKCkgKyAxICk7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6
Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJpbmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBw
ZXIoICppICkgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gc091dDsKLX0KLQotCi0vLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQot
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1N0cmluZyApCi17Ci0gICAgICAgc3RkOjpzdHJpbmcgc091dDsKLSAgICAgICBzT3V0
LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOwotICAgICAgIGZvciggc3RkOjpzdHJpbmc6
OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsg
aSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xv
d2VyKCAqaSApICk7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNPdXQ7Ci19Ci0KLQotdWlu
dDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAq
cGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApCi17Ci0gICAgICAgdWludDMyX3QgdW5M
ZW4gPSAodWludDMyX3Qpc1ZhbHVlLmxlbmd0aCgpICsgMTsKLSAgICAgICBpZiggIXBjaEJ1ZmZl
ciB8fCAhdW5CdWZmZXJMZW4gKQotICAgICAgICAgICAgICByZXR1cm4gdW5MZW47Ci0KLSAgICAg
ICBpZiggdW5CdWZmZXJMZW4gPCB1bkxlbiApCi0gICAgICAgewotICAgICAgICAgICAgICBwY2hC
dWZmZXJbMF0gPSAnXDAnOwotICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAg
ICAgICAgICBtZW1jcHkoIHBjaEJ1ZmZlciwgc1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7Ci0gICAg
ICAgfQotCi0gICAgICAgcmV0dXJuIHVuTGVuOwotfQotCi12b2lkIEJ1ZmZlclRvU3RkU3RyaW5n
KCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyTGVuICkKLXsKLSAgICAgICBzRGVzdC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOwot
ICAgICAgIG1lbWNweSggY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hC
dWZmZXIsIHVuQnVmZmVyTGVuICk7Ci0gICAgICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3Qu
Y19zdHIoKSApWyB1bkJ1ZmZlckxlbiBdID0gJ1wwJzsKLX0KLQotLyoqIFJldHVybnMgYSBzdGQ6
OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1
aW50NjRfdCB1bFZhbHVlICkKLXsKLSAgICAgICBjaGFyIGJ1ZlsgMjIgXTsKLSNpZiBkZWZpbmVk
KCBfV0lOMzIgKQotICAgICAgIHNwcmludGZfcyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKLSNl
bHNlCi0gICAgc25wcmludGYoIGJ1Ziwgc2l6ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25n
IHVuc2lnbmVkIGludCApIHVsVmFsdWUgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBidWY7Ci19
Ci0KLQotLyoqIHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCi11aW50NjRfdCBT
dHJpbmdUb1VpbnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKQotewotICAgICAgIHJl
dHVybiBzdHJ0b3VsbCggc1ZhbHVlLmNfc3RyKCksIE5VTEwsIDAgKTsKLX0KLQotLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJp
YyB2YWx1ZSB0byBhIGhleCBkaWdpdCwgdmFsdWUgc2hvdWxkIGJlIDAtMTUuCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1jaGFyIGNJbnRUb0hleERpZ2l0KCBpbnQgblZhbHVlICkKLXsKLSAgICAg
ICAvL0Fzc2VydCggblZhbHVlID49IDAgJiYgblZhbHVlIDw9IDE1ICk7Ci0gICAgICAgcmV0dXJu
ICIwMTIzNDU2Nzg5QUJDREVGIlsgblZhbHVlICYgMTUgXTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFs
dWUgdG8gbnVtZXJpYywgcmV0dXJuIC0xIGlmIHRoZSBjaGFyCi0vLyAgICAgICAgICBpcyBub3Qg
YSB2YWxpZCBoZXggZGlnaXQuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbnQgaUhleENoYXJU
b0ludCggY2hhciBjVmFsdWUgKQotewotICAgICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOwot
ICAgICAgIGlmICggKHVpbnQzMl90KSggaVZhbHVlIC0gJzAnICkgPCAxMCApCi0gICAgICAgICAg
ICAgIHJldHVybiBpVmFsdWUgLSAnMCc7Ci0KLSAgICAgICBpVmFsdWUgfD0gMHgyMDsKLSAgICAg
ICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAtICdhJyApIDwgNiApCi0gICAgICAgICAgICAgIHJl
dHVybiBpVmFsdWUgLSAnYScgKyAxMDsKLQotICAgICAgIHJldHVybiAtMTsKLX0KLQotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2Yg
ZW5jb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0IFJGQyBtYW5uZXIsIG9yCi0vLyAgICAgICAgICB3
aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtlIEhUTUwgZm9ybSBlbmNvZGluZy4KLS8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9VUkxFbmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwg
aW50IG5EZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29s
IGJVc2VQbHVzRm9yU3BhY2UgKQotewotICAgICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMq
blNvdXJjZUxlbiwgIlRhcmdldCBidWZmZXIgZm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBz
b3VyY2UgbGVuZ3RoLCBwbHVzIG9uZSBmb3IgdGVybWluYXRpbmcgbnVsbFxuIiApOwotICAgICAg
IAotICAgICAgIGludCBpRGVzdFBvcyA9IDA7Ci0gICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5T
b3VyY2VMZW47ICsraSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdl
IG5lZWQgMyBhZGRpdGlvbmFsIGNoYXJzCi0gICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykg
PiBuRGVzdExlbiAgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hE
ZXN0WzBdID0gJ1wwJzsKLS8vICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwg
IlRhcmdldCBidWZmZXIgdG9vIHNob3J0XG4iICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEt
eiwgQS1aLCAwLTksIHBlcmlvZCwgdW5kZXJzY29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91
Z2ggdW5lc2NhcGVkLgotICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMg
YWxsb3dlZCBieSBib3RoIHRoZSBvcmlnaW5hbCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMg
Mzk4Ni4KLSAgICAgICAgICAgICAgLy8gQ3VycmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0
IHRoYXQgaXMgZm9yYmlkZGVuIHVuZGVyIG9yaWdpbmFsIFJGQyAxNzM4LgotICAgICAgICAgICAg
ICBpZiAoICEoIHBjaFNvdXJjZVtpXSA+PSAnYScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYm
ICEoIHBjaFNvdXJjZVtpXSA+PSAnQScgJiYgcGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNo
U291cmNlW2ldID49ICcwJyAmJiBwY2hTb3VyY2VbaV0gPD0gJzknICkKLSAgICAgICAgICAgICAg
ICAgICAgICAmJiBwY2hTb3VyY2VbaV0gIT0gJy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYg
cGNoU291cmNlW2ldICE9ICcuJyAgICAgICAKLSAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291
cmNlW2ldID09ICcgJyApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcrJzsKLSAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ld
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlID09IDAgKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
ciBjSGV4RGlnaXQxID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSAlIDE2ICk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAvPSAxNjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1
ZSApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9z
KytdID0gY0hleERpZ2l0MjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNo
RGVzdFtpRGVzdFBvcysrXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtp
RGVzdFBvcysrXSA9IHBjaFNvdXJjZVtpXTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIGlmKCAoaURlc3RQb3MrMSkgPiBuRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAg
ICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNl
LCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hvcnQgdG8gdGVybWluYXRlXG4iICk7Ci0gICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICB9Ci0KLSAgICAgICAvLyBOdWxsIHRlcm1pbmF0ZQotICAgICAg
IHBjaERlc3RbaURlc3RQb3MrK10gPSAwOwotfQotCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IEludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4g
dGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgotLy8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVk
IHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2RpbmcuCi0vLwotLy8gICAgICAgICAgICAgICAgICAg
ICBSZXR1cm5zIHRoZSBhbW91bnQgb2Ygc3BhY2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4K
LS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNpemVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFy
ICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29k
ZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkK
LXsKLSAgICAgICBpZiAoIG5EZWNvZGVEZXN0TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVl
ZHMgYSBkZXN0IGJ1ZmZlciBhdCBsZWFzdCBhcyBsYXJnZSBhcyB0aGUgc291cmNlIiApOwotICAg
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICB9Ci0KLSAgICAgICBpbnQgaURlc3RQb3MgPSAw
OwotICAgICAgIGZvciggaW50IGk9MDsgaSA8IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRT
b3VyY2VbaV0gPT0gJysnICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyAnOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UgaWYgKCBwY2hFbmNvZGVkU291cmNlW2ldID09ICclJyApCi0gICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVu
Y29kZWQgdmFsdWUsIGxvb2sgYWhlYWQgZm9yIHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1l
cmljLCBhbmQgdXNlIHRoYXQKLQotICAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBz
dXJlIHdlIGhhdmUgMiBtb3JlIGNoYXJzCi0gICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBu
RW5jb2RlZFNvdXJjZUxlbiAtIDIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsx
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNv
ZGVkU291cmNlW2krMl07Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRo
ZSBjaGFycyBpbnRvIGEgaGV4IHZhbHVlLCBpZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2Un
bGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0
aGUgZm9sbG93aW5nIHR3byBjaGFycyBkaXJlY3QgaW50byB0aGUgc3RyaW5nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBo
YXBwZW4sIHdobyBrbm93cyB3aGF0IGJhZCBjbGllbnRzCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gbWF5IGRvIHdpdGggZW5jb2RpbmcuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBiVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
aVZhbHVlID0gaUhleENoYXJUb0ludCggY0hleERpZ2l0MSApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICggaVZhbHVlICE9IC0xICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRv
SW50KCBjSGV4RGlnaXQyICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICggaVZhbHVlMiAhPSAtMSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFs
dWUyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2Rl
RGVzdFsgaURlc3RQb3MrKyBdID0gKGNoYXIpaVZhbHVlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYlZhbGlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICggIWJWYWxpZCApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVE
ZXN0WyBpRGVzdFBvcysrIF0gPSAnJSc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNI
ZXhEaWdpdDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGFoZWFkCi0gICAgICAgICAg
ICAgICAgICAgICBpICs9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVz
dFBvcysrIF0gPSBwY2hFbmNvZGVkU291cmNlW2ldOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
fQotCi0gICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5h
dGUsIHNpbmNlIHRoaXMgY2FuIGJlIHVzZWQgb24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbwotICAg
ICAgIC8vIGdvIGFoZWFkIGFuZCBkbyBpdCBhcyB0aGlzIGNhbiBhdm9pZCBidWdzLgotICAgICAg
IGlmICggaURlc3RQb3MgPCBuRGVjb2RlRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAgICAg
ICBwY2hEZWNvZGVEZXN0W2lEZXN0UG9zXSA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IChzaXplX3QpaURlc3RQb3M7Ci19Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBv
c2U6IEVuY29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBm
b3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNp
b24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNl
cyArIGZvciBzcGFjZSBhcyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9y
bSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8v
ICAgICAgICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3Vy
Y2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi12b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNv
bnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKQotewotICAgICAgIHJldHVybiBW
X1VSTEVuY29kZUludGVybmFsKCBwY2hEZXN0LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNl
TGVuLCB0cnVlICk7Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
RGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1h
dCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBv
ZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsg
Zm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVu
Y29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwotLy8gICAg
ICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBi
dWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAgICAgICAg
ICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29k
ZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURl
c3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxl
biApCi17Ci0gICAgICAgcmV0dXJuIFZfVVJMRGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3Qs
IG5EZWNvZGVEZXN0TGVuLCBwY2hFbmNvZGVkU291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1
ZSApOwotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZfU3RyaXBFeHRlbnNpb24o
IHN0ZDo6c3RyaW5nICZpbiApCi17Ci0gICAgICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0
J3MgZm9sbG93ZWQgYnkgYSBkb3Qgb3IgYSBzbGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKLSAg
ICAgICAvLyBkaXJlY3Rvcnkgc3BlY2lmaWVyIGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCi0g
ICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOwotICAg
ICAgIGlmICggdGVzdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCi0gICAgICAgewotICAgICAgICAg
ICAgICAvLyBUaGlzIGhhbmRsZXMgdGhpbmdzIGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWls
LmNvbVxhYmNcZGVmXGdlaCIKLSAgICAgICAgICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNl
IHdpbmQgdXAgd2l0aCAiIiBhbmQgImM6XG15QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgotICAgICAg
ICAgICAgICBpZiAoIGluLnJmaW5kKCAnXFwnICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8
IHRlc3QgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUo
IHRlc3QgKTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjNlNTRhMjhjNzM0Yjc3ZjkyZjc3ODM0NmEz
YTZhODVjNjRmMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmlnaHQg
VmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSA8c3RyaW5nPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgot
Ci0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBwcmVmaXggKi8KLWJvb2wg
U3RyaW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc1ByZWZpeCApOwotYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0aXZlKCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCAp
OwotCi0vKiogcmV0dXJucyBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgc3VmZml4ICovCi1ib29sIFN0
cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzU3VmZml4ICk7Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApOwotCi0v
KiogY29udmVydHMgYSBVVEYtMTYgc3RyaW5nIHRvIGEgVVRGLTggc3RyaW5nICovCi1zdGQ6OnN0
cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pOwotCi0vKiogY29udmVydHMgYSBVVEYt
OCBzdHJpbmcgdG8gYSBVVEYtMTYgc3RyaW5nICovCi1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29u
c3QgY2hhciAqIGluKTsKLSNkZWZpbmUgVXRmMTZGcm9tVXRmOCBVVEY4dG8xNgotCi0vKiogc2Fm
ZWx5IGNvcHkgYSBzdHJpbmcgaW50byBhIGJ1ZmZlciAqLwotdm9pZCBzdHJjcHlfc2FmZSggY2hh
ciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSApOwotdGVtcGxhdGU8IHNpemVfdCBidWZmZXJTaXplID4KLXZvaWQgc3RyY3B5X3NhZmUo
IGNoYXIgKCYgYnVmZmVyKSBbIGJ1ZmZlclNpemUgXSwgY29uc3QgY2hhciAqcGNoU291cmNlICkg
Ci17Ci0gICAgICAgc3RyY3B5X3NhZmUoIGJ1ZmZlciwgYnVmZmVyU2l6ZSwgcGNoU291cmNlICk7
Ci19Ci0KLQotLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UgKi8KLXN0ZDo6c3Ry
aW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApOwotCi0vKiog
Y29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZSAqLwotc3RkOjpzdHJpbmcgU3RyaW5nVG9M
b3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7Ci0KLS8vIHdlIHN0cmljbXAgKGZy
b20gV0lOKSBidXQgaXQgaXNuJ3QgUE9TSVggLSBPU1gvTElOVVggaGF2ZSBzdHJjYXNlY21wIHNv
IGp1c3QgaW5saW5lIGJyaWRnZSB0byBpdAotI2lmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQo
IExJTlVYICkKLSNpbmNsdWRlIDxzdHJpbmdzLmg+Ci1pbmxpbmUgaW50IHN0cmljbXAoY29uc3Qg
Y2hhciAqcFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyKSB7IHJldHVybiBzdHJjYXNlY21wKHBTdHIx
LHBTdHIyKTsgfQotI2RlZmluZSBfc3RyaWNtcCBzdHJpY21wCi1pbmxpbmUgaW50IHN0cm5pY21w
KCBjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIsIHNpemVfdCB1bkJ1ZmZlckxl
biApIHsgcmV0dXJuIHN0cm5jYXNlY21wKCBwU3RyMSxwU3RyMiwgdW5CdWZmZXJMZW4gKTsgfQot
I2RlZmluZSBfc3RybmljbXAgc3RybmljbXAKLQotI2RlZmluZSBfdnNucHJpbnRmX3MgdnNucHJp
bnRmCi0KLSNkZWZpbmUgX1RSVU5DQVRFICgoc2l6ZV90KS0xKQotCi0jZW5kaWYKLQotI2lmIGRl
ZmluZWQoIE9TWCApCi0vLyBiZWhhdmlvcnMgZW5zdXJlIE5VTEwtdGVybWluYXRpb24gYXQgbGVh
c3QgYXMgd2VsbCBhcyBfVFJVTkNBVEUgZG9lcywgYnV0Ci0vLyB3Y3NuY3B5X3Mvc3RybmNweV9z
IGNhbiBub24tTlVMTC10ZXJtaW5hdGUsIHdjc2xjcHkvc3RybGNweSBjYW4gbm90LgotaW5saW5l
IGVycm5vX3Qgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1l
bnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBy
ZXR1cm4gd2NzbGNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMpOwotfQot
Ci1pbmxpbmUgZXJybm9fdCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9m
RWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQotewotICAgICAg
IHJldHVybiBzdHJsY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci19
Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZCggTElOVVggKQotLy8gdGhpcyBpbXBsZW1lbnRhdGlv
biBkb2VzIG5vdCByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGRlc3RpbmF0aW9uIHdhcyAKLS8v
IHRydW5jYXRlZCwgYnV0IHRoYXQgaXMgc3RyYWlnaHRmb3J3YXJkIHRvIGZpeCBpZiBhbnlib2R5
IGFjdHVhbGx5IG5lZWRzIHRoZQotLy8gcmV0dXJuIGNvZGUuIAotI2luY2x1ZGUgInN0cmluZy5o
IgotaW5saW5lIHZvaWQgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAg
ICAgICB3Y3NuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAg
ICAgc3RyRGVzdFtudW1iZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotaW5saW5lIHZvaWQg
c3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBjb25zdCBj
aGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBzdHJuY3B5KHN0ckRlc3Qs
IHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAgICAgc3RyRGVzdFtudW1iZXJPZkVs
ZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKCBfV0lOMzIgKSAm
JiBfTVNDX1ZFUiA8IDE4MDAKLWlubGluZSB1aW50NjRfdCBzdHJ0b3VsbChjb25zdCBjaGFyICpz
dHIsIGNoYXIgKiplbmRwdHIsIGludCBiYXNlKSB7IHJldHVybiBfc3RydG91aTY0KCBzdHIsIGVu
ZHB0ciwgYmFzZSApOyB9Ci0jZW5kaWYKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEgc3RkOjpzdHJp
bmcgaW50byBhIGJ1ZmZlciBhcyB3b3VsZCBiZSBwcm92aWRlZCBpbiBhbiBBUEkgKi8KLXVpbnQz
Ml90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUsIGNoYXIgKnBj
aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEg
YnVmZmVyIGludG8gYW4gc3RkOjpzdHJpbmcgYW5kIGF1dG8gYWRkcyBudWxsIHRlcm1pbmF0b3Ig
Ki8KLXZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNvbnN0IGNo
YXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyoqIFJldHVybnMgYSBz
dGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5n
KCB1aW50NjRfdCB1bFZhbHVlICk7Ci0KLS8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJvbSBhIHN0
cmluZyAqLwotdWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Zh
bHVlICk7Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IEVuY29kZXMgYSBz
dHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMx
NzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwg
aXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBh
cyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVz
cGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8vICAgICAgICAgIERlc3Qg
YnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1
YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZf
VVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSwgaW50IG5Tb3VyY2VMZW4gKTsKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVy
cG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5n
IGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVy
c2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1
c2VzICsgZm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBm
b3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwot
Ly8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNv
dXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAg
ICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIg
KGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRl
Y29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNv
dXJjZUxlbiApOwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBzdHJpcCBl
eHRlbnNpb24gZnJvbSBhIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9TdHJp
cEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICk7Ci0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGYzMDQyNGE5ZmYzNjFjODM2
ZjlhNGMwOGNmYTY4NDZhYWQzN2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQxMSArMCwwIEBACi0vLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLQotI2lu
Y2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgotI2luY2x1ZGUgImpzb24vanNvbi5oIgot
I2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJs
aWMuaCIKLSNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJkaXJ0b29sc19w
dWJsaWMuaCIKLQotI2lmIGRlZmluZWQoIFdJTjMyICkKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0j
aW5jbHVkZSA8c2hsb2JqLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCi0jZWxp
ZiBkZWZpbmVkIE9TWAotI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2luY2x1
ZGUgPEFwcEtpdC9BcHBLaXQuaD4KLSNlbGlmIGRlZmluZWQoTElOVVgpCi0jaW5jbHVkZSA8ZGxm
Y24uaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2VuZGlmCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+
Ci0KLSNpZm5kZWYgVlJMb2cKLSAgICAgICAjaWYgZGVmaW5lZCggX19NSU5HVzMyX18gKQotICAg
ICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgYXJncykKLSAgICAgICAjZWxpZiBkZWZpbmVkKCBXSU4zMiApCi0gICAgICAgICAgICAg
ICNkZWZpbmUgVlJMb2coZm10LCAuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgZm10
LCBfX1ZBX0FSR1NfXykKLSAgICAgICAjZWxzZQotICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9n
KGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKLSAgICAgICAjZW5k
aWYKLSNlbmRpZgotCi0vKiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBz
eXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBjb25maWcgZGF0YSBpbiAqLwotc3RhdGljIHN0
ZDo6c3RyaW5nIEdldEFwcFNldHRpbmdzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQot
ICAgICAgIFdDSEFSIHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmKCAhU1VDQ0VFREVE
KCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9MT0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxB
R19DUkVBVEUsIE5VTEwsIDAsIHJ3Y2hQYXRoICkgKSApCi0gICAgICAgewotICAgICAgICAgICAg
ICByZXR1cm4gIiI7Ci0gICAgICAgfQotCi0gICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBV
VEYtOCBhbmQgc3RvcmUgaW4gdGhlIG91dHB1dAotICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0
aCA9IFVURjE2dG84KCByd2NoUGF0aCApOwotCi0gICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKLSNl
bGlmIGRlZmluZWQoIE9TWCApCi0gICAgICAgc3RkOjpzdHJpbmcgc1NldHRpbmdzRGlyOwotICAg
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgICAvLyBTZWFyY2ggZm9yIHRoZSBw
YXRoCi0gICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0
b3JpZXNJbkRvbWFpbnMoIE5TQXBwbGljYXRpb25TdXBwb3J0RGlyZWN0b3J5LCBOU1VzZXJEb21h
aW5NYXNrLCBZRVMgKTsKLSAgICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIE5TU3RyaW5nICpyZXNvbHZl
ZFBhdGggPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTsKLSAgICAgICAgICAgICAgcmVzb2x2ZWRQ
YXRoID0gW3Jlc29sdmVkUGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6IEAiT3Bl
blZSIl07Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICBpZiAoICFbW05TRmlsZU1hbmFn
ZXIgbmV3XSBjcmVhdGVEaXJlY3RvcnlBdFBhdGg6IHJlc29sdmVkUGF0aCB3aXRoSW50ZXJtZWRp
YXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF0gKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIHNTZXR0aW5nc0Rpci5hc3NpZ24oIFtyZXNv
bHZlZFBhdGggVVRGOFN0cmluZ10gKTsKLSAgICAgICB9Ci0gICAgICAgcmV0dXJuIHNTZXR0aW5n
c0RpcjsKLSNlbGlmIGRlZmluZWQoIExJTlVYICkKLQotICAgICAgIC8vIEFzIGRlZmluZWQgYnkg
WERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb24gCi0gICAgICAgLy8gaHR0cHM6Ly9zcGVj
aWZpY2F0aW9ucy5mcmVlZGVza3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRl
c3QuaHRtbAotCi0gICAgICAgY29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVudigiWERHX0NPTkZJ
R19IT01FIik7Ci0gICAgICAgaWYgKCAoIHBjaEhvbWUgIT0gTlVMTCkgJiYgKCBwY2hIb21lWzBd
ICE9ICdcMCcgKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gcGNoSG9tZTsKLSAg
ICAgICB9Ci0KLSAgICAgICAvLwotICAgICAgIC8vIFhER19DT05GSUdfSE9NRSBpcyBub3QgZGVm
aW5lZCwgdXNlIH4vLmNvbmZpZyBpbnN0ZWFkCi0gICAgICAgLy8gCi0gICAgICAgcGNoSG9tZSA9
IGdldGVudiggIkhPTUUiICk7Ci0gICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLQotICAgICAgIHN0ZDo6c3Ry
aW5nIHNVc2VyUGF0aCggcGNoSG9tZSApOwotICAgICAgIHNVc2VyUGF0aCA9IFBhdGhfSm9pbigg
c1VzZXJQYXRoLCAiLmNvbmZpZyIgKTsKLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2Vsc2UK
LSAgICAgICAjd2FybmluZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnN0cnVjdG9yCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUNWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJs
aWMoKQotewotCi19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29tcHV0
ZXMgdGhlIHJlZ2lzdHJ5IGZpbGVuYW1lCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3Ry
aW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgoKQotewotICAg
ICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoID0gR2V0QXBwU2V0dGluZ3NQYXRoKCk7Ci0gICAg
ICAgaWYoIHNDb25maWdQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0K
LSNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBMSU5VWCApCi0gICAgICAgc0NvbmZp
Z1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRoLCAib3BlbnZyIiApOwotI2VsaWYgZGVmaW5l
ZCAoIE9TWCApIAotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwg
Ii5vcGVudnIiICk7Ci0jZWxzZQotICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9y
bSIKLSNlbmRpZgotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzQ29uZmln
UGF0aCApOwotICAgICAgIHJldHVybiBzQ29uZmlnUGF0aDsKLX0KLQotCi0KLS8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6Ci0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0
cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCkK
LXsKLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKLSAg
ICAgICBpZiAoIHNQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSNp
ZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9w
ZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbGlmIGRlZmluZWQgKCBQT1NJWCApIAotICAgICAgIHNQ
YXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbHNlCi0g
ICAgICAgI2Vycm9yICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKLSNlbmRpZgotICAgICAgIHNQYXRo
ID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOwotICAgICAgIHJldHVybiBzUGF0aDsKLX0KLQot
Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnZlcnRzIEpTT04gdG8gYSBo
aXN0b3J5IGFycmF5Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0YXRpYyB2b2lkIFBhcnNlU3Ry
aW5nTGlzdEZyb21Kc29uKCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiAqcHZlY0hpc3Rvcnks
IGNvbnN0IEpzb246OlZhbHVlICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlOYW1lICkKLXsK
LSAgICAgICBpZiggIXJvb3QuaXNNZW1iZXIoIHBjaEFycmF5TmFtZSApICkKLSAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgY29uc3QgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290
WyBwY2hBcnJheU5hbWUgXTsKLSAgICAgICBpZiggIWFycmF5Tm9kZSApCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUkxvZyggIlZSIFBhdGggUmVnaXN0cnkgbm9kZSAlcyBpcyBub3QgYW4gYXJy
YXlcbiIsIHBjaEFycmF5TmFtZSApOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgfQot
Ci0gICAgICAgcHZlY0hpc3RvcnktPmNsZWFyKCk7Ci0gICAgICAgcHZlY0hpc3RvcnktPnJlc2Vy
dmUoIGFycmF5Tm9kZS5zaXplKCkgKTsKLSAgICAgICBmb3IoIHVpbnQzMl90IHVuSW5kZXggPSAw
OyB1bkluZGV4IDwgYXJyYXlOb2RlLnNpemUoKTsgdW5JbmRleCsrICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoKCBhcnJheU5vZGVbIHVuSW5kZXggXS5hc1N0cmlu
ZygpICk7Ci0gICAgICAgICAgICAgIHB2ZWNIaXN0b3J5LT5wdXNoX2JhY2soIHNQYXRoICk7Ci0g
ICAgICAgfQotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29udmVy
dHMgYSBoaXN0b3J5IGFycmF5IHRvIEpTT04KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RhdGlj
IHZvaWQgU3RyaW5nTGlzdFRvSnNvbiggY29uc3Qgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4g
JiB2ZWNIaXN0b3J5LCBKc29uOjpWYWx1ZSAmIHJvb3QsIGNvbnN0IGNoYXIgKnBjaEFycmF5TmFt
ZSApCi17Ci0gICAgICAgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5h
bWUgXTsKLSAgICAgICBmb3IoIGF1dG8gaSA9IHZlY0hpc3RvcnkuYmVnaW4oKTsgaSAhPSB2ZWNI
aXN0b3J5LmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYXJyYXlOb2RlLmFw
cGVuZCggKmkgKTsKLSAgICAgICB9Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8g
UHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYzo6VG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKQotewotICAgICAg
IHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAg
ICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIAotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdpc3RyeUNvbnRlbnRzID0gUGF0aF9SZWFk
VGV4dEZpbGUoIHNSZWdQYXRoICk7Ci0gICAgICAgaWYoIHNSZWdpc3RyeUNvbnRlbnRzLmVtcHR5
KCkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICBzSnNvblN0cmluZyA9
IHNSZWdpc3RyeUNvbnRlbnRzOwotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBMb2FkcyB0aGUgY29uZmlnIGZpbGUgZnJvbSBp
dHMgd2VsbCBrbm93biBsb2NhdGlvbgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29sIENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUoKQotewotICAgICAgIHN0ZDo6c3RyaW5n
IHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVn
UGF0aC5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRv
IGRldGVybWluZSBWUiBQYXRoIFJlZ2lzdHJ5IGZpbGVuYW1lXG4iICk7Ci0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlD
b250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVnUGF0aCApOwotICAgICAgIGlmKCBzUmVn
aXN0cnlDb250ZW50cy5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAi
VW5hYmxlIHRvIHJlYWQgVlIgUGF0aCBSZWdpc3RyeSBmcm9tICVzXG4iLCBzUmVnUGF0aC5jX3N0
cigpICk7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBK
c29uOjpWYWx1ZSByb290OwotICAgICAgIEpzb246OlJlYWRlciByZWFkZXI7Ci0KLSAgICAgICBp
ZiggIXJlYWRlci5wYXJzZSggc1JlZ2lzdHJ5Q29udGVudHMsIHJvb3QgKSApCi0gICAgICAgewot
ICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBwYXJzZSAlczogJXNcbiIsIHNSZWdQYXRo
LmNfc3RyKCksIHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuY19zdHIoKSApOwot
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAgUGFyc2VTdHJp
bmdMaXN0RnJvbUpzb24oICZtX3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsKLSAg
ICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNv
bmZpZyIgKTsKLSAgICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjTG9nUGF0aCwg
cm9vdCwgImxvZyIgKTsKLSAgICAgICBpZiAocm9vdC5pc01lbWJlciggImV4dGVybmFsX2RyaXZl
cnMiICkgJiYgcm9vdFsgImV4dGVybmFsX2RyaXZlcnMiIF0uaXNBcnJheSgpICkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNFeHRlcm5hbERy
aXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB0cnVlOwotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogU2F2
ZXMgdGhlIGNvbmZpZyBmaWxlIHRvIGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUoKSBj
b25zdAotewotI2lmIGRlZmluZWQoIERBU0hCT0FSRF9CVUlMRF9NT0RFICkKLSAgICAgICByZXR1
cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRo
UmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIAotICAgICAgIEpzb246OlZhbHVlIHJvb3Q7
Ci0gICAgICAgCi0gICAgICAgcm9vdFsgInZlcnNpb24iIF0gPSAxOwotICAgICAgIHJvb3RbICJq
c29uaWQiIF0gPSAidnJwYXRocmVnIjsKLQotICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVj
UnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwotICAgICAgIFN0cmluZ0xpc3RUb0pzb24o
IG1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIgKTsKLSAgICAgICBTdHJpbmdMaXN0VG9K
c29uKCBtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7Ci0gICAgICAgU3RyaW5nTGlzdFRvSnNv
biggbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotCi0g
ICAgICAgSnNvbjo6U3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgICAgICBzdGQ6OnN0cmluZyBzUmVn
aXN0cnlDb250ZW50cyA9IHdyaXRlci53cml0ZSggcm9vdCApOwotCi0gICAgICAgLy8gbWFrZSBz
dXJlIHRoZSBkaXJlY3Rvcnkgd2UncmUgd3JpdGluZyBpbnRvIGFjdHVhbGx5IGV4aXN0cwotICAg
ICAgIHN0ZDo6c3RyaW5nIHNSZWdEaXJlY3RvcnkgPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHNSZWdQ
YXRoICk7Ci0gICAgICAgaWYoICFCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBzUmVnRGlyZWN0
b3J5LmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byBjcmVhdGUgcGF0aCByZWdpc3RyeSBkaXJlY3RvcnkgJXNcbiIsIHNSZWdEaXJlY3RvcnkuY19z
dHIoKSApOwotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAg
aWYoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc1JlZ1BhdGgsIHNSZWdpc3RyeUNvbnRl
bnRzLmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byB3cml0ZSBWUiBwYXRoIHJlZ2lzdHJ5IHRvICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7Ci0g
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdHJ1
ZTsKLSNlbmRpZgotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0
dXJucyB0aGUgY3VycmVudCBydW50aW1lIHBhdGggb3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZp
Z3VyZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoKCkgY29uc3QKLXsKLSAgICAgICBpZiggbV92ZWNSdW50
aW1lUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjUnVudGltZVBhdGguZnJvbnQoKS5jX3N0cigpOwot
fQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3Vy
cmVudCBjb25maWcgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0
Q29uZmlnUGF0aCgpIGNvbnN0Ci17Ci0gICAgICAgaWYoIG1fdmVjQ29uZmlnUGF0aC5lbXB0eSgp
ICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
cmV0dXJuIG1fdmVjQ29uZmlnUGF0aC5mcm9udCgpLmNfc3RyKCk7Ci19Ci0KLQotLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvZyBwYXRoIG9y
IE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1z
dGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoKCkgY29uc3QKLXsK
LSAgICAgICBpZiggbV92ZWNMb2dQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4g
IiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gbV92ZWNMb2dQYXRoLmZyb250
KCkuY19zdHIoKTsKLX0KLQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
UmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHByb3ZpZGVkIG92
ZXJyaWRlIAotLy8gICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuIFBhc3MgTlVMTCBmb3IgYW55
IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29s
IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1l
UGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmlnUGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwg
Y29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRo
T3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyAp
Ci17Ci0gICAgICAgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYyBwYXRoUmVnOwotICAgICAgIGJvb2wg
YkxvYWRlZFJlZ2lzdHJ5ID0gcGF0aFJlZy5CTG9hZEZyb21GaWxlKCk7Ci0gICAgICAgaW50IG5D
b3VudEVudmlyb25tZW50VmFyaWFibGVzID0gMDsKLQotICAgICAgIGlmKCBwc1J1bnRpbWVQYXRo
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgg
a19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSBHZXRFbnZpcm9ubWVudFZh
cmlhYmxlKCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAg
bkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRSdW50aW1lUGF0aCgpLmVtcHR5KCkgKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IHBhdGhSZWcu
R2V0UnVudGltZVBhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gIiI7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0KLSAgICAgICBpZiggcHNDb25maWdQYXRoICkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19w
Y2hDb25maWdPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJs
ZSgga19wY2hDb25maWdPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAgbkNvdW50
RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBl
bHNlIGlmKCBwY2hDb25maWdQYXRoT3ZlcnJpZGUgKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gcGNoQ29uZmlnUGF0aE92ZXJyaWRlOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldENvbmZpZ1Bh
dGgoKS5lbXB0eSgpICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBz
Q29uZmlnUGF0aCA9IHBhdGhSZWcuR2V0Q29uZmlnUGF0aCgpOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
KnBzQ29uZmlnUGF0aCA9ICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAg
aWYoIHBzTG9nUGF0aCApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKTsKLSAgICAgICAgICAgICAgICAgICAg
IG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgZWxzZSBpZiggcGNoTG9nUGF0aE92ZXJyaWRlICkKLSAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IHBjaExvZ1BhdGhPdmVycmlkZTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRMb2dQYXRoKCku
ZW1wdHkoKSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1Bh
dGggPSBwYXRoUmVnLkdldExvZ1BhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGgg
PSAiIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQotICAgICAgIGlmICggcHZlY0V4dGVy
bmFsRHJpdmVycyApCi0gICAgICAgewotICAgICAgICAgICAgICAqcHZlY0V4dGVybmFsRHJpdmVy
cyA9IHBhdGhSZWcubV92ZWNFeHRlcm5hbERyaXZlcnM7Ci0gICAgICAgfQotCi0gICAgICAgaWYg
KCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9PSAzICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIC8vIGFsbCB0aHJlZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlcmUgc2V0LCBzbyB3ZSBk
b24ndCBuZWVkIHRoZSBwaHlzaWNhbCBmaWxlCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiBiTG9hZGVkUmVnaXN0cnk7Ci19Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlf
cHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJl
Z2lzdHJ5X3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjBkZTU2Zjlk
ZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vdnJwYXRocmVnaXN0cnlfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNp
bmNsdWRlIDxzdGRpbnQuaD4KLQotc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoUnVudGltZU92ZXJy
aWRlVmFyID0gIlZSX09WRVJSSURFIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaENvbmZpZ092
ZXJyaWRlVmFyID0gIlZSX0NPTkZJR19QQVRIIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaExv
Z092ZXJyaWRlVmFyID0gIlZSX0xPR19QQVRIIjsKLQotY2xhc3MgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYwotewotcHVibGljOgotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRWUlBhdGhSZWdp
c3RyeUZpbGVuYW1lKCk7Ci0gICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE9wZW5WUkNvbmZp
Z1BhdGgoKTsKLQotcHVibGljOgotICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKTsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUg
cHJvdmlkZWQgb3ZlcnJpZGUgdmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9u
J3QgY2FyZSBhYm91dC4gCi0gICAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBwYXRoIHJlZ2lz
dHJ5IGNvdWxkIG5vdCBiZSByZWFkLiBWYWxpZCBwYXRocyBtaWdodCBzdGlsbCBiZSByZXR1cm5l
ZCBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCi0gICAgICAgc3RhdGljIGJvb2wg
R2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRpbWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25m
aWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRoLCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRo
T3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1BhdGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJzID0gTlVMTCApOwotCi0gICAgICAgYm9vbCBC
TG9hZEZyb21GaWxlKCk7Ci0gICAgICAgYm9vbCBCU2F2ZVRvRmlsZSgpIGNvbnN0OwotCi0gICAg
ICAgYm9vbCBUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApOwotCi0gICAg
ICAgLy8gbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgdmFsdWVzCi0gICAgICAgc3RkOjpzdHJp
bmcgR2V0UnVudGltZVBhdGgoKSBjb25zdDsKLSAgICAgICBzdGQ6OnN0cmluZyBHZXRDb25maWdQ
YXRoKCkgY29uc3Q7Ci0gICAgICAgc3RkOjpzdHJpbmcgR2V0TG9nUGF0aCgpIGNvbnN0OwotCi1w
cm90ZWN0ZWQ6Ci0gICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiBTdHJp
bmdWZWN0b3JfdDsKLQotICAgICAgIC8vIGluZGV4IDAgaXMgdGhlIGN1cnJlbnQgc2V0dGluZwot
ICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjUnVudGltZVBhdGg7Ci0gICAgICAgU3RyaW5nVmVj
dG9yX3QgbV92ZWNMb2dQYXRoOwotICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjQ29uZmlnUGF0
aDsKLQotICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBleHRlcm5hbCBkcml2ZXJzCi0gICAgICAgU3Ry
aW5nVmVjdG9yX3QgbV92ZWNFeHRlcm5hbERyaXZlcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4NjEyODNkMzlkODdmN2U5ZjEwOGU4ZTlhYTIxNDc2ZTU3YTBmMzk0Li5kOGUwNGU5MGFj
ZWQ4YWM2YzlkZWNlMjU2NzIzYTk1NWZiNzI1OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NjgsNyArNjgsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy93ZWJzb2NrZXRzIgotICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAgICIk
e1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYW5pbWF0aW9uIgpAQCAt
MjE1LDcgKzIxNCw2IEBAIHNldChXZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UKICAgICBNb2R1bGVzL3dlYmdwdQogICAgIE1vZHVsZXMvd2Vic29ja2V0cwotICAg
IE1vZHVsZXMvd2VidnIKIAogICAgIGJpbmRpbmdzL2pzCiAKQEAgLTU1OCwyMCArNTU2LDYgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvQ2xv
c2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAogCi0gICAg
TW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwKLSAgICBNb2R1bGVzL3dlYnZyL05hdmln
YXRvcldlYlZSLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotICAgIE1vZHVs
ZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJE
aXNwbGF5RXZlbnQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5p
ZGwKLSAgICBNb2R1bGVzL3dlYnZyL1ZSRXllLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSAgICBN
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9W
UlN0YWdlUGFyYW1ldGVycy5pZGwKLQogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJv
bGUuaWRsCiAgICAgYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwKIApAQCAtMTE5Myw4
ICsxMTc3LDYgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICAgICBNb2R1bGVzL2dhbWVwYWQv
R2FtZXBhZEJ1dHRvbi5pZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5p
ZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsCi0KLSAgICAg
ICAgTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCiAgICAgKQogCiAgICAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCkBAIC0xNTY0LDEyICsxNTQ2LDYgQEAgaWYgKEVOQUJMRV9VU0VS
X01FU1NBR0VfSEFORExFUlMpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0g
IGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1RISVJE
UEFSVFlfRElSfS9vcGVudnIvaGVhZGVycyIpCi0gIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFU
RV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS92ci9vcGVudnIi
KQotICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBvcGVudnJfYXBpKQotZW5kaWYgKCkK
LQogaWYgKFVTRV9XT0ZGMikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVf
RElSRUNUT1JJRVMgIiR7V09GRjJERUNfSU5DTFVERV9ESVJTfSIpCiAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfTElCUkFSSUVTICIke1dPRkYyREVDX0xJQlJBUklFU30iKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMGFjNWU1ZWU2YjBiZmU4
YTBhNmY1NjNlMGMzZTJlMDc5NzQ3ZmEwMi4uNWE0ZTNkMmEzNjgxOTIyNGZlZjE2OGNkZDBkM2Ji
YjY3ZWJhNThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC00MDksMjAgKzQwOSw2IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUv
V29ya2VyTmF2aWdhdG9yR1BVLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJzb2NrZXRz
L0Nsb3NlRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwK
LSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAotJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZS
RGlzcGxheUV2ZW50LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudFJlYXNvbi5pZGwKLSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvVlJFeWUuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKLSQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZy
L1ZSTGF5ZXJJbml0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRs
Ci0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSU3RhZ2VQYXJhbWV0ZXJzLmlkbAogJChQ
Uk9KRUNUX0RJUikvUmVzb3VyY2VzL3BsdWdJbnMuanMKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMv
R2VuZXJhdGVTZXR0aW5ncy5yYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWQ2NmNlY2RmMzQ4ZDJm
N2E3ZjNlZjA4MzAyYjhmNTI5YWQ3OThmOC4uODUzYTI3NDcyZGZkMDFiNTIwZWI3MmEyMDIxOGVm
MjU4OGI3NThhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTQzOSw4ICs0MzksNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFz
ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvd1dlYkdQVS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93V2ViR1BVLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViVlIuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYlZSLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlci5jcHAKQEAg
LTY3NSw4ICs2NzMsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0dhbWVwYWRCdXR0b24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRCdXR0b24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHYW1lcGFkRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRFdmVudC5oCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZS
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9j
YXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dlb2xvY2F0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKQEAgLTExMzcsOCArMTEzMyw2IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldlYkRyaXZlci5oCi0k
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldl
YlZSLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0b3JXZWJWUi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOb2RlRmlsdGVyLmNwcApAQCAtMTg4NywyOCArMTg4MSw2IEBAICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVlJEaXNwbGF5LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWUkRpc3BsYXkuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuY3BwCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxh
eUV2ZW50LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNWUkRpc3BsYXlFdmVudC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZSRGlzcGxheUV2ZW50UmVhc29uLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlFdmVudFJlYXNvbi5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllLmNwcAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkV5ZS5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllUGFyYW1ldGVycy5j
cHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJFeWVQ
YXJhbWV0ZXJzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVlJGaWVsZE9mVmlldy5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlJGaWVsZE9mVmlldy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRnJhbWVEYXRhLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkZyYW1lRGF0YS5oCi0kKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSTGF5ZXJJbml0LmNwcAotJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkxheWVySW5pdC5oCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSUG9zZS5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJQb3NlLmgKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJTdGFnZVBhcmFt
ZXRlcnMuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1ZSU3RhZ2VQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlRUQ3VlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRDdWUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAyMWZiMWFkYjdhZjE1NGE5NGVkMWUyZmMyN2JiYzZiMDE3OGM1MzNmLi4yNDZlZjJkOGU5
MzM4ZWQyYTliNjAxMTgwNGNmYTEyNDZjNzE4NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTY0LDcgKzY0LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ciBc
CiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlv
biBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjEsMjAgKzQ2MCw2IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3Nl
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJFeWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJz
LmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VidnIvVlJQb3NlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZS
U3RhZ2VQYXJhbWV0ZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRy
aWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIzYzQ2ZDUzOTEzZmUzMjBiYTI2ZGYyNGQ2YmY0
NzIxZWVkYzljNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbAorKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7Ci0gICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnZyZGlzcGxheWNvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnZyZGlzcGxheWRpc2Nvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnZyZGlzcGxheWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRp
c3BsYXlkZWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXli
bHVyOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXlmb2N1czsKLSAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udnJkaXNwbGF5cHJlc2VudGNoYW5nZTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMzY2JhNjIwOTQ1ODA1MzUwMDVkYmE4ODQ1ZDAzNGNlMWIzMDc5
ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiR2FtZXBhZFdlYlZSLmgiCi0KLSNpZiBFTkFCTEUoR0FNRVBBRCkKLQotI2luY2x1ZGUgIkdh
bWVwYWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HYW1lcGFkV2ViVlI6OkdhbWVwYWRX
ZWJWUigpID0gZGVmYXVsdDsKLQotR2FtZXBhZFdlYlZSOjp+R2FtZXBhZFdlYlZSKCkgPSBkZWZh
dWx0OwotCi11bnNpZ25lZCBHYW1lcGFkV2ViVlI6OmRpc3BsYXlJZChjb25zdCBHYW1lcGFkJikK
LXsKLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFk
V2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYyMDkxNWIyNDVjODg5NTdj
YjkyNjc0OGUxMmIwOGM5MmY3Mjc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShHQU1FUEFEKQotCi0jaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHYW1lcGFkOwotCi1jbGFzcyBHYW1lcGFk
V2ViVlIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxHYW1lcGFkPiB7Ci1wdWJsaWM6Ci0gICAg
R2FtZXBhZFdlYlZSKCk7Ci0gICAgdmlydHVhbCB+R2FtZXBhZFdlYlZSKCk7Ci0KLSAgICBzdGF0
aWMgdW5zaWduZWQgZGlzcGxheUlkKGNvbnN0IEdhbWVwYWQmKTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYjBiMTA5ZGQwMTQ4MTk5YmI0ZGVmZTMzZWU1OTliN2ExYzZkM2YzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgQ29u
ZGl0aW9uYWw9R0FNRVBBRCwKLV0gcGFydGlhbCBpbnRlcmZhY2UgR2FtZXBhZCB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZGlzcGxheUlkOwotfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkZjEwMjExYTdhNDY5ZWFlMTg5ZGZhNGRjNTBhOGMzZjc5YTUzYzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJOYXZpZ2F0b3JXZWJWUi5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgIkpTVlJEaXNwbGF5LmgiCi0j
aW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUgIlZSTWFuYWdlci5oIgotI2luY2x1
ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBO
YXZpZ2F0b3JXZWJWUjo6Z2V0VlJEaXNwbGF5cyhOYXZpZ2F0b3ImIG5hdmlnYXRvciwgRG9jdW1l
bnQmIGRvY3VtZW50LCBHZXRWUkRpc3BsYXlzUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZSRW5hYmxlZCgp
KSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgTmF2aWdhdG9yV2ViVlI6OmZyb20oJm5hdmlnYXRvciktPmdldFZSRGlzcGxheXMoZG9jdW1l
bnQsIFdURk1vdmUocHJvbWlzZSkpOwotfQotCi12b2lkIE5hdmlnYXRvcldlYlZSOjpnZXRWUkRp
c3BsYXlzKERvY3VtZW50JiBkb2N1bWVudCwgR2V0VlJEaXNwbGF5c1Byb21pc2UmJiBwcm9taXNl
KQotewotICAgIGRvY3VtZW50LnBvc3RUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAg
ICBPcHRpb25hbDxWUk1hbmFnZXI6OlZSRGlzcGxheXNWZWN0b3I+IHBsYXRmb3JtRGlzcGxheXMg
PSBWUk1hbmFnZXI6OnNpbmdsZXRvbigpLmdldFZSRGlzcGxheXMoKTsKLSAgICAgICAgaWYgKCFw
bGF0Zm9ybURpc3BsYXlzKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdCgpOwotICAgICAg
ICAgICAgbV9kaXNwbGF5cy5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBvbGREaXNwbGF5cyA9IFdURk1vdmUo
bV9kaXNwbGF5cyk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIHRoZSB2ZWN0b3Igb2YgZGlzcGxheXMu
IE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGlzIE8obl4yKSB0aGUgYW1vdW50IG9mIGV4cGVjdGVk
Ci0gICAgICAgIC8vIFZSRGlzcGxheXMgaXMgc28gcmVkdWNlZCB0aGF0IGl0J2xsIHJ1biBmYXN0
IGVub3VnaC4KLSAgICAgICAgZm9yIChhdXRvJiBwbGF0Zm9ybURpc3BsYXkgOiBwbGF0Zm9ybURp
c3BsYXlzLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGJvb2wgbmV3RGlzcGxheSA9IHRydWU7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIG9sZERpc3BsYXkgOiBvbGREaXNwbGF5cykgewotICAgICAg
ICAgICAgICAgIGlmIChwbGF0Zm9ybURpc3BsYXktPmdldERpc3BsYXlJbmZvKCkuZGlzcGxheUlk
ZW50aWZpZXIoKSA9PSBvbGREaXNwbGF5LT5kaXNwbGF5SWQoKSkgewotICAgICAgICAgICAgICAg
ICAgICBuZXdEaXNwbGF5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIG1fZGlzcGxheXMu
YXBwZW5kKG9sZERpc3BsYXkuY29weVJlZigpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5ld0Rp
c3BsYXkpIHsKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlzLmFwcGVuZChWUkRpc3BsYXk6OmNy
ZWF0ZShjb250ZXh0LCBXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpKTsKLSAgICAgICAgICAgICAg
ICBtX2Rpc3BsYXlzLmxhc3QoKS0+cGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKG1fZGlz
cGxheXMsIFtdKGNvbnN0IFJlZjxWUkRpc3BsYXk+JiBkaXNwbGF5KSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGlzcGxheS5jb3B5UmVmKCk7Ci0gICAgICAgIH0pKTsKLSAgICB9KTsKLX0KLQotY29u
c3QgVmVjdG9yPFJlZlB0cjxWUkRpc3BsYXk+PiYgTmF2aWdhdG9yV2ViVlI6OmFjdGl2ZVZSRGlz
cGxheXMoTmF2aWdhdG9yJikKLXsKLSAgICBzdGF0aWMgYXV0byBtb2NrVmVjdG9yID0gbWFrZU5l
dmVyRGVzdHJveWVkKFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5Pj4geyB9KTsKLSAgICByZXR1cm4g
bW9ja1ZlY3RvcjsKLX0KLQotY29uc3QgY2hhciogTmF2aWdhdG9yV2ViVlI6OnN1cHBsZW1lbnRO
YW1lKCkKLXsKLSAgICByZXR1cm4gIk5hdmlnYXRvcldlYlZSIjsKLX0KLQotTmF2aWdhdG9yV2Vi
VlIqIE5hdmlnYXRvcldlYlZSOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQotewotICAgIE5h
dmlnYXRvcldlYlZSKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yV2ViVlIqPihT
dXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpKSk7
Ci0gICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IG1h
a2VVbmlxdWU8TmF2aWdhdG9yV2ViVlI+KCk7Ci0gICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBw
bGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFt
ZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1cHBsZW1l
bnQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmZkNzEzOWNlYWM3NWVkNGI4MGQ3ODkxMzVjMzg4NmVkYmNhZWNiNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL05hdmlnYXRvcldlYlZSLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotY2xhc3MgTmF2aWdhdG9yOwotY2xh
c3MgUGFnZTsKLWNsYXNzIFZSRGlzcGxheTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4g
Y2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwotCi1jbGFzcyBOYXZpZ2F0b3JXZWJWUiBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIHVzaW5nIEdldFZSRGlzcGxheXNQcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETFNlcXVlbmNlPElETEludGVyZmFjZTxWUkRpc3BsYXk+Pj47Ci0KLSAgICBz
dGF0aWMgdm9pZCBnZXRWUkRpc3BsYXlzKE5hdmlnYXRvciYsIERvY3VtZW50JiwgR2V0VlJEaXNw
bGF5c1Byb21pc2UmJik7Ci0gICAgc3RhdGljIGNvbnN0IFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5
Pj4mIGFjdGl2ZVZSRGlzcGxheXMoTmF2aWdhdG9yJik7Ci0gICAgc3RhdGljIGJvb2wgdnJFbmFi
bGVkKE5hdmlnYXRvciYpOwotCi0gICAgdm9pZCBnZXRWUkRpc3BsYXlzKERvY3VtZW50JiwgR2V0
VlJEaXNwbGF5c1Byb21pc2UmJik7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldl
YlZSKiBmcm9tKE5hdmlnYXRvciopOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwotCi0gICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBtX2Rpc3BsYXlzOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L05hdmlnYXRvcldlYlZSLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVlN2E4
NzRlNmNjYzA5NTVlMGVkYTNiMTdhY2E1NDNlNGIyZTM0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL05h
dmlnYXRvcldlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHNlcXVlbmNlPFZS
RGlzcGxheT4+IGdldFZSRGlzcGxheXMoKTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVu
QXJyYXk8VlJEaXNwbGF5PiBhY3RpdmVWUkRpc3BsYXlzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAzMDc2MTg1YzUyYWZhYmU3ZTM1OTFlM2E4ODVlOTQxNmQ4OWUyMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIK
LQotI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJDaHJvbWUu
aCIKLSNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
LSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKLSNpbmNsdWRlICJWUkRpc3Bs
YXlDYXBhYmlsaXRpZXMuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXlFdmVudC5oIgotI2luY2x1ZGUg
IlZSRXllUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0jaW5jbHVkZSAi
VlJMYXllckluaXQuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSUG9zZS5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2lu
ZG93RXZlbnRMb29wLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVlJEaXNwbGF5
KTsKLQotUmVmPFZSRGlzcGxheT4gVlJEaXNwbGF5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4mJiBwbGF0Zm9ybURpc3Bs
YXkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5KGNvbnRleHQsIFdURk1v
dmUocGxhdGZvcm1EaXNwbGF5KSkpOwotfQotCi1WUkRpc3BsYXk6OlZSRGlzcGxheShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmIHBs
YXRmb3JtRGlzcGxheSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKLSAgICAsIG1f
ZGlzcGxheShXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpCi17Ci0gICAgYXV0byBkaXNwbGF5SW5m
byA9IG1fZGlzcGxheS0+Z2V0RGlzcGxheUluZm8oKTsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFZS
RGlzcGxheUNhcGFiaWxpdGllczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmNhcGFiaWxpdHlGbGFncygp
KTsKLSAgICBtX2xlZnRFeWVQYXJhbWV0ZXJzID0gVlJFeWVQYXJhbWV0ZXJzOjpjcmVhdGUoZGlz
cGxheUluZm8uZXllVHJhbnNsYXRpb24oVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0KSwg
ZGlzcGxheUluZm8uZXllRmllbGRPZlZpZXcoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0
KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgpKTsKLSAgICBtX3JpZ2h0RXllUGFyYW1ldGVycyA9
IFZSRXllUGFyYW1ldGVyczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmV5ZVRyYW5zbGF0aW9uKFZSUGxh
dGZvcm1EaXNwbGF5SW5mbzo6RXllUmlnaHQpLCBkaXNwbGF5SW5mby5leWVGaWVsZE9mVmlldyhW
UlBsYXRmb3JtRGlzcGxheUluZm86OkV5ZVJpZ2h0KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgp
KTsKLSAgICBtX2Rpc3BsYXlJZCA9IGRpc3BsYXlJbmZvLmRpc3BsYXlJZGVudGlmaWVyKCk7Ci0g
ICAgbV9kaXNwbGF5TmFtZSA9IGRpc3BsYXlJbmZvLmRpc3BsYXlOYW1lKCk7Ci0KLSAgICBtX2Rp
c3BsYXktPnNldENsaWVudCh0aGlzKTsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLX0KLQotVlJE
aXNwbGF5Ojp+VlJEaXNwbGF5KCkKLXsKLSAgICBtX2Rpc3BsYXktPnNldENsaWVudChudWxscHRy
KTsKLX0KLQotYm9vbCBWUkRpc3BsYXk6OmlzQ29ubmVjdGVkKCkgY29uc3QKLXsKLSAgICBpZiAo
IW1fZGlzcGxheSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fZGlzcGxh
eS0+Z2V0RGlzcGxheUluZm8oKS5pc0Nvbm5lY3RlZCgpOwotfQotCi1jb25zdCBWUkRpc3BsYXlD
YXBhYmlsaXRpZXMmIFZSRGlzcGxheTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gKm1fY2FwYWJpbGl0aWVzOwotfQotCi1SZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IFZSRGlz
cGxheTo6c3RhZ2VQYXJhbWV0ZXJzKCkgY29uc3QKLXsKLSAgICBhdXRvIGRpc3BsYXlJbmZvID0g
bV9kaXNwbGF5LT5nZXREaXNwbGF5SW5mbygpOwotICAgIHJldHVybiBWUlN0YWdlUGFyYW1ldGVy
czo6Y3JlYXRlKGRpc3BsYXlJbmZvLnNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtKCksIGRpc3Bs
YXlJbmZvLnBsYXlBcmVhQm91bmRzKCkpOwotfQotCi1jb25zdCBWUkV5ZVBhcmFtZXRlcnMmIFZS
RGlzcGxheTo6Z2V0RXllUGFyYW1ldGVycyhWUkV5ZSBleWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGV5ZSA9PSBWUkV5ZTo6TGVmdCA/ICptX2xlZnRFeWVQYXJhbWV0ZXJzIDogKm1fcmlnaHRFeWVQ
YXJhbWV0ZXJzOwotfQotCi1ib29sIFZSRGlzcGxheTo6Z2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRh
JiBmcmFtZURhdGEpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcy0+aGFzUG9zaXRp
b24oKSB8fCAhbV9jYXBhYmlsaXRpZXMtPmhhc09yaWVudGF0aW9uKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIC8vIEZJWE1FOiBlbnN1cmUgdGhhdCB0aGlzIGlzIG9ubHkgY2FsbGVk
IGluc2lkZSBXZWJWUidzIHJBRi4KLSAgICBmcmFtZURhdGEudXBkYXRlKG1fZGlzcGxheS0+Z2V0
VHJhY2tpbmdJbmZvKCksIGdldEV5ZVBhcmFtZXRlcnMoVlJFeWU6OkxlZnQpLCBnZXRFeWVQYXJh
bWV0ZXJzKFZSRXllOjpSaWdodCksIG1fZGVwdGhOZWFyLCBtX2RlcHRoRmFyKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotUmVmPFZSUG9zZT4gVlJEaXNwbGF5OjpnZXRQb3NlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gVlJQb3NlOjpjcmVhdGUobV9kaXNwbGF5LT5nZXRUcmFja2luZ0luZm8oKSk7
Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpyZXNldFBvc2UoKQotewotfQotCi11aW50MzJfdCBWUkRp
c3BsYXk6OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcikgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCpkb2N1bWVudCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5yZWdpc3Rl
ckNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmNhbmNl
bEFuaW1hdGlvbkZyYW1lKHVpbnQzMl90IGlkKQotewotICAgIGlmICghbV9zY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLT5jYW5jZWxDYWxsYmFjayhpZCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5Ojpy
ZXF1ZXN0UHJlc2VudChjb25zdCBWZWN0b3I8VlJMYXllckluaXQ+JiBsYXllcnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKLXsKLSAgICBhdXRvIHJlamVjdFJlcXVlc3RBbmRTdG9w
UHJlc2VudGluZyA9IFt0aGlzLCAmcHJvbWlzZV0gKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29k
ZSwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IGV4Y2VwdGlvbkNvZGUsIG1lc3NhZ2UgfSk7Ci0gICAgICAgIGlmIChtX3ByZXNlbnRp
bmdMYXllcikKLSAgICAgICAgICAgIHN0b3BQcmVzZW50aW5nKCk7Ci0gICAgfTsKLQotICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMtPmNhblByZXNlbnQoKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0
QW5kU3RvcFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJWUkRpc3BsYXkgY2Fubm90IHBy
ZXNlbnQiX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFsYXllcnMuc2l6
ZSgpIHx8IGxheWVycy5zaXplKCkgPiBtX2NhcGFiaWxpdGllcy0+bWF4TGF5ZXJzKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCBs
YXllcnMuc2l6ZSgpID8gIlRvbyBtYW55IGxheWVycyJfcyA6ICJOb3QgZW5vdWdoIGxheWVycyJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVy
ICYmICFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRBY2Nlc3NFcnJvciwg
Ik11c3QgcmVxdWVzdCBwcmVzZW50YXRpb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FTU0VSVChsYXllcnMu
c2l6ZSgpID09IDEpOwotICAgIGF1dG8gbGF5ZXIgPSBsYXllcnNbMF07Ci0KLSAgICBpZiAoIWxh
eWVyLnNvdXJjZSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3RvcFByZXNlbnRpbmcoSW52
YWxpZFN0YXRlRXJyb3IsICJMYXllciBkb2VzIG5vdCBjb250YWluIGFueSBzb3VyY2UiX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byogY2FudmFzQ29udGV4dCA9IGxheWVy
LnNvdXJjZS0+Z2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAoIWNhbnZhc0NvbnRleHQgfHwg
IWNhbnZhc0NvbnRleHQtPmlzV2ViR0woKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3Rv
cFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJXZWJWUiByZXF1aXJlcyBWUkxheWVySW5p
dCB3aXRoIFdlYkdMIGNvbnRleHQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICgobGF5ZXIubGVmdEJvdW5kcy5zaXplKCkgJiYgbGF5ZXIubGVmdEJvdW5kcy5zaXplKCkg
IT0gNCkKLSAgICAgICAgfHwgKGxheWVyLnJpZ2h0Qm91bmRzLnNpemUoKSAmJiBsYXllci5yaWdo
dEJvdW5kcy5zaXplKCkgIT0gNCkpIHsKLSAgICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVz
ZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCAiTGF5ZXIgYm91bmRzIG11c3QgYmUgZWl0aGVyIDAg
b3IgNCJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3ByZXNlbnRpbmdMYXll
ciA9IGxheWVyOwotICAgIHByb21pc2UtPnJlc29sdmUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6
OnN0b3BQcmVzZW50aW5nKCkKLXsKLSAgICBtX3ByZXNlbnRpbmdMYXllciA9IFdURjo6bnVsbG9w
dDsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmV4aXRQcmVzZW50KFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKLXsKLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVyKSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlZSRGlzcGxheSBp
cyBub3QgcHJlc2VudGluZyJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0
b3BQcmVzZW50aW5nKCk7Ci19Ci0KLVZlY3RvcjxWUkxheWVySW5pdD4gVlJEaXNwbGF5OjpnZXRM
YXllcnMoKSBjb25zdAotewotICAgIFZlY3RvcjxWUkxheWVySW5pdD4gbGF5ZXJzOwotICAgIGlm
IChtX3ByZXNlbnRpbmdMYXllcikKLSAgICAgICAgbGF5ZXJzLmFwcGVuZChtX3ByZXNlbnRpbmdM
YXllci52YWx1ZSgpKTsKLSAgICByZXR1cm4gbGF5ZXJzOwotfQotCi12b2lkIFZSRGlzcGxheTo6
c3VibWl0RnJhbWUoKQotewotfQotCi0vLyBVc2UgYSBFdmVudExvb3AgaW5zdGVhZCBvZiBkaXNw
YXRjaGluZyBldmVudHMgc3luY2hyb25vdXNseSBiZWNhdXNlIHRoZQotLy8gRXZlbnRMb29wIGNv
cnJlY3RseSBzdXNwZW5kcyB3aGVuIGluIHRoZSBjYWNoZS4gVGhpcyB3YXkgVlJEaXNwbGF5IGRv
ZXMgbm8KLS8vIGxvbmdlciBwcmV2ZW50IGNhY2hpbmcgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4KLXZvaWQgVlJEaXNwbGF5OjpkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3AoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4m
JiByZWFzb24pCi17Ci0gICAgYXV0byBldmVudCA9IFZSRGlzcGxheUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBtYWtlUmVmUHRyKHRoaXMpLCBXVEZNb3ZlKHJlYXNvbikpOwotICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBb
dGhpcywgZXZlbnQgPSBXVEZNb3ZlKGV2ZW50KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFk
b2N1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpCi0gICAgICAgICAgICB3aW5kb3ctPmRpc3BhdGNo
RXZlbnQoZXZlbnQpOwotICAgIH0pOwotfQotCi12b2lkIFZSRGlzcGxheTo6cGxhdGZvcm1EaXNw
bGF5Q29ubmVjdGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3Ao
ZXZlbnROYW1lcygpLnZyZGlzcGxheWNvbm5lY3RFdmVudCwgV1RGOjpudWxsb3B0KTsKLX0KLQot
dm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheURpc2Nvbm5lY3RlZCgpCi17Ci0gICAgZGlz
cGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFtZXMoKS52cmRpc3BsYXlkaXNj
b25uZWN0RXZlbnQsIFdURjo6bnVsbG9wdCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpwbGF0Zm9y
bURpc3BsYXlNb3VudGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExv
b3AoZXZlbnROYW1lcygpLnZyZGlzcGxheWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVh
c29uOjpNb3VudGVkKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheVVubW91
bnRlZCgpCi17Ci0gICAgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFt
ZXMoKS52cmRpc3BsYXlkZWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVhc29uOjpVbm1v
dW50ZWQpOwotfQotCi1ib29sIFZSRGlzcGxheTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWNvbnN0IGNoYXIqIFZSRGlzcGxheTo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJWUkRpc3BsYXkiOwotfQotCi12
b2lkIFZSRGlzcGxheTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKLXsKLSAg
ICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kKCk7Ci0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25G
b3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQotICAgICAgICBzdG9wUHJlc2VudGluZygp
OwotfQotCi12b2lkIFZSRGlzcGxheTo6cmVzdW1lKCkKLXsKLSAgICBpZiAobV9zY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LT5yZXN1bWUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnN0b3AoKQotewotICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyID0gbnVsbHB0cjsKLSAgICBzdG9wUHJlc2VudGluZygpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQzYTY3YzkzZmFjN2Yx
OGU0Zjg0MjhlOGRhYjdjNzk3ZjI4MmY1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCi0jaW5jbHVkZSAiVlJEaXNwbGF5RXZlbnRSZWFzb24uaCIKLSNpbmNsdWRlICJW
UkV5ZS5oIgotI2luY2x1ZGUgIlZSTGF5ZXJJbml0LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXlDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gRXhjZXB0aW9uQ29k
ZTsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLWNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrOwotY2xhc3MgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwotY2xhc3MgVlJEaXNw
bGF5Q2FwYWJpbGl0aWVzOwotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzOwotY2xhc3MgVlJGcmFtZURh
dGE7Ci1jbGFzcyBWUlBsYXRmb3JtRGlzcGxheTsKLWNsYXNzIFZSUG9zZTsKLWNsYXNzIFZSU3Rh
Z2VQYXJhbWV0ZXJzOwotCi1jbGFzcyBWUkRpc3BsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxWUkRpc3BsYXk+LCBwdWJsaWMgVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFZSRGlzcGxheSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkRpc3BsYXk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxWUlBsYXRm
b3JtRGlzcGxheT4mJik7Ci0KLSAgICB2aXJ0dWFsIH5WUkRpc3BsYXkoKTsKLQotICAgIHVzaW5n
IFJlZkNvdW50ZWQ8VlJEaXNwbGF5Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8VlJEaXNw
bGF5Pjo6ZGVyZWY7Ci0KLSAgICBib29sIGlzQ29ubmVjdGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBp
c1ByZXNlbnRpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fcHJlc2VudGluZ0xheWVyOyB9OwotCi0g
ICAgY29uc3QgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdDsKLSAg
ICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IHN0YWdlUGFyYW1ldGVycygpIGNvbnN0OwotCi0g
ICAgY29uc3QgVlJFeWVQYXJhbWV0ZXJzJiBnZXRFeWVQYXJhbWV0ZXJzKFZSRXllKSBjb25zdDsK
LQotICAgIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXlOYW1lOyB9Ci0gICAgdWludDMyX3QgZGlzcGxheUlkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5SWQ7IH0KLQotICAgIGJvb2wgZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhJikgY29uc3Q7Ci0K
LSAgICBSZWY8VlJQb3NlPiBnZXRQb3NlKCkgY29uc3Q7Ci0gICAgdm9pZCByZXNldFBvc2UoKTsK
LQotICAgIGRvdWJsZSBkZXB0aE5lYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRoTmVhcjsgfQot
ICAgIHZvaWQgc2V0RGVwdGhOZWFyKGRvdWJsZSBkZXB0aE5lYXIpIHsgbV9kZXB0aE5lYXIgPSBk
ZXB0aE5lYXI7IH0KLSAgICBkb3VibGUgZGVwdGhGYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRo
RmFyOyB9Ci0gICAgdm9pZCBzZXREZXB0aEZhcihkb3VibGUgZGVwdGhGYXIpIHsgbV9kZXB0aEZh
ciA9IGRlcHRoRmFyOyB9Ci0KLSAgICB1aW50MzJfdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVm
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKLSAgICB2b2lkIGNhbmNlbEFuaW1h
dGlvbkZyYW1lKHVpbnQzMl90KTsKLQotICAgIHZvaWQgcmVxdWVzdFByZXNlbnQoY29uc3QgVmVj
dG9yPFZSTGF5ZXJJbml0PiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwotICAgIHZvaWQgZXhp
dFByZXNlbnQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0KLSAgICBWZWN0b3I8VlJMYXllcklu
aXQ+IGdldExheWVycygpIGNvbnN0OwotCi0gICAgdm9pZCBzdWJtaXRGcmFtZSgpOwotCi0gICAg
Ly8gVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQKLSAgICB2b2lkIHBsYXRmb3JtRGlzcGxheUNvbm5l
Y3RlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxhdGZvcm1EaXNwbGF5RGlzY29ubmVjdGVkKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlNb3VudGVkKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlVbm1vdW50ZWQoKSBvdmVycmlkZTsKLQotICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLXByaXZhdGU6Ci0gICAgVlJEaXNwbGF5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBX
ZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWUkRpc3BsYXlFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
LSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQotCi0gICAgLy8gQWN0aXZl
RE9NT2JqZWN0Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBzdG9wUHJlc2VudGluZygpOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
eyByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7IH0K
LQotICAgIHZvaWQgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50TmFtZSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYpOwotCi0g
ICAgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4gbV9kaXNwbGF5OwotCi0gICAgUmVmUHRyPFZS
RGlzcGxheUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgLy8gV2UgY291bGQgbGlr
ZWx5IHN0b3JlIGp1c3Qgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nIG9uZXMgYXMgdGhlIHZhbHVl
cyBzaG91bGQgYmUgaWRlbnRpY2FsCi0gICAgLy8gKGV4Y2VwdCB0aGUgc2lnbiBvZiB0aGUgZXll
IHRvIGhlYWQgdHJhbnNmb3JtIG9mZnNldCkuCi0gICAgUmVmUHRyPFZSRXllUGFyYW1ldGVycz4g
bV9sZWZ0RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJFeWVQYXJhbWV0ZXJzPiBtX3JpZ2h0
RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IG1fc3RhZ2VQYXJh
bWV0ZXJzOwotCi0gICAgU3RyaW5nIG1fZGlzcGxheU5hbWU7Ci0gICAgdWludDMyX3QgbV9kaXNw
bGF5SWQ7Ci0KLSAgICBkb3VibGUgbV9kZXB0aE5lYXIgeyAwLjAxIH07IC8vIERlZmF1bHQgdmFs
dWUgZnJvbSB0aGUgc3BlY3MuCi0gICAgZG91YmxlIG1fZGVwdGhGYXIgeyAxMDAwMCB9OyAvLyBE
ZWZhdWx0IHZhbHVlIGZyb20gdGhlIHNwZWNzLgotCi0gICAgUmVmUHRyPFNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7Ci0KLSAgICBPcHRp
b25hbDxWUkxheWVySW5pdD4gbV9wcmVzZW50aW5nTGF5ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhN2RkNGYxYWE2NzFmMmIxMjhjYmI2Y2U3NDQx
Zjk4ZDQzNjljZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXkuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQWN0aXZlRE9NT2JqZWN0
LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGludGVyZmFjZSBWUkRpc3BsYXkgOiBF
dmVudFRhcmdldCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb25uZWN0ZWQ7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNQcmVzZW50aW5nOwotCi0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZSRGlzcGxheUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7IC8vIEZJ
WE1FOiBbU2FtZU9iamVjdF0KLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlN0YWdlUGFyYW1l
dGVycz8gc3RhZ2VQYXJhbWV0ZXJzOwotCi0gICAgVlJFeWVQYXJhbWV0ZXJzIGdldEV5ZVBhcmFt
ZXRlcnMoVlJFeWUgd2hpY2hFeWUpOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZGlzcGxheUlkOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkaXNw
bGF5TmFtZTsKLQotICAgIGJvb2xlYW4gZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhIGZyYW1lRGF0
YSk7Ci0KLSAgICBbTmV3T2JqZWN0XSBWUlBvc2UgZ2V0UG9zZSgpOwotCi0gICAgdm9pZCByZXNl
dFBvc2UoKTsKLQotICAgIGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOwotICAgIGF0dHJpYnV0
ZSBkb3VibGUgZGVwdGhGYXI7Ci0KLSAgICAvLyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ayBlcXVhdGVzIHRvIEZyYW1lUmVxdWVzdENhbGxiYWNrLgotICAgIGxvbmcgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrIGNhbGxiYWNrKTsKLSAgICB2
b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKLQotICAgIFBy
b21pc2U8dm9pZD4gcmVxdWVzdFByZXNlbnQoc2VxdWVuY2U8VlJMYXllckluaXQ+IGxheWVycyk7
Ci0KLSAgICBQcm9taXNlPHZvaWQ+IGV4aXRQcmVzZW50KCk7Ci0KLSAgICBzZXF1ZW5jZTxWUkxh
eWVySW5pdD4gZ2V0TGF5ZXJzKCk7Ci0KLSAgICB2b2lkIHN1Ym1pdEZyYW1lKCk7Ci19OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjQ5Yjg0MTQzM2Q1YTUwYjYwZjQ4
N2NjZmY1NGEwOWJjZGQ0OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8VlJE
aXNwbGF5Q2FwYWJpbGl0aWVzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWUkRpc3BsYXlD
YXBhYmlsaXRpZXM+IGNyZWF0ZSh1bnNpZ25lZCBjYXBhYmlsaXR5RmxhZ3MpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUkRpc3BsYXlDYXBhYmlsaXRpZXMoY2FwYWJpbGl0
eUZsYWdzKSk7Ci0gICAgfQotCi0gICAgYm9vbCBoYXNQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9uOyB9Ci0gICAgYm9vbCBo
YXNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmls
aXR5RmxhZ09yaWVudGF0aW9uOyB9Ci0gICAgYm9vbCBoYXNFeHRlcm5hbERpc3BsYXkoKSBjb25z
dCB7IHJldHVybiBtX2ZsYWdzICYgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdFeHRlcm5hbERpc3Bs
YXk7IH0KLSAgICBib29sIGNhblByZXNlbnQoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgVlJE
aXNwbGF5Q2FwYWJpbGl0eUZsYWdQcmVzZW50OyB9Ci0gICAgdW5zaWduZWQgbWF4TGF5ZXJzKCkg
Y29uc3QgeyByZXR1cm4gY2FuUHJlc2VudCgpID8gMSA6IDA7IH0KLQotcHJpdmF0ZToKLSAgICBW
UkRpc3BsYXlDYXBhYmlsaXRpZXModW5zaWduZWQgY2FwYWJpbGl0eUZsYWdzKQotICAgICAgICA6
IG1fZmxhZ3MoY2FwYWJpbGl0eUZsYWdzKQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBt
X2ZsYWdzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmUzZTllZTlkOTY1ZDBkMmU4YWU0Y2VlMmJhM2RhZjAw
YTU5MTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZh
Y2UgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBoYXNQb3NpdGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNPcmllbnRh
dGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNFeHRlcm5hbERpc3BsYXk7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY2FuUHJlc2VudDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhMYXllcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDZjMDE3MTc5YzYzNzE2MzVlMTMzODMyYzE2NzNhYmM3NjM3NjIzYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50LmgiCi0KLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIKLSNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChWUkRpc3BsYXlFdmVudCk7Ci0KLVZSRGlzcGxheUV2ZW50OjpW
UkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKLSAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVy
LCBpc1RydXN0ZWQpCi0gICAgLCBtX2Rpc3BsYXkoaW5pdGlhbGl6ZXIuZGlzcGxheSkKLSAgICAs
IG1fcmVhc29uKGluaXRpYWxpemVyLnJlYXNvbikKLXsKLX0KLQotVlJEaXNwbGF5RXZlbnQ6OlZS
RGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIGNvbnN0IFJlZlB0cjxWUkRpc3Bs
YXk+JiBkaXNwbGF5LCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJiByZWFzb24pCi0g
ICAgOiBFdmVudChuYW1lLCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Ok5vKQotICAgICwg
bV9kaXNwbGF5KGRpc3BsYXkpCi0gICAgLCBtX3JlYXNvbihXVEZNb3ZlKHJlYXNvbikpCi17Ci19
Ci0KLVZSRGlzcGxheUV2ZW50Ojp+VlJEaXNwbGF5RXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLUV2ZW50
SW50ZXJmYWNlIFZSRGlzcGxheUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFZSRGlzcGxheUV2ZW50SW50ZXJmYWNlVHlwZTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTAwMmJmNDU3YzM5OTFhY2MyZDZlNGIw
MTAzNzFlMDYwOTY1YjUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50UmVhc29uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VlJEaXNwbGF5RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewotICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoVlJEaXNwbGF5RXZlbnQpOwotcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlJEaXNw
bGF5RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBSZWZQdHI8VlJE
aXNwbGF5PiYgZGlzcGxheSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYgcmVhc29u
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQodHlw
ZSwgZGlzcGxheSwgV1RGTW92ZShyZWFzb24pKSk7Ci0gICAgfQotCi0gICAgc3RydWN0IEluaXQg
OiBFdmVudEluaXQgewotICAgICAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5OwotICAgICAg
ICBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4gcmVhc29uOwotICAgIH07Ci0KLSAgICBz
dGF0aWMgUmVmPFZSRGlzcGxheUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6
Ok5vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgflZS
RGlzcGxheUV2ZW50KCk7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5KCkgY29uc3Qg
eyByZXR1cm4gbV9kaXNwbGF5OyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRS
ZWFzb24+JiByZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3JlYXNvbjsgfQotCi1wcml2YXRlOgot
ICAgIFZSRGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKLSAgICBWUkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgUmVmUHRy
PFZSRGlzcGxheT4mLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJik7Ci0KLSAgICAv
LyBFdmVudAotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBtX2Rpc3BsYXk7Ci0gICAgT3B0aW9uYWw8VlJE
aXNwbGF5RXZlbnRSZWFzb24+IG1fcmVhc29uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWViNzBiZWUyMjMwZTQ4YjE5ZGQ5YWM0YWNk
ZWE1ODEwYmJlZWIyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi1dIGRpY3Rpb25hcnkgVlJEaXNwbGF5RXZlbnRJbml0IDogRXZlbnRJ
bml0IHsKLSAgICByZXF1aXJlZCBWUkRpc3BsYXkgZGlzcGxheTsKLSAgICBWUkRpc3BsYXlFdmVu
dFJlYXNvbiByZWFzb247Ci19OwotCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAg
ICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgVlJEaXNwbGF5RXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpCi1dIGludGVyZmFjZSBWUkRpc3BsYXlFdmVudCA6IEV2ZW50IHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVlJEaXNwbGF5IGRpc3BsYXk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFZS
RGlzcGxheUV2ZW50UmVhc29uPyByZWFzb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YjAzMzZiZTM2NDU3OWJlNGU3MzZiMTk1MDJlNjAxMWEyZjJkNTcyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaAorKysgL2Rldi9udWxsCkBAIC0x
LDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWVudW0gY2xhc3MgVlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgIE1vdW50ZWQsCi0g
ICAgTmF2aWdhdGlvbiwKLSAgICBSZXF1ZXN0ZWQsCi0gICAgVW5tb3VudGVkCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheUV2ZW50UmVhc29uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
dnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYjg0MDM5ZDc0ODg3YWIwNTA0M2ZmYjA0MzRlNmYyN2U5MjA3MmU4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGVudW0g
VlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgICJtb3VudGVkIiwKLSAgICAibmF2aWdhdGlvbiIs
Ci0gICAgInJlcXVlc3RlZCIsCi0gICAgInVubW91bnRlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSRXllLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MmJiN2Y4MDI5
NGM5YjllMzhmYWJiMGUwNmZiOWI5ZTU0YWY4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBWUkV5ZSB7Ci0gICAgTGVmdCwK
LSAgICBSaWdodAotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ0ZWYw
NjljOTA5ZmI4ZjE1MTgzMzUwM2U4MzdhZTM0NjgxOTNkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLVsKLSAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotXSBlbnVtIFZSRXllIHsKLSAgICAibGVmdCIsCi0g
ICAgInJpZ2h0IgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIv
VlJFeWVQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmYTY2MjhjNmU1
ZWYxZmRmNjk2ZGU3MmM5MGRjYzZjMzE4ZmUyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVlJFeWVQYXJhbWV0ZXJzLmgiCi0KLSNpbmNs
dWRlICJWUkZpZWxkT2ZWaWV3LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJh
eUlubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUkV5ZVBhcmFtZXRlcnM6OlZS
RXllUGFyYW1ldGVycyhjb25zdCBGbG9hdFBvaW50M0QmIG9mZnNldCwgY29uc3QgVlJQbGF0Zm9y
bURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyYgZmllbGRPZlZpZXcsIGNvbnN0IFJlbmRlclNpemUm
IHJlbmRlclNpemUpCi0gICAgOiBtX2ZpZWxkT2ZWaWV3KFZSRmllbGRPZlZpZXc6OmNyZWF0ZShm
aWVsZE9mVmlldykpCi0gICAgLCBtX29mZnNldChvZmZzZXQpCi0gICAgLCBtX3JlbmRlclNpemUo
cmVuZGVyU2l6ZSkKLXsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4gVlJFeWVQYXJhbWV0ZXJzOjpv
ZmZzZXQoKSBjb25zdAotewotICAgIGF1dG8gb2Zmc2V0ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Myk7Ci0gICAgZmxvYXQqIG9mZnNldERhdGEgPSBvZmZzZXQtPmRhdGEoKTsKLSAgICBvZmZzZXRE
YXRhWzBdID0gbV9vZmZzZXQueCgpOwotICAgIG9mZnNldERhdGFbMV0gPSBtX29mZnNldC55KCk7
Ci0gICAgb2Zmc2V0RGF0YVsyXSA9IG1fb2Zmc2V0LnooKTsKLSAgICByZXR1cm4gb2Zmc2V0Owot
fQotCi1jb25zdCBWUkZpZWxkT2ZWaWV3JiBWUkV5ZVBhcmFtZXRlcnM6OmZpZWxkT2ZWaWV3KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9maWVsZE9mVmlldzsKLX0KLQotdW5zaWduZWQgVlJFeWVQ
YXJhbWV0ZXJzOjpyZW5kZXJXaWR0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyU2l6
ZS53aWR0aDsKLX0KLQotdW5zaWduZWQgVlJFeWVQYXJhbWV0ZXJzOjpyZW5kZXJIZWlnaHQoKSBj
b25zdAotewotICAgIHJldHVybiBtX3JlbmRlclNpemUuaGVpZ2h0OwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFt
ZXRlcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMwZDBmYmQ2NTRhMWQxZjE4
OGExZjQzOWQzMDMwODBmY2E2NDgyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVy
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKLSNpbmNsdWRlICJWUkZpZWxkT2ZWaWV3
LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzIDogcHVibGljIFJlZkNv
dW50ZWQ8VlJFeWVQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgUmVuZGVyU2l6ZSA9
IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6UmVuZGVyU2l6ZTsKLQotICAgIHN0YXRpYyBSZWY8VlJF
eWVQYXJhbWV0ZXJzPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZzZXQsIGNvbnN0IFZS
UGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmIGZpZWxkT2ZWaWV3LCBjb25zdCBSZW5k
ZXJTaXplJiByZW5kZXJTaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VlJFeWVQYXJhbWV0ZXJzKG9mZnNldCwgZmllbGRPZlZpZXcsIHJlbmRlclNpemUpKTsKLSAgICB9
Ci0KLSAgICBSZWY8RmxvYXQzMkFycmF5PiBvZmZzZXQoKSBjb25zdDsKLSAgICBjb25zdCBGbG9h
dFBvaW50M0QmIHJhd09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9Ci0KLSAgICBj
b25zdCBWUkZpZWxkT2ZWaWV3JiBmaWVsZE9mVmlldygpIGNvbnN0OwotCi0gICAgdW5zaWduZWQg
cmVuZGVyV2lkdGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCByZW5kZXJIZWlnaHQoKSBjb25zdDsK
LQotcHJpdmF0ZToKLSAgICBWUkV5ZVBhcmFtZXRlcnMoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZz
ZXQsIGNvbnN0IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmLCBjb25zdCBSZW5k
ZXJTaXplJik7Ci0KLSAgICBSZWY8VlJGaWVsZE9mVmlldz4gbV9maWVsZE9mVmlldzsKLSAgICBG
bG9hdFBvaW50M0QgbV9vZmZzZXQ7Ci0gICAgUmVuZGVyU2l6ZSBtX3JlbmRlclNpemU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNk
ZTk1NWExZWU5NzBmNGM5YzAyZmRhODAwZDlkM2E0YmY0ZDhlYzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2
ci9WUkV5ZVBhcmFtZXRlcnMuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgVlJFeWVQYXJhbWV0ZXJzIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IG9mZnNldDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWUkZpZWxkT2ZWaWV3IGZpZWxkT2ZWaWV3OyAvLyBGSVhNRTogW1NhbWVPYmplY3RdCi0KLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJXaWR0aDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJIZWlnaHQ7Ci19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTBhMzBhOTk3OTBkYTAwNGExNDU5ZTQ1M2JjZDMxMGI1M2VkYzZkMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXkuaCIKLQotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSRmllbGRPZlZpZXcgOiBwdWJs
aWMgUmVmQ291bnRlZDxWUkZpZWxkT2ZWaWV3PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkZpZWxkT2ZWaWV3PiBjcmVhdGUoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyBm
aWVsZE9mVmlldykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSRmllbGRP
ZlZpZXcoZmllbGRPZlZpZXcpKTsKLSAgICB9Ci0KLSAgICBkb3VibGUgdXBEZWdyZWVzKCkgY29u
c3QgeyByZXR1cm4gbV91cERlZ3JlZXM7IH07Ci0gICAgZG91YmxlIHJpZ2h0RGVncmVlcygpIGNv
bnN0IHsgcmV0dXJuIG1fcmlnaHREZWdyZWVzOyB9OwotICAgIGRvdWJsZSBkb3duRGVncmVlcygp
IGNvbnN0IHsgcmV0dXJuIG1fZG93bkRlZ3JlZXM7IH07Ci0gICAgZG91YmxlIGxlZnREZWdyZWVz
KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0RGVncmVlczsgfTsKLQotcHJpdmF0ZToKLSAgICBWUkZp
ZWxkT2ZWaWV3KFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgZmllbGRPZlZpZXcp
Ci0gICAgICAgIDogbV91cERlZ3JlZXMoZmllbGRPZlZpZXcudXBEZWdyZWVzKQotICAgICAgICAs
IG1fcmlnaHREZWdyZWVzKGZpZWxkT2ZWaWV3LnJpZ2h0RGVncmVlcykKLSAgICAgICAgLCBtX2Rv
d25EZWdyZWVzKGZpZWxkT2ZWaWV3LmRvd25EZWdyZWVzKQotICAgICAgICAsIG1fbGVmdERlZ3Jl
ZXMoZmllbGRPZlZpZXcubGVmdERlZ3JlZXMpCi0gICAgewotICAgIH0KLQotICAgIGRvdWJsZSBt
X3VwRGVncmVlczsKLSAgICBkb3VibGUgbV9yaWdodERlZ3JlZXM7Ci0gICAgZG91YmxlIG1fZG93
bkRlZ3JlZXM7Ci0gICAgZG91YmxlIG1fbGVmdERlZ3JlZXM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmll
bGRPZlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y0NDcwZTY0MmIxOWRlMmU1ODA5
OTJmYmUxYzA5OWI2NjcyZjUzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgVlJGaWVsZE9mVmlldyB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB1cERl
Z3JlZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSByaWdodERlZ3JlZXM7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkb3duRGVncmVlczsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgZG91YmxlIGxlZnREZWdyZWVzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NWUx
NDk0ZjUwMTNhNWNkYWQwMWU3YmQ4M2EzODYyMDdiMWIwYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0KLSNpbmNs
dWRlICJWUkV5ZVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgot
I2luY2x1ZGUgIlZSUG9zZS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJ
bmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVlJGcmFtZURhdGE6OlZSRnJhbWVE
YXRhKCkKLSAgICA6IG1fcG9zZShWUlBvc2U6OmNyZWF0ZSgpKQotewotfQotCi1zdGF0aWMgUmVm
PEZsb2F0MzJBcnJheT4gbWF0cml4VG9BcnJheShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4KQotewotICAgIGF1dG8gY29sdW1uTWFqb3JNYXRyaXggPSBtYXRyaXgudG9Db2x1bW5N
YWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoY29sdW1u
TWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpsZWZ0UHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0UHJvamVjdGlvbk1hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZS
RnJhbWVEYXRhOjpsZWZ0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0Vmlld01hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpyaWdodFByb2plY3Rpb25NYXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtYXRyaXhU
b0FycmF5KG1fcmlnaHRQcm9qZWN0aW9uTWF0cml4KTsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4g
VlJGcmFtZURhdGE6OnJpZ2h0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJp
eFRvQXJyYXkobV9yaWdodFZpZXdNYXRyaXgpOwotfQotCi1jb25zdCBWUlBvc2UmIFZSRnJhbWVE
YXRhOjpwb3NlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wb3NlOwotfQotCi1zdGF0aWMgVHJh
bnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlvbk1hdHJpeEZyb21GaWVsZE9mVmlldyhjb25zdCBW
UkZpZWxkT2ZWaWV3JiBmb3YsIGRvdWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcikKLXsK
LSAgICBkb3VibGUgdXBUYW4gPSB0YW4oZGVnMnJhZChmb3YudXBEZWdyZWVzKCkpKTsKLSAgICBk
b3VibGUgZG93blRhbiA9IHRhbihkZWcycmFkKGZvdi5kb3duRGVncmVlcygpKSk7Ci0gICAgZG91
YmxlIGxlZnRUYW4gPSB0YW4oZGVnMnJhZChmb3YubGVmdERlZ3JlZXMoKSkpOwotICAgIGRvdWJs
ZSByaWdodFRhbiA9IHRhbihkZWcycmFkKGZvdi5yaWdodERlZ3JlZXMoKSkpOwotCi0gICAgZG91
YmxlIHhTY2FsZSA9IDIgLyAobGVmdFRhbiArIHJpZ2h0VGFuKTsKLSAgICBkb3VibGUgeVNjYWxl
ID0gMiAvICh1cFRhbiArIGRvd25UYW4pOwotCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcHJv
amVjdGlvbk1hdHJpeDsKLSAgICBwcm9qZWN0aW9uTWF0cml4LnNldE0xMSh4U2NhbGUpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTIyKHlTY2FsZSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5z
ZXRNMzIoKHVwVGFuIC0gZG93blRhbikgKiB5U2NhbGUgKiAwLjUpOwotICAgIHByb2plY3Rpb25N
YXRyaXguc2V0TTMxKC0oKGxlZnRUYW4gLSByaWdodFRhbikgKiB4U2NhbGUgKiAwLjUpKTsKLSAg
ICBwcm9qZWN0aW9uTWF0cml4LnNldE0zMygoZGVwdGhOZWFyICsgZGVwdGhGYXIpIC8gKGRlcHRo
TmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNMzQoLTEpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTQzKCgyICogZGVwdGhGYXIgKiBkZXB0aE5lYXIpIC8gKGRl
cHRoTmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNNDQoMCk7Ci0K
LSAgICByZXR1cm4gcHJvamVjdGlvbk1hdHJpeDsKLX0KLQotLy8gaHR0cDovL3d3dy5ldWNsaWRl
YW5zcGFjZS5jb20vbWF0aHMvZ2VvbWV0cnkvcm90YXRpb25zL2NvbnZlcnNpb25zL3F1YXRlcm5p
b25Ub01hdHJpeC9pbmRleC5odG0KLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByb3RhdGlv
bk1hdHJpeEZyb21RdWF0ZXJuaW9uKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRl
cm5pb24mIHF1YXRlcm5pb24pCi17Ci0gICAgZG91YmxlIG1hZ25pdHVkZSA9IChxdWF0ZXJuaW9u
LnggKiBxdWF0ZXJuaW9uLngpICsgKHF1YXRlcm5pb24ueSAqIHF1YXRlcm5pb24ueSkgKyAocXVh
dGVybmlvbi56ICogcXVhdGVybmlvbi56KSArIChxdWF0ZXJuaW9uLncgKiBxdWF0ZXJuaW9uLncp
OwotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRlcm5pb24gbm9ybWFsaXplZFF1YXRl
cm5pb24ocXVhdGVybmlvbi54IC8gbWFnbml0dWRlLCBxdWF0ZXJuaW9uLnkgLyBtYWduaXR1ZGUs
IHF1YXRlcm5pb24ueiAvIG1hZ25pdHVkZSwgcXVhdGVybmlvbi53IC8gbWFnbml0dWRlKTsKLSAg
ICBkb3VibGUgeDIgPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5p
b24ueDsKLSAgICBkb3VibGUgeTIgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXpl
ZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgejIgPSBub3JtYWxpemVkUXVhdGVybmlvbi56ICog
bm9ybWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgdzIgPSBub3JtYWxpemVkUXVhdGVy
bmlvbi53ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBkb3VibGUgeHkgPSBub3JtYWxp
emVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgencg
PSBub3JtYWxpemVkUXVhdGVybmlvbi56ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBk
b3VibGUgeHogPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24u
ejsKLSAgICBkb3VibGUgeXcgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXplZFF1
YXRlcm5pb24udzsKLSAgICBkb3VibGUgeXogPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9y
bWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgeHcgPSBub3JtYWxpemVkUXVhdGVybmlv
bi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLQotICAgIHJldHVybiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgKLSAgICAgICAgeDIgLSB5MiAtIHoyICsgdzIsIDIuMCAqICh4eSAtIHp3KSwgMi4w
ICogKHh6ICsgeXcpLCAwLAotICAgICAgICAyLjAgKiAoeHkgKyB6dyksIC14MiArIHkyIC0gejIg
KyB3MiwgMi4wICogKHl6IC0geHcpLCAwLAotICAgICAgICAyLjAgKiAoeHogLSB5dyksIDIuMCAq
ICh5eiArIHh3KSwgLXgyIC0geTIgKyB6MiArIHcyLCAwLAotICAgICAgICAwLCAwLCAwLCAxKTsK
LX0KLQotc3RhdGljIHZvaWQgYXBwbHlIZWFkVG9FeWVUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgY29uc3QgRmxvYXRQb2ludDNEJiB0cmFuc2xhdGlvbikKLXsKLSAgICBt
YXRyaXguc2V0TTQxKG1hdHJpeC5tNDEoKSAtIHRyYW5zbGF0aW9uLngoKSk7Ci0gICAgbWF0cml4
LnNldE00MihtYXRyaXgubTQyKCkgLSB0cmFuc2xhdGlvbi55KCkpOwotICAgIG1hdHJpeC5zZXRN
NDMobWF0cml4Lm00MygpIC0gdHJhbnNsYXRpb24ueigpKTsKLX0KLQotdm9pZCBWUkZyYW1lRGF0
YTo6dXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5mbywgY29u
c3QgVlJFeWVQYXJhbWV0ZXJzJiBsZWZ0RXllLCBjb25zdCBWUkV5ZVBhcmFtZXRlcnMmIHJpZ2h0
RXllLCBkb3VibGUgZGVwdGhOZWFyLCBkb3VibGUgZGVwdGhGYXIpCi17Ci0gICAgbV9sZWZ0UHJv
amVjdGlvbk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcobGVmdEV5ZS5m
aWVsZE9mVmlldygpLCBkZXB0aE5lYXIsIGRlcHRoRmFyKTsKLSAgICBtX3JpZ2h0UHJvamVjdGlv
bk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcocmlnaHRFeWUuZmllbGRP
ZlZpZXcoKSwgZGVwdGhOZWFyLCBkZXB0aEZhcik7Ci0KLSAgICBtX3RpbWVzdGFtcCA9IHRyYWNr
aW5nSW5mby50aW1lc3RhbXA7Ci0gICAgbV9wb3NlLT51cGRhdGUodHJhY2tpbmdJbmZvKTsKLQot
ICAgIGF1dG8gcm90YXRpb25NYXRyaXggPSByb3RhdGlvbk1hdHJpeEZyb21RdWF0ZXJuaW9uKHRy
YWNraW5nSW5mby5vcmllbnRhdGlvbi52YWx1ZU9yKFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1
YXRlcm5pb24oMCwgMCwgMCwgMSkpKTsKLSAgICBGbG9hdFBvaW50M0QgcG9zaXRpb24gPSB0cmFj
a2luZ0luZm8ucG9zaXRpb24udmFsdWVPcihGbG9hdFBvaW50M0QoMCwgMCwgMCkpOwotICAgIHJv
dGF0aW9uTWF0cml4LnRyYW5zbGF0ZTNkKC1wb3NpdGlvbi54KCksIC1wb3NpdGlvbi55KCksIC1w
b3NpdGlvbi56KCkpOwotCi0gICAgbV9sZWZ0Vmlld01hdHJpeCA9IHJvdGF0aW9uTWF0cml4Owot
ICAgIGFwcGx5SGVhZFRvRXllVHJhbnNmb3JtKG1fbGVmdFZpZXdNYXRyaXgsIGxlZnRFeWUucmF3
T2Zmc2V0KCkpOwotCi0gICAgbV9yaWdodFZpZXdNYXRyaXggPSByb3RhdGlvbk1hdHJpeDsKLSAg
ICBhcHBseUhlYWRUb0V5ZVRyYW5zZm9ybShtX3JpZ2h0Vmlld01hdHJpeCwgcmlnaHRFeWUucmF3
T2Zmc2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVmM2JjN2FiNmE1ZGMxNjBlZjA3MDM4MmExMzUwMjY5NTk1NTE5NDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0
ZXJzOwotY2xhc3MgVlJQb3NlOwotc3RydWN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm87Ci0KLWNs
YXNzIFZSRnJhbWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8VlJGcmFtZURhdGE+IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFZSRnJhbWVEYXRhPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJGcmFtZURhdGEpOwotICAgIH0KLQotICAgIGRvdWJsZSB0
aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotCi0gICAgUmVmPEZsb2F0
MzJBcnJheT4gbGVmdFByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKLSAgICBSZWY8RmxvYXQzMkFy
cmF5PiBsZWZ0Vmlld01hdHJpeCgpIGNvbnN0OwotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmln
aHRQcm9qZWN0aW9uTWF0cml4KCkgY29uc3Q7Ci0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmlnaHRW
aWV3TWF0cml4KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBWUlBvc2UmIHBvc2UoKSBjb25zdDsKLQot
ICAgIHZvaWQgdXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mLCBjb25zdCBWUkV5
ZVBhcmFtZXRlcnMmIGxlZnRFeWUsIGNvbnN0IFZSRXllUGFyYW1ldGVycyYgcmlnaHRFeWUsIGRv
dWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcik7Ci0KLXByaXZhdGU6Ci0gICAgVlJGcmFt
ZURhdGEoKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcCB7IDAgfTsKLSAgICBSZWY8VlJQb3Nl
PiBtX3Bvc2U7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9sZWZ0UHJvamVjdGlvbk1hdHJp
eDsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3JpZ2h0UHJvamVjdGlvbk1hdHJpeDsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2xlZnRWaWV3TWF0cml4OwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fcmlnaHRWaWV3TWF0cml4OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZyYW1lRGF0YS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRhNGJkMjg2ZmJjNmYwZGM5MGE1N2M1ZDFkZTNmNTkz
Njg0NGVkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLXR5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNU
aW1lU3RhbXA7Ci0KLVsKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgQ29uc3RydWN0b3IKLV0gaW50ZXJmYWNlIFZSRnJhbWVE
YXRhIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lc3Rh
bXA7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IGxlZnRQcm9qZWN0aW9u
TWF0cml4OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbGVmdFZpZXdNYXRy
aXg7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0UHJvamVjdGlv
bk1hdHJpeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0Vmlld01h
dHJpeDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlBvc2UgcG9zZTsKLX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgzMzMxM2Y4ODY0NWI1ZWYyZmQ4MmIyZTAyOGExZDRjMjUxNDY4YWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFZSTGF5ZXJJbml0IHsKLSAgICBSZWZQdHI8
SFRNTENhbnZhc0VsZW1lbnQ+IHNvdXJjZTsKLSAgICBWZWN0b3I8ZmxvYXQ+IGxlZnRCb3VuZHM7
Ci0gICAgVmVjdG9yPGZsb2F0PiByaWdodEJvdW5kczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZTdkNjgwNjExZTlhMTgxZmFmODJmYzUwOTc5
NWRjNGZlY2MwZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKKysrIC9kZXYv
bnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiB0eXBlZGVmIChI
VE1MQ2FudmFzRWxlbWVudCBvciBPZmZzY3JlZW5DYW52YXMpIFZSU291cmNlOwotdHlwZWRlZiBI
VE1MQ2FudmFzRWxlbWVudCBWUlNvdXJjZTsKLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
VlIsCi0gICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLV0gZGljdGlvbmFyeSBWUkxheWVySW5pdCB7
Ci0gICAgVlJTb3VyY2U/IHNvdXJjZSA9IG51bGw7Ci0KLSAgICBzZXF1ZW5jZTxmbG9hdD4gbGVm
dEJvdW5kcyA9IFsgXTsKLSAgICBzZXF1ZW5jZTxmbG9hdD4gcmlnaHRCb3VuZHMgPSBbIF07Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5OWFmYzE0Mzk5M2Y3NzQ3MzI0Mjk4ZjI0NTkxN2UxZGRjMTFkNGVhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUlBvc2UuaCIK
LQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG9wdGlvbmFsRmxv
YXQzVG9KU0NBcnJheShjb25zdCBPcHRpb25hbDxWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9h
dDM+JiBkYXRhKQotewotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoZGF0YS0+ZGF0YSwgMyk7Ci19Ci0KLVJl
ZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6cG9zaXRpb24oKSBjb25zdAotewotICAgIGlmICgh
bV90cmFja2luZ0luZm8ucG9zaXRpb24pCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
YXV0byYgcG9zaXRpb24gPSAqbV90cmFja2luZ0luZm8ucG9zaXRpb247Ci0gICAgZmxvYXQgcG9z
aXRpb25EYXRhWzNdID0geyBwb3NpdGlvbi54KCksIHBvc2l0aW9uLnkoKSwgcG9zaXRpb24ueigp
IH07Ci0gICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHBvc2l0aW9uRGF0YSwgMyk7Ci19
Ci0KLVJlZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6bGluZWFyVmVsb2NpdHkoKSBjb25zdAot
ewotICAgIHJldHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8ubGlu
ZWFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6OmxpbmVhckFj
Y2VsZXJhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9KU0NBcnJh
eShtX3RyYWNraW5nSW5mby5saW5lYXJBY2NlbGVyYXRpb24pOwotfQotCi1SZWZQdHI8RmxvYXQz
MkFycmF5PiBWUlBvc2U6Om9yaWVudGF0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fdHJhY2tp
bmdJbmZvLm9yaWVudGF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8m
IG9yaWVudGF0aW9uID0gKm1fdHJhY2tpbmdJbmZvLm9yaWVudGF0aW9uOwotICAgIGZsb2F0IG9y
aWVudGF0aW9uRGF0YVs0XSA9IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50
YXRpb24ueiwgb3JpZW50YXRpb24udyB9OwotICAgIHJldHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0
ZShvcmllbnRhdGlvbkRhdGEsIDQpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6
OmFuZ3VsYXJWZWxvY2l0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9K
U0NBcnJheShtX3RyYWNraW5nSW5mby5hbmd1bGFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8Rmxv
YXQzMkFycmF5PiBWUlBvc2U6OmFuZ3VsYXJBY2NlbGVyYXRpb24oKSBjb25zdAotewotICAgIHJl
dHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8uYW5ndWxhckFjY2Vs
ZXJhdGlvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSUG9zZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzIzYzgzNzZj
ZTFhZjc3Njc1OTdkMTliOTJmZWE1YmU5N2Y4ZmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3Nl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxWUlBv
c2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZSUG9zZT4gY3JlYXRlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSUG9zZSk7Ci0gICAgfQotCi0gICAgc3RhdGlj
IFJlZjxWUlBvc2U+IGNyZWF0ZShjb25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2lu
Z0luZm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlBvc2UodHJhY2tp
bmdJbmZvKSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gcG9zaXRpb24oKSBj
b25zdDsKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBsaW5lYXJWZWxvY2l0eSgpIGNvbnN0Owot
ICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGxpbmVhckFjY2VsZXJhdGlvbigpIGNvbnN0OwotCi0g
ICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gb3JpZW50YXRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8
RmxvYXQzMkFycmF5PiBhbmd1bGFyVmVsb2NpdHkoKSBjb25zdDsKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiBhbmd1bGFyQWNjZWxlcmF0aW9uKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHVwZGF0ZShj
b25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2luZ0luZm8pIHsgbV90cmFja2luZ0lu
Zm8gPSB0cmFja2luZ0luZm87IH07Ci0KLXByaXZhdGU6Ci0gICAgVlJQb3NlKCkgPSBkZWZhdWx0
OwotCi0gICAgVlJQb3NlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5m
bykKLSAgICAgICAgOiBtX3RyYWNraW5nSW5mbyh0cmFja2luZ0luZm8pCi0gICAgewotICAgIH0K
LQotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gbV90cmFja2luZ0luZm87Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSUG9zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSUG9zZS5pZGwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNWEwYmU1Yjk3NjFmYzdkM2I3NWM1NzY2
NDY4YmU5MzYyNTk3NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKLV0gaW50ZXJmYWNlIFZSUG9zZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZs
b2F0MzJBcnJheT8gcG9zaXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gbGluZWFyVmVsb2NpdHk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8g
bGluZWFyQWNjZWxlcmF0aW9uOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gb3JpZW50YXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8gYW5n
dWxhclZlbG9jaXR5OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXk/IGFuZ3Vs
YXJBY2NlbGVyYXRpb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZl
NTczMjZjNTI0YTU3Njk3M2JjM2I2YTdjODY0ZDgxODgyMjU3My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0
ZXJzLmgiCi0KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUlN0YWdlUGFyYW1ldGVyczo6VlJTdGFnZVBhcmFtZXRl
cnMoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFNpemUmIHBsYXlBcmVhQm91bmRzKQotICAgIDogbV9wbGF5QXJlYUJvdW5k
cyhwbGF5QXJlYUJvdW5kcykKLSAgICAsIG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oc2l0
dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0pCi17Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSU3Rh
Z2VQYXJhbWV0ZXJzOjpzaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAg
YXV0byBjb2x1bW5NYWpvck1hdHJpeCA9IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0udG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Y29sdW1uTWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLWZsb2F0IFZSU3RhZ2VQYXJhbWV0
ZXJzOjpzaXplWCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheUFyZWFCb3VuZHMud2lkdGgo
KTsKLX0KLQotZmxvYXQgVlJTdGFnZVBhcmFtZXRlcnM6OnNpemVaKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wbGF5QXJlYUJvdW5kcy5oZWlnaHQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVy
cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE5NmI3YWMzNzUzZjc3MjQ5ODRl
OTJkZDNmOGExNDViZDkxOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKLQotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlN0YWdlUGFyYW1ldGVycyA6IHB1YmxpYyBSZWZD
b3VudGVkPFZSU3RhZ2VQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxW
UlN0YWdlUGFyYW1ldGVycz4gY3JlYXRlKGNvbnN0IE9wdGlvbmFsPFRyYW5zZm9ybWF0aW9uTWF0
cml4PiYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IE9wdGlvbmFsPEZsb2F0U2l6
ZT4mIHBsYXlBcmVhQm91bmRzKQotICAgIHsKLSAgICAgICAgaWYgKCFzaXR0aW5nVG9TdGFuZGlu
Z1RyYW5zZm9ybSB8fCAhcGxheUFyZWFCb3VuZHMpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlN0YWdlUGFyYW1ldGVycyhzaXR0
aW5nVG9TdGFuZGluZ1RyYW5zZm9ybS52YWx1ZSgpLCBwbGF5QXJlYUJvdW5kcy52YWx1ZSgpKSk7
Ci0gICAgfQotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zv
cm0oKSBjb25zdDsKLQotICAgIGZsb2F0IHNpemVYKCkgY29uc3Q7Ci0gICAgZmxvYXQgc2l6ZVoo
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBWUlN0YWdlUGFyYW1ldGVycyhjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0U2l6
ZSYgcGxheUFyZWFCb3VuZHMpOwotCi0gICAgRmxvYXRTaXplIG1fcGxheUFyZWFCb3VuZHM7Ci0g
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIzNzMxZTdiMDM3NzEwNWQwZjkyYmZjYzdlZDEzNDUwOWVkNWU4ZWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBWUlN0YWdlUGFyYW1ldGVycyB7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBzaXR0aW5nVG9TdGFuZGluZ1RyYW5z
Zm9ybTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzaXplWDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgc2l6ZVo7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmNjc1ODAxNGFi
NzI2N2IzZGM4MWUyZWYzZGEyMThlZTdkNzMwZjJkLi44YzY3NDRlZWYxZTU2MjMzYzdmYWVhYmRm
ZjFhZjE4MmUxYzE1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDEwLDE0ICs0MTAsNiBAQCBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVy
ZVZpZXcuY3BwCiBNb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuY3BwCiAKLU1vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHAK
LU1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKLU1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwCi1Nb2R1bGVzL3dlYnZy
L1ZSUG9zZS5jcHAKLU1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuY3BwCi0KIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApA
QCAtMjA2OCwxMSArMjA2MCw2IEBAIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAogcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCiAKLXBsYXRmb3JtL3ZyL1ZSTWFuYWdlci5jcHAKLXBsYXRm
b3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSLmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2Vy
T3BlblZSLmNwcAotCiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAogcGx1Z2lucy9ET01NaW1lVHlw
ZUFycmF5LmNwcAogcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBAIC0yODIwLDcgKzI4MDcsNiBAQCBK
U0RPTVdpbmRvd0ZldGNoLmNwcAogSlNET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBKU0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCi1K
U0RPTVdpbmRvd1dlYlZSLmNwcAogSlNEYXRhVHJhbnNmZXIuY3BwCiBKU0RhdGFUcmFuc2Zlckl0
ZW0uY3BwCiBKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtMzExNCw3ICszMTAwLDYgQEAg
SlNOYXZpZ2F0b3JTaGFyZS5jcHAKIEpTU2hhcmVEYXRhLmNwcAogSlNOYXZpZ2F0b3JTZXJ2aWNl
V29ya2VyLmNwcAogSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCi1KU05hdmlnYXRvcldlYlZSLmNw
cAogSlNOb2RlLmNwcAogSlNOb2RlRmlsdGVyLmNwcAogSlNOb2RlSXRlcmF0b3IuY3BwCkBAIC0z
NDUxLDE3ICszNDM2LDYgQEAgSlNVSUV2ZW50LmNwcAogSlNVSUV2ZW50SW5pdC5jcHAKIEpTVVJM
U2VhcmNoUGFyYW1zLmNwcAogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwCi1KU1ZS
RGlzcGxheS5jcHAKLUpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcAotSlNWUkRpc3BsYXlFdmVu
dC5jcHAKLUpTVlJEaXNwbGF5RXZlbnRSZWFzb24uY3BwCi1KU1ZSRXllLmNwcAotSlNWUkV5ZVBh
cmFtZXRlcnMuY3BwCi1KU1ZSRmllbGRPZlZpZXcuY3BwCi1KU1ZSRnJhbWVEYXRhLmNwcAotSlNW
UkxheWVySW5pdC5jcHAKLUpTVlJQb3NlLmNwcAotSlNWUlN0YWdlUGFyYW1ldGVycy5jcHAKIEpT
VmFsaWRpdHlTdGF0ZS5jcHAKIEpTVmlkZW9Db25maWd1cmF0aW9uLmNwcAogSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5jcHAKQEAgLTM1MzksMTEgKzM1MTMsOCBAQCBKU1hTTFRQcm9jZXNzb3IuY3Bw
CiBKU0dhbWVwYWQuY3BwCiBKU0dhbWVwYWRCdXR0b24uY3BwCiBKU0dhbWVwYWRFdmVudC5jcHAK
LUpTR2FtZXBhZFdlYlZSLmNwcAogSlNOYXZpZ2F0b3JHYW1lcGFkLmNwcAogCi1Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5jcHAKLQogI2VuZGlmCiAKICNpZiBFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGMzODZmNzMyNWQ2MWQzNjM2NDkzMzQwYjY1MmY0YTJmMTM5ZjVlMmMu
LjUzZGI4MmNiYmVlMWVkZTU5NjZkZjYxNDE1ZDg5OThmMTE4MmY1NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NDksOSAr
NDc0OSw2IEBACiAJCUUxODA4MTE3MTZGQ0Y5Q0IwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE4MDgxMTUxNkZDRjlDQjAwQjgwRDA3IC8qIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTE4MjU2OTAw
RUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlLmggKi87IH07CiAJCUUxODUzNjg0MUY0RTQ4MTQwMEZFMDkx
QiAvKiBXZWJBcmNoaXZlUmVzb3VyY2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg1MzY4MTFGNEU0NzI3MDBG
RTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5oICovOyB9
OwotCQlFMTg4MjM2NDIwMzFGNTcxMDBCNDJERjMgLyogVlJNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg4MjM2MzIwMzFGNTVEMDBCNDJE
RjMgLyogVlJNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJRTE4ODIzNjUyMDMxRjU3RjAwQjQyREYzIC8qIFZSUGxhdGZvcm1EaXNwbGF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg4MjM2
MDIwMzFGNTVBMDBCNDJERjMgLyogVlJQbGF0Zm9ybURpc3BsYXkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMTg4MjM2NjIwMzFGNTk0MDBCNDJE
RjMgLyogVlJQbGF0Zm9ybU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxODgyMzYxMjAzMUY1NUIwMEI0MkRGMyAvKiBWUlBsYXRmb3JtTWFu
YWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUxOEMzNTQ0MUY3MTk3MEMwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJj
ZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxOEMzNTQxMUY3MTk2Q0QwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJj
ZUhhbmRsZXIuaCAqLzsgfTsKIAkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdy
YXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MTk3MjcxNjE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUx
IC8qIENyeXB0b0tleVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNjgzOCw2MyArNjgzNSw2IEBACiAJCTJEQUYzNDNBMUVBN0UwRjEwMDM4
MkNEMyAvKiBDb25zdGFudFByb3BlcnR5TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnN0YW50UHJvcGVydHlNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREFGMzQzQjFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1h
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdGFudFByb3BlcnR5TWFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDVBNzI2MUVCRUU0N0QwMDlCQTU5
NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb21wb3NpdGlvblVuZGVybGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNBRDFGNTc0N0EzMDBEMUEzNjUgLyogRE9NV2luZG93V2ViVlIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERPTVdpbmRvd1dlYlZSLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMkRERTFDQUUxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVwYWRXZWJWUi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHYW1lcGFkV2ViVlIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNBRjFGNTc0N0EzMDBEMUEzNjUgLyogR2Ft
ZXBhZFdlYlZSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRXZWJW
Ui5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCMDFGNTc0N0EzMDBEMUEz
NjUgLyogR2FtZXBhZFdlYlZSLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHYW1lcGFkV2Vi
VlIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCMTFGNTc0N0EzMDBE
MUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmF2aWdhdG9yV2ViVlIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNCMjFGNTc0N0EzMDBEMUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yV2ViVlIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjMxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZS
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JXZWJWUi5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0I0MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3Bs
YXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlJEaXNwbGF5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjUxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkRpc3Bs
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjYxRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRGlzcGxheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjgxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDQjkxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkExRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlz
cGxheUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSRGlz
cGxheUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkIxRjU3
NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZSRGlzcGxheUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTJEREUxQ0JDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNCRDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJEaXNwbGF5RXZlbnRSZWFzb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkUxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheUV2ZW50UmVhc29uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkRp
c3BsYXlFdmVudFJlYXNvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUx
Q0JGMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWUkV5ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNDMDFG
NTc0N0EzMDBEMUEzNjUgLyogVlJFeWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSRXll
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzExRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRXllUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWUkV5ZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNDMjFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0ZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZSRXllUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyRERFMUNDMzFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0
ZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkV5ZVBhcmFtZXRlcnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNDNTFGNTc0N0EzMDBEMUEzNjUgLyogVlJG
aWVsZE9mVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkZpZWxkT2ZW
aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0M2MUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkZpZWxkT2ZWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkZpZWxk
T2ZWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzcxRjU3NDdB
MzAwRDFBMzY1IC8qIFZSRnJhbWVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZSRnJhbWVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MkRERTFDQzgxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRnJhbWVEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZSRnJhbWVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTJEREUxQ0M5MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkZyYW1lRGF0YS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVlJGcmFtZURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNDQTFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJMYXllckluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0IxRjU3NDdBMzAwRDFBMzY1IC8qIFZSTGF5ZXJJbml0Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkxheWVySW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTJEREUxQ0NDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlJQb3NlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0QxRjU3NDdBMzAwRDFBMzY1IC8qIFZSUG9zZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUlBvc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0UxRjU3NDdBMzAwRDFBMzY1IC8qIFZSUG9zZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMkRERTFDQ0YxRjU3NDdBMzAwRDFBMzY1IC8qIFZSU3RhZ2VQYXJhbWV0ZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSU3RhZ2VQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRDAxRjU3NDdBMzAwRDFB
MzY1IC8qIFZSU3RhZ2VQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZSU3RhZ2VQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJE
REUxQ0QxMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVlJTdGFnZVBhcmFtZXRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyRERFMUNERDFGNTc0QUFCMDBEMUEzNjUgLyogSlNWUkRpc3BsYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRpc3BsYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNERTFGNTc0QUFCMDBEMUEzNjUgLyogSlNW
UkRpc3BsYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUkRpc3BsYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDREYxRjU3NEFEMTAwRDFBMzY1
IC8qIEpTVlJGaWVsZE9mVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1ZSRmllbGRPZlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RERFMUNFMDFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJGaWVsZE9mVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRERFMUNFNTFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlDYXBh
YmlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRp
c3BsYXlDYXBhYmlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERF
MUNFNjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRTcxRjU3NEJGRjAwRDFBMzY1IC8qIEpT
VlJEaXNwbGF5RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNWUkRpc3BsYXlFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUx
Q0U4MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMkRERTFDRTkxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRS
ZWFzb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRpc3Bs
YXlFdmVudFJlYXNvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VB
MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50UmVhc29uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnRSZWFzb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRUIxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkV5ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VDMUY1NzRCRkYwMEQxQTM2NSAvKiBK
U1ZSRXllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJFeWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRUQxRjU3NEJGRjAwRDFBMzY1IC8qIEpT
VlJFeWVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTVlJFeWVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRE
RTFDRUUxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJFeWVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VGMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRnJhbWVEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJGcmFtZURhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNGMDFGNTc0QkZGMDBEMUEz
NjUgLyogSlNWUkZyYW1lRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZSRnJhbWVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0YxMUY1
NzRCRkYwMEQxQTM2NSAvKiBKU1ZSTGF5ZXJJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTVlJMYXllckluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNGMjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkxheWVySW5pdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZSTGF5ZXJJbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0YzMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSUG9zZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZSUG9zZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0Y0MUY1NzRCRkYwMEQxQTM2NSAvKiBK
U1ZSUG9zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZSUG9zZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNGNTFGNTc0QkZGMDBEMUEzNjUgLyog
SlNWUlN0YWdlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDRjYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUlN0YWdlUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyREY1MTJDQjFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VSYW5nZVdp
dGhUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjUxMkND
MUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA1MCwxMCArMTQ5OTAsNiBAQAogCQlF
MTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3Bl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4NTM2ODExRjRFNDcy
NzAwRkUwOTFCIC8qIFdlYkFyY2hpdmVSZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTg1MzY4MjFGNEU0NzI3MDBGRTA5MUIg
LyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxODgyMzYwMjAzMUY1NUEwMEI0MkRGMyAv
KiBWUlBsYXRmb3JtRGlzcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
UlBsYXRmb3JtRGlzcGxheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTg4MjM2
MTIwMzFGNTVCMDBCNDJERjMgLyogVlJQbGF0Zm9ybU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVlJQbGF0Zm9ybU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTE4ODIzNjIyMDMxRjU1QzAwQjQyREYzIC8qIFZSTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUk1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlFMTg4MjM2MzIwMzFGNTVEMDBCNDJERjMgLyogVlJNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZSTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThDMzU0MTFGNzE5NkNEMDBGRjYzMkQgLyogV2Vi
QXJjaGl2ZVJlc291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFy
Y2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMThDMzU0MjFGNzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNlV2Vi
UmVzb3VyY2VIYW5kbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291
cmNlV2ViUmVzb3VyY2VIYW5kbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTQxLDcgKzE2ODc3LDYgQEAKIAkJCQlG
REExNUU3QjEyQjAzRTA0MDAzQTU4M0EgLyogV2ViQXVkaW8gKi8sCiAJCQkJNTdEODQ2MkYxRkVB
RkIwNTAwQ0EzNjgyIC8qIFdlYkF1dGhOICovLAogCQkJCTVEQTVFMEY5MTAyQjk1MDQwMDA4OENG
OSAvKiBXZWJTb2NrZXRzICovLAotCQkJCTJEREUxQ0RDMUY1NzRBNTYwMEQxQTM2NSAvKiBXZWJW
UiAqLywKIAkJCQlCQzk4NTQ0MzBDRDNEOUQwMDAwNjlCQzEgLyogV2luZG93ICovLAogCQkJCUE4
M0I3OTIyMENDQjAwRjAwMDBCMDgyNSAvKiBYTUwgKi8sCiAJCQkJQTgzQjc5MEMwQ0NBRkY4MzAw
MEIwODI1IC8qIFhQYXRoICovLApAQCAtMTc4ODQsNzcgKzE3ODE5LDYgQEAKIAkJCXBhdGggPSAi
Z2VzdHVyZS1yZWNvZ25pemVycyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyogd2VidnIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTJEREUxQ0FEMUY1NzQ3QTMwMEQxQTM2NSAvKiBE
T01XaW5kb3dXZWJWUi5pZGwgKi8sCi0JCQkJMkRERTFDQUUxRjU3NDdBMzAwRDFBMzY1IC8qIEdh
bWVwYWRXZWJWUi5jcHAgKi8sCi0JCQkJMkRERTFDQUYxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVw
YWRXZWJWUi5oICovLAotCQkJCTJEREUxQ0IwMUY1NzQ3QTMwMEQxQTM2NSAvKiBHYW1lcGFkV2Vi
VlIuaWRsICovLAotCQkJCTJEREUxQ0IxMUY1NzQ3QTMwMEQxQTM2NSAvKiBOYXZpZ2F0b3JXZWJW
Ui5jcHAgKi8sCi0JCQkJMkRERTFDQjIxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZS
LmggKi8sCi0JCQkJMkRERTFDQjMxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZSLmlk
bCAqLywKLQkJCQkyRERFMUNCNDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5LmNwcCAqLywK
LQkJCQkyRERFMUNCNTFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5LmggKi8sCi0JCQkJMkRE
RTFDQjYxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheS5pZGwgKi8sCi0JCQkJMkRERTFDQjgx
RjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5oICovLAotCQkJCTJEREUx
Q0I5MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsICovLAotCQkJ
CTJEREUxQ0JBMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudC5jcHAgKi8sCi0JCQkJ
MkRERTFDQkIxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmggKi8sCi0JCQkJMkRE
RTFDQkMxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmlkbCAqLywKLQkJCQkyRERF
MUNCRDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24uaCAqLywKLQkJCQky
RERFMUNCRTFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsICovLAot
CQkJCTJEREUxQ0JGMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5oICovLAotCQkJCTJEREUxQ0Mw
MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5pZGwgKi8sCi0JCQkJMkRERTFDQzExRjU3NDdBMzAw
RDFBMzY1IC8qIFZSRXllUGFyYW1ldGVycy5jcHAgKi8sCi0JCQkJMkRERTFDQzIxRjU3NDdBMzAw
RDFBMzY1IC8qIFZSRXllUGFyYW1ldGVycy5oICovLAotCQkJCTJEREUxQ0MzMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkV5ZVBhcmFtZXRlcnMuaWRsICovLAotCQkJCTJEREUxQ0M1MUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkZpZWxkT2ZWaWV3LmggKi8sCi0JCQkJMkRERTFDQzYxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRmllbGRPZlZpZXcuaWRsICovLAotCQkJCTJEREUxQ0M3MUY1NzQ3QTMwMEQxQTM2NSAv
KiBWUkZyYW1lRGF0YS5jcHAgKi8sCi0JCQkJMkRERTFDQzgxRjU3NDdBMzAwRDFBMzY1IC8qIFZS
RnJhbWVEYXRhLmggKi8sCi0JCQkJMkRERTFDQzkxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRnJhbWVE
YXRhLmlkbCAqLywKLQkJCQkyRERFMUNDQTFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQu
aCAqLywKLQkJCQkyRERFMUNDQjFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQuaWRsICov
LAotCQkJCTJEREUxQ0NDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuY3BwICovLAotCQkJCTJE
REUxQ0NEMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuaCAqLywKLQkJCQkyRERFMUNDRTFGNTc0
N0EzMDBEMUEzNjUgLyogVlJQb3NlLmlkbCAqLywKLQkJCQkyRERFMUNDRjFGNTc0N0EzMDBEMUEz
NjUgLyogVlJTdGFnZVBhcmFtZXRlcnMuY3BwICovLAotCQkJCTJEREUxQ0QwMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5oICovLAotCQkJCTJEREUxQ0QxMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5pZGwgKi8sCi0JCQkpOwotCQkJcGF0aCA9IHdlYnZy
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJMkRERTFDREMxRjU3NEE1NjAw
RDFBMzY1IC8qIFdlYlZSICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9
ICgKLQkJCQkyRERFMUNERDFGNTc0QUFCMDBEMUEzNjUgLyogSlNWUkRpc3BsYXkuY3BwICovLAot
CQkJCTJEREUxQ0RFMUY1NzRBQUIwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheS5oICovLAotCQkJCTJE
REUxQ0U1MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5jcHAgKi8s
Ci0JCQkJMkRERTFDRTYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmggKi8sCi0JCQkJMkRERTFDRTcxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnQu
Y3BwICovLAotCQkJCTJEREUxQ0U4MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50
LmggKi8sCi0JCQkJMkRERTFDRTkxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRS
ZWFzb24uY3BwICovLAotCQkJCTJEREUxQ0VBMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxh
eUV2ZW50UmVhc29uLmggKi8sCi0JCQkJMkRERTFDRUIxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJF
eWUuY3BwICovLAotCQkJCTJEREUxQ0VDMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllLmggKi8s
Ci0JCQkJMkRERTFDRUQxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWVQYXJhbWV0ZXJzLmNwcCAq
LywKLQkJCQkyRERFMUNFRTFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkV5ZVBhcmFtZXRlcnMuaCAq
LywKLQkJCQkyRERFMUNERjFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmNwcCAq
LywKLQkJCQkyRERFMUNFMDFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmggKi8s
Ci0JCQkJMkRERTFDRUYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJGcmFtZURhdGEuY3BwICovLAot
CQkJCTJEREUxQ0YwMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRnJhbWVEYXRhLmggKi8sCi0JCQkJ
MkRERTFDRjExRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJMYXllckluaXQuY3BwICovLAotCQkJCTJE
REUxQ0YyMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSTGF5ZXJJbml0LmggKi8sCi0JCQkJMkRERTFD
RjMxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJQb3NlLmNwcCAqLywKLQkJCQkyRERFMUNGNDFGNTc0
QkZGMDBEMUEzNjUgLyogSlNWUlBvc2UuaCAqLywKLQkJCQkyRERFMUNGNTFGNTc0QkZGMDBEMUEz
NjUgLyogSlNWUlN0YWdlUGFyYW1ldGVycy5jcHAgKi8sCi0JCQkJMkRERTFDRjYxRjU3NEJGRjAw
RDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCAqLywKLQkJCSk7Ci0JCQluYW1lID0gV2Vi
VlI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQkyRTQzNDYzMTBGNTQ2QTY4
MDBCMEYxQkEgLyogd29ya2VycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yMjM5Nyw3ICsyMjI2MSw2IEBACiAJCQkJOTk2RTU5REExREYwMEQ0NTAwNjYx
MkI5IC8qIHdlYmRyaXZlciAqLywKIAkJCQlEMDBGNTkzRTIxNkVDQzQzMDAwRDcxREIgLyogd2Vi
Z3B1ICovLAogCQkJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovLAot
CQkJCTJEREUxQ0FCMUY1NzQ3NTkwMEQxQTM2NSAvKiB3ZWJ2ciAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gTW9kdWxlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjkxMSwxOSArMjY3
NzQsNiBAQAogCQkJcGF0aCA9IGFsZ29yaXRobXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OwotCQlFMTg4MjM1RjIwMzFGNTBGMDBCNDJERjMgLyogdnIgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUUxODgyMzYyMjAzMUY1NUMwMEI0MkRG
MyAvKiBWUk1hbmFnZXIuY3BwICovLAotCQkJCUUxODgyMzYzMjAzMUY1NUQwMEI0MkRGMyAvKiBW
Uk1hbmFnZXIuaCAqLywKLQkJCQk4RTYyMEU3RTIwRUU1RkUyMDA3QkM1RUYgLyogVlJQbGF0Zm9y
bURpc3BsYXkuY3BwICovLAotCQkJCUUxODgyMzYwMjAzMUY1NUEwMEI0MkRGMyAvKiBWUlBsYXRm
b3JtRGlzcGxheS5oICovLAotCQkJCThFNjIwRTgwMjBFRTVGRkMwMDdCQzVFRiAvKiBWUlBsYXRm
b3JtRGlzcGxheUNsaWVudC5oICovLAotCQkJCUUxODgyMzYxMjAzMUY1NUIwMEI0MkRGMyAvKiBW
UlBsYXRmb3JtTWFuYWdlci5oICovLAotCQkJKTsKLQkJCXBhdGggPSB2cjsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUUxOURBMjlEMTgxOTk1Q0UwMDA4OEJDOCAvKiBrZXlz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTMyOTc1LDEw
ICszMjgyNSw2IEBACiAJCQkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5r
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkE4MDAwMTg5NzM0MTIwMERDRTlENiAvKiBW
aXNpdGVkTGlua1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNCNjBDRDYzNDRFMDBG
QURBNzUgLyogVm9pZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTg4MjM2NDIwMzFG
NTcxMDBCNDJERjMgLyogVlJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTg4MjM2NTIw
MzFGNTdGMDBCNDJERjMgLyogVlJQbGF0Zm9ybURpc3BsYXkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CThFNjIwRTgxMjBFRTYwMjQwMDdCQzVFRiAvKiBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRTE4ODIzNjYyMDMxRjU5NDAwQjQyREYzIC8qIFZSUGxhdGZvcm1N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTIwNTA3QTE4QTQ1ODZCMDA4MDY0N0UgLyog
VlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwMzE4Q0ZCMkRGMDBDNjRCRUYgLyog
VlRUUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwNjE4Q0ZCMkRGMDBDNjRCRUYg
LyogVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggMjI4YzhlOTE3MTc3ZGYxOWZh
NTQyOGY3NWJlOWNiNWU0ZmE5ZTYyNy4uMTIwM2QwNzQxOTY3MDY0ZDMzZjNjYzZiODgxMzFkMWUw
ZThmMDhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtMjIyLDEzICsyMjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oVGV4dFRyYWNrQ3VlKSBcCiAgICAgbWFjcm8oVW5kb0l0ZW0pIFwKICAgICBtYWNybyhV
bmRvTWFuYWdlcikgXAotICAgIG1hY3JvKFZSRGlzcGxheSkgXAotICAgIG1hY3JvKFZSRGlzcGxh
eUNhcGFiaWxpdGllcykgXAotICAgIG1hY3JvKFZSRGlzcGxheUV2ZW50KSBcCi0gICAgbWFjcm8o
VlJFeWVQYXJhbWV0ZXJzKSBcCi0gICAgbWFjcm8oVlJGaWVsZE9mVmlldykgXAotICAgIG1hY3Jv
KFZSRnJhbWVEYXRhKSBcCi0gICAgbWFjcm8oVlJTdGFnZVBhcmFtZXRlcnMpIFwKICAgICBtYWNy
byhWaXN1YWxWaWV3cG9ydCkgXAogICAgIG1hY3JvKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFwK
ICAgICBtYWNybyhXZWJHTFZlcnRleEFycmF5T2JqZWN0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCmluZGV4IDcyYzZjODJjNmE2NzJiNDY4NjM2NTY5OWZkYWRhMGU5OWM3YTE5MDAuLjE1N2Yz
MzFjMWJhNzNjMTBkNWQzMzQ5NmFkMjVmZTY1M2E3YzUxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCkBAIC04Miw3ICs4Miw2IEBAIEdhbWVwYWRFdmVudCBjb25kaXRpb25hbD1HQU1FUEFE
CiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVk
aWFFbmNyeXB0ZWRFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhS2V5TWVz
c2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQotVlJEaXNwbGF5RXZlbnQKIFBv
aW50ZXJFdmVudCBjb25kaXRpb25hbD1QT0lOVEVSX0VWRU5UUwogR1BVVW5jYXB0dXJlZEVycm9y
RXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCBjb25k
aXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgppbmRleCBkNDliMWIwOWJkOTg0OTNhNGYxY2JkZDkyZDRlMTM5NDNkNDQ1
NjIzLi44MWU3Y2M5ZjBiNzY1MDU2MmFhYmZlZmUwNWE1YTNhZDFiYmJiOGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ4LDcgKzQ4LDYgQEAgU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKIFRleHRUcmFj
ayBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVP
X1RSQUNLCiBUZXh0VHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCi1WUkRpc3BsYXkK
IFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBWaXN1YWxWaWV3cG9ydAog
V2ViQW5pbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uIGIv
U291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgppbmRleCAxYTVjMTg5NDhlYzgxMTA5ZjNmNmVk
Nzg2ZDcwZThmZTRkMDIwZDNlLi5iYjI2NzQ0NGYxMWY1MTZhYzhiNmVjMzdhMjM3MDQyYmFhYmU0
MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24KQEAgLTc3MCwyMiArNzcwLDYgQEAKICAgICAgICAgICAg
ICJlbWFpbCI6ICJ3ZWItZXZhbmdlbGlzdEBhcHBsZS5jb20iCiAgICAgICAgIH0KICAgICB9LAot
ICAgIHsKLSAgICAgICAgIm5hbWUiOiAiV2ViVlIiLAotICAgICAgICAic3RhdHVzIjogewotICAg
ICAgICAgICAgInN0YXR1cyI6ICJJbiBEZXZlbG9wbWVudCIsCi0gICAgICAgICAgICAiZW5hYmxl
ZC1ieS1kZWZhdWx0IjogZmFsc2UKLSAgICAgICAgfSwKLSAgICAgICAgInVybCI6ICJodHRwczov
L3czYy5naXRodWIuaW8vd2VidnIvc3BlYy8xLjEvIiwKLSAgICAgICAgImtleXdvcmRzIjogWyJX
ZWJWUiwgVlIiXSwKLSAgICAgICAgImNhdGVnb3J5IjogImh0bWwiLAotICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiQSBKYXZhU2NyaXB0IEFQSSBwcm92aWRpbmcgYWNjZXNzIHRvIFZSIGRldmljZXMg
dG8gYWxsb3cgZGV2ZWxvcGVycyB0byBidWlsZCBjb21mb3J0YWJsZSBWUiBleHBlcmllbmNlcy4i
LAotICAgICAgICAiY29udGFjdCI6IHsKLSAgICAgICAgICAgICJuYW1lIjogIlNlcmdpbyBWaWxs
YXIgU2VuaW4iLAotICAgICAgICAgICAgInR3aXR0ZXIiOiAiQHN2aWxsYXJzZW5pbiIsCi0gICAg
ICAgICAgICAiZW1haWwiOiAic3ZpbGxhckBpZ2FsaWEuY29tIgotICAgICAgICB9Ci0gICAgfSwK
ICAgICB7CiAgICAgICAgICJuYW1lIjogIldvcmtsZXRzIExldmVsIDEiLAogICAgICAgICAic3Rh
dHVzIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApp
bmRleCA2MjEyMTBhYTA1M2VhNTFmOTkyODA4OWFhZDNiM2Y4YTk0NmJkZDc2Li4yYWI3ZjUxNTkw
YjUyMTk4OTcxMTc1ODQ0ZTQ4MGYxNjc0MGFiMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM3LDkgKzEzNyw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9p
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBpbnNwZWN0
b3JBZGRpdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JBZGRpdGlvbnNF
bmFibGVkOyB9CiAKLSAgICB2b2lkIHNldFdlYlZSRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X3dlYlZSRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQotICAgIGJvb2wgd2ViVlJFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJWUkVuYWJsZWQ7IH0KLQogICAgIHZvaWQgc2V0QWNjZXNzaWJpbGl0
eU9iamVjdE1vZGVsRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2FjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGFjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlPYmplY3RNb2Rl
bEVuYWJsZWQ7IH0KIApAQCAtNDMyLDcgKzQyOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
V2ViU29ja2V0RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZmV0Y2hBUElLZWVwQWxpdmVF
bmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX3dlYlZSRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2FjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
cmlhUmVmbGVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2l0cERlYnVnTW9kZSB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY3ZTY1YjE4OWUxODExM2I4MDk3MDAwMjVhMTYzZmIz
MGY0NGVkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSwgUy5M
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
VlJNYW5hZ2VyLmgiCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSUGxhdGZvcm1NYW5hZ2VyLmgiCi0KLSNpZiBVU0UoT1BFTlZSKQotI2luY2x1ZGUgIlZSUGxh
dGZvcm1NYW5hZ2VyT3BlblZSLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1W
Uk1hbmFnZXImIFZSTWFuYWdlcjo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VlJNYW5hZ2VyPiBpbnN0YW5jZTsKLSAgICByZXR1cm4gaW5zdGFuY2U7Ci19Ci0KLVZS
TWFuYWdlcjo6VlJNYW5hZ2VyKCkKLXsKLSNpZiBVU0UoT1BFTlZSKQotICAgIG1fcGxhdGZvcm1N
YW5hZ2VyID0gVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmNyZWF0ZSgpOwotI2VuZGlmCi19Ci0K
LVZSTWFuYWdlcjo6flZSTWFuYWdlcigpCi17Ci0gICAgbV9wbGF0Zm9ybU1hbmFnZXIgPSBudWxs
cHRyOwotfQotCi1PcHRpb25hbDxWUk1hbmFnZXI6OlZSRGlzcGxheXNWZWN0b3I+IFZSTWFuYWdl
cjo6Z2V0VlJEaXNwbGF5cygpCi17Ci0gICAgaWYgKCFtX3BsYXRmb3JtTWFuYWdlcikKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGF1dG8gZGlzcGxheXMgPSBtX3BsYXRmb3Jt
TWFuYWdlci0+Z2V0VlJEaXNwbGF5cygpOwotICAgIFZSRGlzcGxheXNIYXNoTWFwIG5ld0Rpc3Bs
YXlzOwotICAgIGZvciAoYXV0byYgZGlzcGxheSA6IGRpc3BsYXlzKSB7Ci0gICAgICAgIEFTU0VS
VChkaXNwbGF5KTsKLSAgICAgICAgbmV3RGlzcGxheXMuYWRkKGRpc3BsYXktPmdldERpc3BsYXlJ
bmZvKCkuZGlzcGxheUlkZW50aWZpZXIoKSwgZGlzcGxheSk7Ci0KLSAgICAgICAgVlJQbGF0Zm9y
bURpc3BsYXlJbmZvIGluZm8gPSBkaXNwbGF5LT5nZXREaXNwbGF5SW5mbygpOwotICAgICAgICBh
dXRvIGl0ZXJhdG9yID0gbV9kaXNwbGF5cy5maW5kKGluZm8uZGlzcGxheUlkZW50aWZpZXIoKSk7
Ci0gICAgICAgIGlmIChpdGVyYXRvciA9PSBtX2Rpc3BsYXlzLmVuZCgpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgZGlzcGxheS0+dXBkYXRlRGlzcGxheUluZm8oKTsKLSAgICAg
ICAgVlJQbGF0Zm9ybURpc3BsYXlJbmZvIG5ld0luZm8gPSBkaXNwbGF5LT5nZXREaXNwbGF5SW5m
bygpOwotICAgICAgICBpZiAoaW5mby5pc0Nvbm5lY3RlZCgpICE9IG5ld0luZm8uaXNDb25uZWN0
ZWQoKSkKLSAgICAgICAgICAgIGRpc3BsYXktPm5vdGlmeVZSUGxhdGZvcm1EaXNwbGF5RXZlbnQo
bmV3SW5mby5pc0Nvbm5lY3RlZCgpID8gVlJQbGF0Zm9ybURpc3BsYXk6OkV2ZW50OjpDb25uZWN0
ZWQgOiBWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6OkRpc2Nvbm5lY3RlZCk7Ci0gICAgICAgIGlm
IChpbmZvLmlzTW91bnRlZCgpICE9IG5ld0luZm8uaXNNb3VudGVkKCkpCi0gICAgICAgICAgICBk
aXNwbGF5LT5ub3RpZnlWUlBsYXRmb3JtRGlzcGxheUV2ZW50KG5ld0luZm8uaXNNb3VudGVkKCkg
PyBWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6Ok1vdW50ZWQgOiBWUlBsYXRmb3JtRGlzcGxheTo6
RXZlbnQ6OlVubW91bnRlZCk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvJiBpdGVyIDogbV9kaXNw
bGF5cykgewotICAgICAgICBBU1NFUlQoaXRlci52YWx1ZSk7Ci0gICAgICAgIGlmICghbmV3RGlz
cGxheXMuY29udGFpbnMoaXRlci5rZXkpKQotICAgICAgICAgICAgaXRlci52YWx1ZS0+bm90aWZ5
VlJQbGF0Zm9ybURpc3BsYXlFdmVudChWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6OkRpc2Nvbm5l
Y3RlZCk7Ci0gICAgfQotCi0gICAgbV9kaXNwbGF5cyA9IFdURk1vdmUobmV3RGlzcGxheXMpOwot
ICAgIHJldHVybiBkaXNwbGF5czsKLX0KLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkZjNiOWU5MmQ1YzdiYzU2ZTFiNzI0ZTY2YjRiN2Q5MzhiZDBmM2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdnIvVlJNYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBsYXRmb3Jt
RGlzcGxheTsKLWNsYXNzIFZSUGxhdGZvcm1NYW5hZ2VyOwotCi1jbGFzcyBWUk1hbmFnZXIgZmlu
YWwgewotICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFZSTWFuYWdlcj47Ci1w
dWJsaWM6Ci0gICAgdXNpbmcgVlJEaXNwbGF5c1ZlY3RvciA9IFZlY3RvcjxXZWFrUHRyPFZSUGxh
dGZvcm1EaXNwbGF5Pj47Ci0KLSAgICB+VlJNYW5hZ2VyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgVlJNYW5hZ2VyJiBzaW5nbGV0b24oKTsKLQotICAgIE9wdGlvbmFsPFZSRGlzcGxh
eXNWZWN0b3I+IGdldFZSRGlzcGxheXMoKTsKLQotcHJpdmF0ZToKLSAgICBWUk1hbmFnZXIoKTsK
LQotICAgIHVzaW5nIFZSRGlzcGxheXNIYXNoTWFwID0gSGFzaE1hcDx1aW50MzJfdCwgV2Vha1B0
cjxWUlBsYXRmb3JtRGlzcGxheT4+OwotICAgIFZSRGlzcGxheXNIYXNoTWFwIG1fZGlzcGxheXM7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1NYW5hZ2VyPiBtX3BsYXRmb3JtTWFuYWdl
cjsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDczMGE3MzRlOTJmMDk3MDQ1MmMwYjBkMTgxMzlmOTIxM2VmNTJjYWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNw
bGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBWUlBsYXRmb3JtRGlzcGxheTo6
c2V0Q2xpZW50KFZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNTRVJU
KCFjbGllbnQgfHwgIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKLX0KLQotdm9p
ZCBWUlBsYXRmb3JtRGlzcGxheTo6bm90aWZ5VlJQbGF0Zm9ybURpc3BsYXlFdmVudChFdmVudCBl
dmVudCkKLXsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzd2l0
Y2ggKGV2ZW50KSB7Ci0gICAgY2FzZSBFdmVudDo6Q29ubmVjdGVkOgotICAgICAgICBtX2NsaWVu
dC0+cGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RXZlbnQ6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgbV9jbGllbnQtPnBsYXRmb3JtRGlzcGxheURp
c2Nvbm5lY3RlZCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEV2ZW50OjpNb3VudGVkOgot
ICAgICAgICBtX2NsaWVudC0+cGxhdGZvcm1EaXNwbGF5TW91bnRlZCgpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEV2ZW50OjpVbm1vdW50ZWQ6Ci0gICAgICAgIG1fY2xpZW50LT5wbGF0Zm9y
bURpc3BsYXlVbm1vdW50ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURp
c3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkMjRjMmJhZTFiNjE4MzhkZmY3NWZhNTQx
NTY5MjJhNzVmNzE4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEln
YWxpYSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkZsb2F0UG9pbnQzRC5oIgotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCi0j
aW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQuaCIKLQotI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdHlwZWRlZiB1bnNpZ25lZCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ3M7Ci0KLWVu
dW0gVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWcgewotICAgIFZSRGlzcGxheUNhcGFiaWxpdHlGbGFn
Tm9uZSA9IDAsCi0gICAgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQb3NpdGlvbiA9IDEgPDwgMSwK
LSAgICBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ09yaWVudGF0aW9uID0gMSA8PCAyLAotICAgIFZS
RGlzcGxheUNhcGFiaWxpdHlGbGFnRXh0ZXJuYWxEaXNwbGF5ID0gMSA8PCAzLAotICAgIFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnUHJlc2VudCA9IDEgPDwgNAotfTsKLQotLyogVGhlIHB1cnBvc2Ug
b2YgdGhpcyBjbGFzcyBpcyB0byBlbmNhcHN1bGF0ZSBhbGwgdGhlIGluZm8gYWJvdXQgdGhlIGRp
c3BsYXkgaW4gYSBzaW5nbGUgY2xhc3MvZGF0YQotICogc3RydWN0dXJlLiBUaGlzIHdheSB3ZSB3
b3VsZG4ndCBoYXZlIHRvIHJlcGxpY2F0ZSBhbGwgdGhlIEFQSSBjYWxscyBvZiBWUkRpc3BsYXkg
aW4KLSAqIFZSUGxhdGZvcm1EaXNwbGF5LiBBbHNvIHRoZSBjbGllbnQgb2YgdGhpcyBBUEkgd291
bGQgb25seSBoYXZlIHRvIGlzc3VlIGEgc2luZ2xlIGNhbGwgdG8gZ2V0IGFsbAotICogdGhlIGlu
Zm8gZnJvbSB0aGUgZGlzcGxheS4gTm90ZSB0aGF0IGl0J3MgZmFpcmx5IHVubGlrZWx5IHRoYXQg
YSBWUiBhcHBsaWNhdGlvbiB3b3VsZCBvbmx5Ci0gKiByZXF1aXJlIGp1c3QgYSBmZXcgcGllY2Vz
IG9mIGluZm9ybWF0aW9uIGZyb20gdGhlIGRldmljZS4KLSovCi1jbGFzcyBWUlBsYXRmb3JtRGlz
cGxheUluZm8gewotcHVibGljOgotICAgIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlzcGxheU5hbWU7IH0KLSAgICB2b2lkIHNldERpc3BsYXlOYW1lKFN0cmlu
ZyYmIGRpc3BsYXlOYW1lKSB7IG1fZGlzcGxheU5hbWUgPSBXVEZNb3ZlKGRpc3BsYXlOYW1lKTsg
fQotCi0gICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb25uZWN0ZWQ7
IH0KLSAgICB2b2lkIHNldElzQ29ubmVjdGVkKGJvb2wgaXNDb25uZWN0ZWQpIHsgbV9pc0Nvbm5l
Y3RlZCA9IGlzQ29ubmVjdGVkOyB9Ci0KLSAgICBib29sIGlzTW91bnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNNb3VudGVkOyB9Ci0gICAgdm9pZCBzZXRJc01vdW50ZWQoYm9vbCBpc01vdW50ZWQp
IHsgbV9pc01vdW50ZWQgPSBpc01vdW50ZWQ7IH0KLQotICAgIGNvbnN0IFZSRGlzcGxheUNhcGFi
aWxpdHlGbGFncyYgY2FwYWJpbGl0eUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXR5
RmxhZ3M7IH0KLSAgICB2b2lkIHNldENhcGFiaWxpdHlGbGFncyhjb25zdCBWUkRpc3BsYXlDYXBh
YmlsaXR5RmxhZ3MmIGZsYWdzKSB7IG1fY2FwYWJpbGl0eUZsYWdzID0gZmxhZ3M7IH0KLQotICAg
IHVpbnQzMl90IGRpc3BsYXlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5SWRl
bnRpZmllcjsgfQotICAgIHZvaWQgc2V0RGlzcGxheUlkZW50aWZpZXIodWludDMyX3QgZGlzcGxh
eUlkZW50aWZpZXIpIHsgbV9kaXNwbGF5SWRlbnRpZmllciA9IGRpc3BsYXlJZGVudGlmaWVyOyB9
Ci0KLSAgICBlbnVtIEV5ZSB7IEV5ZUxlZnQgPSAwLCBFeWVSaWdodCwgTnVtRXllcyB9OwotICAg
IGNvbnN0IEZsb2F0UG9pbnQzRCYgZXllVHJhbnNsYXRpb24oRXllIGV5ZSkgY29uc3QgeyByZXR1
cm4gbV9leWVUcmFuc2xhdGlvbltleWVdOyB9Ci0gICAgdm9pZCBzZXRFeWVUcmFuc2xhdGlvbihF
eWUgZXllLCBjb25zdCBGbG9hdFBvaW50M0QmIHRyYW5zbGF0aW9uKSB7IG1fZXllVHJhbnNsYXRp
b25bZXllXSA9IHRyYW5zbGF0aW9uOyB9Ci0KLSAgICBzdHJ1Y3QgRmllbGRPZlZpZXcgewotICAg
ICAgICBkb3VibGUgdXBEZWdyZWVzOwotICAgICAgICBkb3VibGUgZG93bkRlZ3JlZXM7Ci0gICAg
ICAgIGRvdWJsZSBsZWZ0RGVncmVlczsKLSAgICAgICAgZG91YmxlIHJpZ2h0RGVncmVlczsKLSAg
ICB9OwotICAgIGNvbnN0IEZpZWxkT2ZWaWV3JiBleWVGaWVsZE9mVmlldyhFeWUgZXllKSBjb25z
dCB7IHJldHVybiBtX2V5ZUZpZWxkT2ZWaWV3W2V5ZV07IH0KLSAgICB2b2lkIHNldEV5ZUZpZWxk
T2ZWaWV3KEV5ZSBleWUsIGNvbnN0IEZpZWxkT2ZWaWV3JiBmaWVsZE9mVmlldykgeyBtX2V5ZUZp
ZWxkT2ZWaWV3W2V5ZV0gPSBmaWVsZE9mVmlldzsgfQotCi0gICAgc3RydWN0IFJlbmRlclNpemUg
ewotICAgICAgICB1bnNpZ25lZCB3aWR0aDsKLSAgICAgICAgdW5zaWduZWQgaGVpZ2h0OwotICAg
IH07Ci0gICAgY29uc3QgUmVuZGVyU2l6ZSYgcmVuZGVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVuZGVyU2l6ZTsgfQotICAgIHZvaWQgc2V0UmVuZGVyU2l6ZShjb25zdCBSZW5kZXJTaXplJiBy
ZW5kZXJTaXplKSB7IG1fcmVuZGVyU2l6ZSA9IHJlbmRlclNpemU7IH0KLQotICAgIHZvaWQgc2V0
UGxheUFyZWFCb3VuZHMoY29uc3QgRmxvYXRTaXplJiBwbGF5QXJlYUJvdW5kcykgeyBtX3BsYXlB
cmVhQm91bmRzID0gcGxheUFyZWFCb3VuZHM7IH0KLSAgICBjb25zdCBPcHRpb25hbDxGbG9hdFNp
emU+JiBwbGF5QXJlYUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheUFyZWFCb3VuZHM7IH0K
LQotICAgIHZvaWQgc2V0U2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSkgeyBtX3NpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtID0g
dHJhbnNmb3JtOyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VHJhbnNmb3JtYXRpb25NYXRyaXg+JiBz
aXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l0dGluZ1RvU3Rh
bmRpbmdUcmFuc2Zvcm07IH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV9kaXNwbGF5TmFtZTsK
LSAgICBib29sIG1faXNDb25uZWN0ZWQ7Ci0gICAgYm9vbCBtX2lzTW91bnRlZDsKLSAgICBWUkRp
c3BsYXlDYXBhYmlsaXR5RmxhZ3MgbV9jYXBhYmlsaXR5RmxhZ3M7Ci0gICAgdWludDMyX3QgbV9k
aXNwbGF5SWRlbnRpZmllcjsKLQotICAgIEZsb2F0UG9pbnQzRCBtX2V5ZVRyYW5zbGF0aW9uW0V5
ZTo6TnVtRXllc107Ci0KLSAgICBSZW5kZXJTaXplIG1fcmVuZGVyU2l6ZTsKLSAgICBGaWVsZE9m
VmlldyBtX2V5ZUZpZWxkT2ZWaWV3W0V5ZTo6TnVtRXllc107Ci0KLSAgICBPcHRpb25hbDxGbG9h
dFNpemU+IG1fcGxheUFyZWFCb3VuZHM7Ci0gICAgT3B0aW9uYWw8VHJhbnNmb3JtYXRpb25NYXRy
aXg+IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm07Ci19OwotCi1zdHJ1Y3QgVlJQbGF0Zm9y
bVRyYWNraW5nSW5mbyB7Ci0gICAgc3RydWN0IFF1YXRlcm5pb24gewotICAgICAgICBRdWF0ZXJu
aW9uKCkKLSAgICAgICAgICAgIDogeCgwKSwgeSgwKSwgeigwKSwgdygxKSB7IH0KLQotICAgICAg
ICBRdWF0ZXJuaW9uKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpCi0gICAgICAg
ICAgICA6IHgoeCksIHkoeSksIHooeiksIHcodykgeyB9Ci0KLSAgICAgICAgUXVhdGVybmlvbiYg
Y29uanVnYXRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgeCAqPSAtMTsKLSAgICAgICAgICAg
IHkgKj0gLTE7Ci0gICAgICAgICAgICB6ICo9IC0xOwotICAgICAgICAgICAgcmV0dXJuICp0aGlz
OwotICAgICAgICB9Ci0KLSAgICAgICAgUXVhdGVybmlvbiYgb3BlcmF0b3IqKGZsb2F0IGZhY3Rv
cikKLSAgICAgICAgewotICAgICAgICAgICAgeCAqPSBmYWN0b3I7Ci0gICAgICAgICAgICB5ICo9
IGZhY3RvcjsKLSAgICAgICAgICAgIHogKj0gZmFjdG9yOwotICAgICAgICAgICAgdyAqPSBmYWN0
b3I7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgZmxvYXQg
eCwgeSwgeiwgdzsKLSAgICB9OwotCi0gICAgc3RydWN0IEZsb2F0MyB7Ci0gICAgICAgIEZsb2F0
MyhmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKQotICAgICAgICAgICAgOiBkYXRhIHsgYSwgYiwg
YyB9IHsgfQotCi0gICAgICAgIGZsb2F0IGRhdGFbM107Ci0gICAgfTsKLQotICAgIHZvaWQgY2xl
YXIoKQotICAgIHsKLSAgICAgICAgdGltZXN0YW1wID0gMDsKLSAgICAgICAgcG9zaXRpb24gPSBX
VEY6Om51bGxvcHQ7Ci0gICAgICAgIG9yaWVudGF0aW9uID0gV1RGOjpudWxsb3B0OwotICAgICAg
ICBhbmd1bGFyQWNjZWxlcmF0aW9uID0gV1RGOjpudWxsb3B0OwotICAgICAgICBhbmd1bGFyVmVs
b2NpdHkgPSBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIGxpbmVhckFjY2VsZXJhdGlvbiA9IFdURjo6
bnVsbG9wdDsKLSAgICAgICAgbGluZWFyVmVsb2NpdHkgPSBXVEY6Om51bGxvcHQ7Ci0gICAgfQot
Ci0gICAgT3B0aW9uYWw8UXVhdGVybmlvbj4gb3JpZW50YXRpb247Ci0gICAgT3B0aW9uYWw8Rmxv
YXRQb2ludDNEPiBwb3NpdGlvbjsKLSAgICBPcHRpb25hbDxGbG9hdDM+IGFuZ3VsYXJBY2NlbGVy
YXRpb247Ci0gICAgT3B0aW9uYWw8RmxvYXQzPiBhbmd1bGFyVmVsb2NpdHk7Ci0gICAgT3B0aW9u
YWw8RmxvYXQzPiBsaW5lYXJBY2NlbGVyYXRpb247Ci0gICAgT3B0aW9uYWw8RmxvYXQzPiBsaW5l
YXJWZWxvY2l0eTsKLSAgICBkb3VibGUgdGltZXN0YW1wIHsgMCB9OwotfTsKLQotY2xhc3MgVlJQ
bGF0Zm9ybURpc3BsYXkgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIFZSUGxhdGZvcm1EaXNwbGF5SW5mbyBnZXREaXNwbGF5
SW5mbygpID0gMDsKLSAgICB2aXJ0dWFsIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gZ2V0VHJhY2tp
bmdJbmZvKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5SW5mbygpID0gMDsK
LSAgICB2aXJ0dWFsIH5WUlBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKLQotICAgIHZvaWQg
c2V0Q2xpZW50KFZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50Kik7Ci0KLSAgICBlbnVtIGNsYXNzIEV2
ZW50IHsKLSAgICAgICAgQ29ubmVjdGVkLAotICAgICAgICBEaXNjb25uZWN0ZWQsCi0gICAgICAg
IE1vdW50ZWQsCi0gICAgICAgIFVubW91bnRlZCwKLSAgICB9OwotCi0gICAgdm9pZCBub3RpZnlW
UlBsYXRmb3JtRGlzcGxheUV2ZW50KEV2ZW50KTsKLQotcHJpdmF0ZToKLSAgICBWUlBsYXRmb3Jt
RGlzcGxheUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci19OwotCi19OyAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZv
cm1EaXNwbGF5Q2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1YTE4OWRj
ODNlYTY4MzMwOGYzYThiMWQxMWY2MzhiN2M3YmYwMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSUGxhdGZvcm1E
aXNwbGF5Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5WUlBsYXRmb3JtRGlzcGxheUNs
aWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtRGlzcGxheUNvbm5lY3RlZCgp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybURpc3BsYXlEaXNjb25uZWN0ZWQoKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1EaXNwbGF5TW91bnRlZCgpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybURpc3BsYXlVbm1vdW50ZWQoKSB7IH0KLX07Ci0KLX07IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBs
YXRmb3JtTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybU1h
bmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhiMjRlZDBiNjVmZTI5MTQ1
Nzc4ZDFhMzdiZDQ3ZGVmNmZhZWI1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtTWFuYWdl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIFZSRGlzcGxheTsKLQotY2xhc3MgVlJQbGF0Zm9ybU1hbmFnZXIgewotcHVibGljOgot
ICAgIHZpcnR1YWwgVmVjdG9yPFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+PiBnZXRWUkRpc3Bs
YXlzKCkgPSAwOwotICAgIHZpcnR1YWwgflZSUGxhdGZvcm1NYW5hZ2VyKCkgPSBkZWZhdWx0Owot
fTsKLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTY1ODMwMjc2N2Q5YTExN2UwZTgyYjk2ODM1
ZjlmZWJhNDRhN2IxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9w
ZW5WUi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmgiCi0KLSNpZiBV
U0UoT1BFTlZSKQotCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXVpbnQzMl90IFZSUGxhdGZvcm1EaXNwbGF5T3BlblZSOjpzX2Rp
c3BsYXlJZGVudGlmaWVyID0gMDsKLQotVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OlZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSKHZyOjpJVlJTeXN0ZW0qIHN5c3RlbSwgdnI6OklWUkNoYXBlcm9uZSog
Y2hhcGVyb25lLCB2cjo6SVZSQ29tcG9zaXRvciogY29tcG9zaXRvcikKLSAgICA6IG1fc3lzdGVt
KHN5c3RlbSkKLSAgICAsIG1fY2hhcGVyb25lKGNoYXBlcm9uZSkKLSAgICAsIG1fY29tcG9zaXRv
cihjb21wb3NpdG9yKQotewotICAgIG1fZGlzcGxheUluZm8uc2V0RGlzcGxheUlkZW50aWZpZXIo
KytzX2Rpc3BsYXlJZGVudGlmaWVyKTsKLSAgICBtX2Rpc3BsYXlJbmZvLnNldElzQ29ubmVjdGVk
KG1fc3lzdGVtLT5Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodnI6OmtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kKSk7Ci0KLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJPcGVuVlIgSE1EIik7Ci0gICAgY2hhciBITUROYW1l
WzEyOF07Ci0gICAgaWYgKGF1dG8gbGVuZ3RoID0gbV9zeXN0ZW0tPkdldFN0cmluZ1RyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSh2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQsIHZyOjpQcm9wX01h
bnVmYWN0dXJlck5hbWVfU3RyaW5nLCBITUROYW1lLCAxMjgpKSB7Ci0gICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCIgKCIpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChITUROYW1l
LCBsZW5ndGgpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnKScpOwotICAgIH0KLSAg
ICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRJc01vdW50ZWQoZmFsc2UpOwotICAgIC8vIEZJWE1FOiBX
ZSdyZSBhc3N1bWluZyBhbiBIVEMgVml2ZSBITUQgaGVyZS4gR2V0IHRoaXMgaW5mbyBmcm9tIE9w
ZW5WUj8uCi0gICAgbV9kaXNwbGF5SW5mby5zZXRDYXBhYmlsaXR5RmxhZ3MoVlJEaXNwbGF5Q2Fw
YWJpbGl0eUZsYWdOb25lIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQb3NpdGlvbiB8IFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnT3JpZW50YXRpb24gfCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ0V4
dGVybmFsRGlzcGxheSB8IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnUHJlc2VudCk7Ci0KLSAgICBt
X2NvbXBvc2l0b3ItPlNldFRyYWNraW5nU3BhY2UodnI6OlRyYWNraW5nVW5pdmVyc2VTZWF0ZWQp
OwotCi0gICAgdXBkYXRlRXllUGFyYW1ldGVycygpOwotICAgIHVwZGF0ZVN0YWdlUGFyYW1ldGVy
cygpOwotfQotCi1WUlBsYXRmb3JtRGlzcGxheUluZm86OkZpZWxkT2ZWaWV3IFZSUGxhdGZvcm1E
aXNwbGF5T3BlblZSOjpjb21wdXRlRmllbGRPZlZpZXcodnI6OkhtZF9FeWUgZXllKQotewotICAg
IGZsb2F0IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbTsKLSAgICAvLyBPcGVuVlIgcmV0dXJucyB0
aGUgdGFuZ2VudHMgb2YgdGhlIGhhbGYtYW5nbGVzIGZyb20gdGhlIGNlbnRlciB2aWV3IGF4aXMu
Ci0gICAgbV9zeXN0ZW0tPkdldFByb2plY3Rpb25SYXcoc3RhdGljX2Nhc3Q8dnI6OkhtZF9FeWU+
KGV5ZSksICZsZWZ0LCAmcmlnaHQsICZ0b3AsICZib3R0b20pOwotICAgIHJldHVybiB7IC1yYWQy
ZGVnKGF0YW5mKHRvcCkpLCByYWQyZGVnKGF0YW5mKGJvdHRvbSkpLCAtcmFkMmRlZyhhdGFuZihs
ZWZ0KSksIHJhZDJkZWcoYXRhbmYocmlnaHQpKSB9OwotfQotCi12b2lkIFZSUGxhdGZvcm1EaXNw
bGF5T3BlblZSOjp1cGRhdGVFeWVQYXJhbWV0ZXJzKCkKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGV5
ZSA9IDA7IGV5ZSA8IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6TnVtRXllczsgKytleWUpIHsKLSAg
ICAgICAgYXV0byBwbGF0Zm9ybUV5ZSA9IHN0YXRpY19jYXN0PFZSUGxhdGZvcm1EaXNwbGF5SW5m
bzo6RXllPihleWUpOwotICAgICAgICBtX2Rpc3BsYXlJbmZvLnNldEV5ZUZpZWxkT2ZWaWV3KHBs
YXRmb3JtRXllLCBjb21wdXRlRmllbGRPZlZpZXcoc3RhdGljX2Nhc3Q8dnI6OkhtZF9FeWU+KGV5
ZSkpKTsKLQotICAgICAgICB2cjo6SG1kTWF0cml4MzRfdCBleWVUb0hlYWQgPSBtX3N5c3RlbS0+
R2V0RXllVG9IZWFkVHJhbnNmb3JtKHN0YXRpY19jYXN0PHZyOjpIbWRfRXllPihleWUpKTsKLSAg
ICAgICAgbV9kaXNwbGF5SW5mby5zZXRFeWVUcmFuc2xhdGlvbihwbGF0Zm9ybUV5ZSwgeyBleWVU
b0hlYWQubVswXVszXSwgZXllVG9IZWFkLm1bMV1bM10sIGV5ZVRvSGVhZC5tWzJdWzNdIH0pOwot
ICAgIH0KLQotICAgIHVpbnQzMl90IHdpZHRoOwotICAgIHVpbnQzMl90IGhlaWdodDsKLSAgICBt
X3N5c3RlbS0+R2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKCZ3aWR0aCwgJmhlaWdodCk7
Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRSZW5kZXJTaXplKHsgd2lkdGgsIGhlaWdodCB9KTsKLX0K
LQotdm9pZCBWUlBsYXRmb3JtRGlzcGxheU9wZW5WUjo6dXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCkK
LXsKLSAgICBmbG9hdCBwbGF5QXJlYVdpZHRoID0gMTsKLSAgICBmbG9hdCBwbGF5QXJlYURlcHRo
ID0gMTsKLSAgICBpZiAoIW1fY2hhcGVyb25lLT5HZXRQbGF5QXJlYVNpemUoJnBsYXlBcmVhV2lk
dGgsICZwbGF5QXJlYURlcHRoKSkgewotICAgICAgICAvLyBGYWxsYmFjayB0byBzZW5zaWJsZSB2
YWx1ZXMsIDFteDFtIHBsYXkgYXJlYSBhbmQgMC43NW0gaGlnaCBzZWF0ZWQgcG9zaXRpb24uIFdl
IGRvIGFzCi0gICAgICAgIC8vIEZpcmVmb3ggZG9lcy4KLSAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbWF0cml4OwotICAgICAgICBtYXRyaXguc2V0TTQyKDAuNzUpOwotICAgICAgICBtX2Rp
c3BsYXlJbmZvLnNldFNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtKFdURk1vdmUobWF0cml4KSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdnI6OkhtZE1hdHJpeDM0X3QgdHJhbnNmb3JtTWF0cml4
ID0gbV9zeXN0ZW0tPkdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQ
b3NlKCk7Ci0gICAgICAgIGF1dG8gbWF0cml4ID0gIFRyYW5zZm9ybWF0aW9uTWF0cml4KHRyYW5z
Zm9ybU1hdHJpeC5tWzBdWzBdLCB0cmFuc2Zvcm1NYXRyaXgubVsxXVswXSwgdHJhbnNmb3JtTWF0
cml4Lm1bMl1bMF0sIDAsCi0gICAgICAgICAgICB0cmFuc2Zvcm1NYXRyaXgubVswXVsxXSwgdHJh
bnNmb3JtTWF0cml4Lm1bMV1bMV0sIHRyYW5zZm9ybU1hdHJpeC5tWzJdWzFdLCAwLAotICAgICAg
ICAgICAgdHJhbnNmb3JtTWF0cml4Lm1bMF1bMl0sIHRyYW5zZm9ybU1hdHJpeC5tWzFdWzJdLCB0
cmFuc2Zvcm1NYXRyaXgubVsyXVsyXSwgMCwKLSAgICAgICAgICAgIHRyYW5zZm9ybU1hdHJpeC5t
WzBdWzNdLCB0cmFuc2Zvcm1NYXRyaXgubVsxXVszXSwgdHJhbnNmb3JtTWF0cml4Lm1bMl1bM10s
IDEpOwotICAgICAgICBtX2Rpc3BsYXlJbmZvLnNldFNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3Jt
KFdURk1vdmUobWF0cml4KSk7Ci0gICAgfQotICAgIG1fZGlzcGxheUluZm8uc2V0UGxheUFyZWFC
b3VuZHMoRmxvYXRTaXplKHBsYXlBcmVhV2lkdGgsIHBsYXlBcmVhRGVwdGgpKTsKLX0KLQotLy8g
RklYTUU6IHdlIG1pZ2h0IHdhbnQgdG8gZ2VuZXJhbGl6ZSB0aGlzIGZ1bmN0aW9uIGZvciBvdGhl
ciBiYWNrZW5kcy4KLXN0YXRpYyBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpRdWF0ZXJuaW9uIHJv
dGF0aW9uTWF0cml4VG9RdWF0ZXJuaW9uKGNvbnN0IGZsb2F0ICgmbWF0cml4KVszXVs0XSkKLXsK
LSAgICAvLyBTZWUgaHR0cHM6Ly9kM2N3M2RkMnczMngyYi5jbG91ZGZyb250Lm5ldC93cC1jb250
ZW50L3VwbG9hZHMvMjAxNS8wMS9tYXRyaXgtdG8tcXVhdC5wZGYuCi0gICAgVlJQbGF0Zm9ybVRy
YWNraW5nSW5mbzo6UXVhdGVybmlvbiBxdWF0ZXJuaW9uOwotICAgIGZsb2F0IHRyYWNlOwotICAg
IGlmIChtYXRyaXhbMl1bMl0gPCAwKSB7Ci0gICAgICAgIGlmIChtYXRyaXhbMF1bMF0gPiBtYXRy
aXhbMV1bMV0pIHsKLSAgICAgICAgICAgIHRyYWNlID0gMSArIG1hdHJpeFswXVswXSAtIG1hdHJp
eFsxXVsxXSAtIG1hdHJpeFsyXVsyXTsKLSAgICAgICAgICAgIHF1YXRlcm5pb24gPSB7IHRyYWNl
LCBtYXRyaXhbMF1bMV0rbWF0cml4WzFdWzBdLCBtYXRyaXhbMl1bMF0rbWF0cml4WzBdWzJdLCBt
YXRyaXhbMV1bMl0gLSBtYXRyaXhbMl1bMV0gfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHRyYWNlID0gMSAtIG1hdHJpeFswXVswXSArIG1hdHJpeFsxXVsxXSAtIG1hdHJpeFsyXVsy
XTsKLSAgICAgICAgICAgIHF1YXRlcm5pb24gPSB7IG1hdHJpeFswXVsxXSttYXRyaXhbMV1bMF0s
IHRyYWNlLCBtYXRyaXhbMV1bMl0rbWF0cml4WzJdWzFdLCBtYXRyaXhbMl1bMF0gLSBtYXRyaXhb
MF1bMl0gfTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChtYXRyaXhbMF1b
MF0gPCAtbWF0cml4WzFdWzFdKSB7Ci0gICAgICAgICAgICB0cmFjZSA9IDEgLSBtYXRyaXhbMF1b
MF0gLSBtYXRyaXhbMV1bMV0gKyBtYXRyaXhbMl1bMl07Ci0gICAgICAgICAgICBxdWF0ZXJuaW9u
ID0geyBtYXRyaXhbMl1bMF0rbWF0cml4WzBdWzJdLCBtYXRyaXhbMV1bMl0rbWF0cml4WzJdWzFd
LCB0cmFjZSAsIG1hdHJpeFswXVsxXSAtIG1hdHJpeFsxXVswXSB9OwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgdHJhY2UgPSAxICsgbWF0cml4WzBdWzBdICsgbWF0cml4WzFdWzFdICsg
bWF0cml4WzJdWzJdOwotICAgICAgICAgICAgcXVhdGVybmlvbiA9IHsgbWF0cml4WzFdWzJdIC0g
bWF0cml4WzJdWzFdLCBtYXRyaXhbMl1bMF0gLSBtYXRyaXhbMF1bMl0sIG1hdHJpeFswXVsxXSAt
IG1hdHJpeFsxXVswXSwgdHJhY2UgfTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcXVh
dGVybmlvbiAqICgwLjUgLyBzcXJ0KHRyYWNlKSk7Ci19Ci0KLVZSUGxhdGZvcm1UcmFja2luZ0lu
Zm8gVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OmdldFRyYWNraW5nSW5mbygpCi17Ci0gICAgdnI6
OlRyYWNrZWREZXZpY2VQb3NlX3QgcG9zZXNbdnI6OmtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnRd
OwotCi0gICAgbV9jb21wb3NpdG9yLT5XYWl0R2V0UG9zZXMobnVsbHB0ciwgMCwgcG9zZXMsIHZy
OjprX3VuTWF4VHJhY2tlZERldmljZUNvdW50KTsKLQotICAgIG1fdHJhY2tpbmdJbmZvLmNsZWFy
KCk7Ci0KLSAgICB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyB0aW1pbmc7Ci0gICAgdGltaW5n
Lm1fblNpemUgPSBzaXplb2YodnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcpOwotICAgIG1fY29t
cG9zaXRvci0+R2V0RnJhbWVUaW1pbmcoJnRpbWluZyk7Ci0gICAgbV90cmFja2luZ0luZm8udGlt
ZXN0YW1wID0gdGltaW5nLm1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwotCi0gICAgaWYgKCFwb3Nl
c1t2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWRdLmJEZXZpY2VJc0Nvbm5lY3RlZAotICAg
ICAgICB8fCAhcG9zZXNbdnI6OmtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kXS5iUG9zZUlzVmFs
aWQKLSAgICAgICAgfHwgcG9zZXNbdnI6OmtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kXS5lVHJh
Y2tpbmdSZXN1bHQgIT0gdnI6OlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0spIHsKLSAgICAgICAg
Ly8gRklYTUU6IEluaXQgc29tZSBkYXRhIG1heWJlPz8/LgotICAgICAgICByZXR1cm4gbV90cmFj
a2luZ0luZm87Ci0gICAgfQotCi0gICAgY29uc3QgYXV0byYgSE1EUG9zZSA9IHBvc2VzW3ZyOjpr
X3VuVHJhY2tlZERldmljZUluZGV4X0htZF07Ci0gICAgY29uc3QgYXV0byYgdHJhbnNmb3JtID0g
SE1EUG9zZS5tRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOwotICAgIG1fdHJhY2tpbmdJbmZvLm9y
aWVudGF0aW9uID0gcm90YXRpb25NYXRyaXhUb1F1YXRlcm5pb24odHJhbnNmb3JtLm0pOwotICAg
IG1fdHJhY2tpbmdJbmZvLm9yaWVudGF0aW9uLT5jb25qdWdhdGUoKTsKLSAgICBtX3RyYWNraW5n
SW5mby5wb3NpdGlvbiA9IEZsb2F0UG9pbnQzRCh0cmFuc2Zvcm0ubVswXVszXSwgdHJhbnNmb3Jt
Lm1bMV1bM10sIHRyYW5zZm9ybS5tWzJdWzNdKTsKLSAgICBtX3RyYWNraW5nSW5mby5hbmd1bGFy
VmVsb2NpdHkgPSBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9hdDMoSE1EUG9zZS52QW5ndWxh
clZlbG9jaXR5LnZbMF0sIEhNRFBvc2UudkFuZ3VsYXJWZWxvY2l0eS52WzFdLCBITURQb3NlLnZB
bmd1bGFyVmVsb2NpdHkudlsyXSk7Ci0gICAgbV90cmFja2luZ0luZm8ubGluZWFyVmVsb2NpdHkg
PSBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9hdDMoSE1EUG9zZS52VmVsb2NpdHkudlswXSwg
SE1EUG9zZS52VmVsb2NpdHkudlsxXSwgSE1EUG9zZS52VmVsb2NpdHkudlsyXSk7Ci0KLSAgICBy
ZXR1cm4gbV90cmFja2luZ0luZm87Ci19Ci0KLXZvaWQgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6
OnVwZGF0ZURpc3BsYXlJbmZvKCkKLXsKLSAgICBpZiAoIXZyOjpWUl9Jc0htZFByZXNlbnQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgdnI6OlZSRXZlbnRfdCBldmVudDsKLSAgICB3aGlsZSAo
bV9zeXN0ZW0gJiYgbV9zeXN0ZW0tPlBvbGxOZXh0RXZlbnQoJmV2ZW50LCBzaXplb2YoZXZlbnQp
KSkgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LmV2ZW50VHlwZSkgewotICAgICAgICBjYXNlIHZy
OjpWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkOgotICAgICAgICBj
YXNlIHZyOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZDoKLSAgICAg
ICAgICAgIGlmIChldmVudC50cmFja2VkRGV2aWNlSW5kZXggPT0gdnI6OmtfdW5UcmFja2VkRGV2
aWNlSW5kZXhfSG1kKQotICAgICAgICAgICAgICAgIG1fZGlzcGxheUluZm8uc2V0SXNNb3VudGVk
KGV2ZW50LmV2ZW50VHlwZSA9PSB2cjo6VlJFdmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0
aW9uU3RhcnRlZCA/IHRydWUgOiBmYWxzZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSB2cjo6RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQ6Ci0g
ICAgICAgIGNhc2UgdnI6OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3Rp
dmF0ZWQ6Ci0gICAgICAgICAgICBpZiAoZXZlbnQudHJhY2tlZERldmljZUluZGV4ID09IHZyOjpr
X3VuVHJhY2tlZERldmljZUluZGV4X0htZCkKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlJbmZv
LnNldElzQ29ubmVjdGVkKGV2ZW50LmV2ZW50VHlwZSA9PSB2cjo6VlJFdmVudF9UcmFja2VkRGV2
aWNlQWN0aXZhdGVkID8gdHJ1ZSA6IGZhbHNlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIHZyOjpFVlJFdmVudFR5cGU6OlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdDoKLSAg
ICAgICAgY2FzZSB2cjo6RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1F1aXQ6Ci0gICAgICAgIGNhc2Ug
dnI6OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9Qcm9jZXNzUXVpdDoKLSAgICAgICAgY2FzZSB2cjo6
RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1F1aXRBY2tub3dsZWRnZWQ6Ci0gICAgICAgIGNhc2UgdnI6
OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0OgotICAgICAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB3ZSBub3RpZnkgdGhlIHBsYXRmb3JtIG1hbmFnZXIgYWJvdXQg
dGhpcyBhbmQgY2FsbCBWUl9TaHV0ZG93bigpLgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBVU0UoT1BFTlZSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjcxYmQ5ZjBkNTg5Y2MyZjgzOWIwNjdjMjNlYzhjYjUxODEw
NjhkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBVU0UoT1BFTlZSKQotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotI2lu
Y2x1ZGUgPG9wZW52ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSIDogcHVibGljIFZSUGxhdGZvcm1EaXNwbGF5IHsKLSAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBWUlBsYXRmb3JtRGlzcGxh
eU9wZW5WUih2cjo6SVZSU3lzdGVtKiwgdnI6OklWUkNoYXBlcm9uZSosIHZyOjpJVlJDb21wb3Np
dG9yKik7Ci0KLSAgICB+VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIoKSA9IGRlZmF1bHQ7Ci0gICAg
VlJQbGF0Zm9ybURpc3BsYXlJbmZvIGdldERpc3BsYXlJbmZvKCkgb3ZlcnJpZGUgeyByZXR1cm4g
bV9kaXNwbGF5SW5mbzsgfQotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gZ2V0VHJhY2tpbmdJ
bmZvKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1cGRhdGVEaXNwbGF5SW5mbygpIG92ZXJyaWRlOwot
Ci1wcml2YXRlOgotICAgIFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgY29tcHV0
ZUZpZWxkT2ZWaWV3KHZyOjpIbWRfRXllKTsKLSAgICB2b2lkIHVwZGF0ZUV5ZVBhcmFtZXRlcnMo
KTsKLSAgICB2b2lkIHVwZGF0ZVN0YWdlUGFyYW1ldGVycygpOwotCi0gICAgc3RhdGljIHVpbnQz
Ml90IHNfZGlzcGxheUlkZW50aWZpZXI7Ci0KLSAgICB2cjo6SVZSU3lzdGVtKiBtX3N5c3RlbTsK
LSAgICB2cjo6SVZSQ2hhcGVyb25lKiBtX2NoYXBlcm9uZTsKLSAgICB2cjo6SVZSQ29tcG9zaXRv
ciogbV9jb21wb3NpdG9yOwotCi0gICAgVlJQbGF0Zm9ybURpc3BsYXlJbmZvIG1fZGlzcGxheUlu
Zm87Ci0gICAgVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyBtX3RyYWNraW5nSW5mbzsKLX07Ci0KLX07
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoT1BFTlZSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFu
YWdlck9wZW5WUi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3Y2Y3MTM3ZTMz
YWE1NWJmN2U1ODVlZTE2NGU2NzNkM2FhZWVjNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZS
UGxhdGZvcm1NYW5hZ2VyT3BlblZSLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZl
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtTWFuYWdlck9w
ZW5WUi5oIgotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaCIKLQotI2lmIFVT
RShPUEVOVlIpCi0KLSNpbmNsdWRlICJKU1ZSRGlzcGxheS5oIgotI2luY2x1ZGUgIlZSRGlzcGxh
eS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0ZDo6dW5pcXVlX3B0cjxWUlBsYXRmb3Jt
TWFuYWdlck9wZW5WUj4gVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmNyZWF0ZSgpCi17Ci0gICAg
aWYgKCF2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI+KCk7Ci19
Ci0KLVZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSOjp+VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIoKQot
ewotICAgIHZyOjpWUl9TaHV0ZG93bigpOwotfQotCi1ib29sIFZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSOjppbml0T3BlblZSKCkKLXsKLSAgICB2cjo6SG1kRXJyb3IgZXJyb3I7Ci0gICAgbV9zeXN0
ZW0gPSB2cjo6VlJfSW5pdCgmZXJyb3IsIHZyOjpWUkFwcGxpY2F0aW9uX1NjZW5lKTsKLSAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQot
Ci1WZWN0b3I8V2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4+IFZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSOjpnZXRWUkRpc3BsYXlzKCkKLXsKLSAgICAvLyBRdWlja2x5IGNoZWNrIGZvciBITURzLiBN
dWNoIGZhc3RlciB0aGFuIGluaXRpYWxpemluZyB0aGUgd2hvbGUgT3BlblZSIEFQSS4KLSAgICBp
ZiAoIXZyOjpWUl9Jc0htZFByZXNlbnQoKSkgewotICAgICAgICBtX3N5c3RlbSA9IG51bGxwdHI7
Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgaWYgKCFtX3N5c3RlbSAmJiAhaW5p
dE9wZW5WUigpKSB7Ci0gICAgICAgIG1fc3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgdnI6OlZS
X1NodXRkb3duKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgdnI6OkhtZEVy
cm9yIGVycm9yOwotICAgIHZyOjpJVlJDaGFwZXJvbmUqIGNoYXBlcm9uZSA9IHN0YXRpY19jYXN0
PHZyOjpJVlJDaGFwZXJvbmUqPih2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSh2cjo6SVZSQ2hh
cGVyb25lX1ZlcnNpb24sICZlcnJvcikpOwotICAgIGlmIChlcnJvciB8fCAhY2hhcGVyb25lKQot
ICAgICAgICByZXR1cm4geyB9OwotCi0gICAgdnI6OklWUkNvbXBvc2l0b3IqIGNvbXBvc2l0b3Ig
PSBzdGF0aWNfY2FzdDx2cjo6SVZSQ29tcG9zaXRvcio+KHZyOjpWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKHZyOjpJVlJDb21wb3NpdG9yX1ZlcnNpb24sICZlcnJvcikpOwotICAgIGlmIChlcnJvciB8
fCAhY29tcG9zaXRvcikKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3RvcjxXZWFrUHRy
PFZSUGxhdGZvcm1EaXNwbGF5Pj4gZGlzcGxheXM7Ci0gICAgaWYgKCFtX2Rpc3BsYXkpCi0gICAg
ICAgIG1fZGlzcGxheSA9IG1ha2VVbmlxdWU8VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI+KG1fc3lz
dGVtLCBjaGFwZXJvbmUsIGNvbXBvc2l0b3IpOwotICAgIGRpc3BsYXlzLmFwcGVuZChtYWtlV2Vh
a1B0cigqbV9kaXNwbGF5KSk7Ci0gICAgcmV0dXJuIGRpc3BsYXlzOwotfQotCi19OyAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKE9QRU5WUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5WUi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3BlblZS
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNzgyM2JjN2I5NWVkNDBkY2VjZGYw
ZjU3MzNlMTZkODQ0NWFhNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5h
Z2VyT3BlblZSLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2lmIFVTRShPUEVOVlIpCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtTWFuYWdlci5o
IgotCi0jaW5jbHVkZSA8b3BlbnZyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI7Ci0KLWNsYXNzIFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZS
IDogcHVibGljIFZSUGxhdGZvcm1NYW5hZ2VyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1NYW5hZ2Vy
T3BlblZSPiBjcmVhdGUoKTsKLSAgICBleHBsaWNpdCBWUlBsYXRmb3JtTWFuYWdlck9wZW5WUigp
ID0gZGVmYXVsdDsKLQotICAgIFZlY3RvcjxXZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5Pj4gZ2V0
VlJEaXNwbGF5cygpIG92ZXJyaWRlOwotCi0gICAgflZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSKCk7
Ci1wcml2YXRlOgotICAgIGJvb2wgaW5pdE9wZW5WUigpOwotCi0gICAgdnI6OklWUlN5c3RlbSog
bV9zeXN0ZW0geyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1EaXNw
bGF5T3BlblZSPiBtX2Rpc3BsYXk7Ci19OwotCi19OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gVVNFKE9QRU5WUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IGJiMDhmNWM2NWI1MTcyYjE3NmQzM2VlNTQxODJiZjA1ZmUyNmYzNDMu
LmQ1ZDY3ZmE2OWY3NDczOGY1MWNlNmM3NDdmYjk2YTM1NjY0OWY5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTIwLDcgKzEyMCw2IEBAIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNpZiBF
TkFCTEUoV0VCR0wyKQogICAgICwgbV93ZWJHTDJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR0wyRW5hYmxlZCgpKQogI2VuZGlmCi0gICAgLCBtX3dl
YlZSRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZS
RW5hYmxlZCgpKQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3NldFNjcmVlbkNh
cHR1cmVFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Ny
ZWVuQ2FwdHVyZUVuYWJsZWQoKSkKICNlbmRpZgpAQCAtMjI0LDcgKzIyMyw2IEBAIHZvaWQgSW50
ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogI2lm
IEVOQUJMRShXRUJHTDIpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRXZWJHTDJFbmFibGVkKG1fd2ViR0wyRW5hYmxlZCk7CiAjZW5kaWYKLSAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlZSRW5hYmxlZChtX3dl
YlZSRW5hYmxlZCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNjcmVlbkNhcHR1cmVFbmFibGVkKG1fc2V0
U2NyZWVuQ2FwdHVyZUVuYWJsZWQpOwogI2VuZGlmCkBAIC04MTYsMTEgKzgxNCw2IEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0V2ViR1BVRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYK
IH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRXZWJWUkVuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2Vi
VlJFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNjcmVl
bkNhcHR1cmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA2NzNkNzkw
OTQyMDk1ZTQwYjMyMTJkYThlMjk3YmNhNjJmMTAyZDI1Li4zMTZjMzg4MzhmOWZmNTkyODA4NDM4
MmU1ZTQxMTQyMDQwNTM0NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaApAQCAtMTI5LDcgKzEyOSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRJ
bmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHTDJF
bmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFdlYkdQVUVuYWJsZWQoYm9vbCk7Ci0g
ICAgc3RhdGljIHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNl
dFBpY3R1cmVJblBpY3R1cmVBUElFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFNj
cmVlbkNhcHR1cmVFbmFibGVkKGJvb2wpOwogCkBAIC0yMjAsNyArMjE5LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gUnVudGltZSBlbmFibGVkIHNldHRpbmdzLgogICAgICAgICBib29sIG1faW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV93ZWJHTDJFbmFibGVkOwotICAg
ICAgICBib29sIG1fd2ViVlJFbmFibGVkOwogICAgICAgICBib29sIG1fc2V0U2NyZWVuQ2FwdHVy
ZUVuYWJsZWQ7CiAgICAgICAgIAogICAgICAgICBib29sIG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1G
b250Rm9yQWNjZXNzaWJpbGl0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCmluZGV4IDQ1OWU5NzQxMWI3MGQ4YTc0MDI0N2I2YTU3NDQ2Y2ZlZmQ1OWQ4M2Yu
LmE5ZDQ3MWQ4ZjMyZWJiYjA0NjJiNDUwOGZjMTBmZWVlOThjMDU5NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtOTYsNyArOTYsNiBAQCBlbnVt
IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9Owog
ICAgIHZvaWQgc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAg
ICB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFdl
YkdQVUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICB2b2lkIHNldFdlYlZSRW5hYmxlZChi
b29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCmluZGV4IGI0MjEwOThlZTgxYzIzZDBiMTExYmRlZTZjY2NlNGY0MmVmN2UwMmMuLmYz
ZTUxOTgxYTdlYTFlNjNiMmVlNTNmOGRhYmZjNWIyZDY2MzEwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTM3NiwxNSArMTM3Niw2IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKICAgd2Vi
Y29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKIAotV2ViVlJFbmFibGVkOgotICB0
eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNf
RU5BQkxFRAotICBodW1hblJlYWRhYmxlTmFtZTogIldlYlZSIgotICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJXZWJWUiBNb2R1bGUgc3VwcG9ydCIKLSAgd2ViY29yZUJpbmRpbmc6IFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMKLSAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAotICBjb25kaXRpb246
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQotCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9TRVJWRVJfVElNSU5HX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggOTA0ZTM3OWFjZDg4MTUxMTkzZmMyODViNWExZTRj
NTZjZDRkMmE0ZC4uYzcyYTg5MjA0Njc1YzJkNmI1YzEzOTMzNTgwYjAxODE2MzdlMjNiNiAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UKQEAgLTkxLDcgKzkxLDYgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUo
VVNFX1dQRV9SRU5ERVJFUiAiV2hldGhlciB0byBlbmFibGUgV1BFIHJlbmRlcmluZyIgUFVCTElD
IE8KICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4gQ2hhbmdpbmcg
dGhlc2Ugb3B0aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5IGFyZSBpbnRl
bmRlZCBmb3IgdXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCiBXRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfQU5HTEVfV0VCR0wgIldoZXRoZXIgdG8gdXNlIEFOR0xFIGFzIFdlYkdMIGJhY2tl
bmQuIiBQUklWQVRFIE9GRikKLVdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOVlIgIldoZXRo
ZXIgdG8gdXNlIE9wZW5WUiBhcyBXZWJWUiBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiAKICMgRklY
TUU6IENhbiB3ZSB1c2UgY2Fpcm8tZ2xlc3YyIHRvIGF2b2lkIHRoaXMgY29uZmxpY3Q/CiBXRUJL
SVRfT1BUSU9OX0NPTkZMSUNUKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX0dM
RVMyKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCAxNDlhNTkyYzg5MWU4YjM3NWY0NDFjMTdmYjQy
MTA5OWUzYzQ3N2RjLi41ZjA5NjNjYzFhMzI1NWIzMWM2YTJmMTg2YzA3ZmYzMjA0YTA0MWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtNzUsNyArNzUsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRklO
RShVU0VfV09GRjIgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdlYiBGb250
cy4iCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV1BFX1FUX0FQSSAiV2hldGhlciB0byBl
bmFibGUgc3VwcG9ydCBmb3IgdGhlIFF0NS9RTUwgcGx1Z2luIiBQVUJMSUMgT0ZGKQogCiAjIFBy
aXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgV1BFIHBvcnQuCi1XRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIgYXMgV2ViVlIgYmFja2VuZC4i
IFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9IT0xFUFVO
Q0ggIldoZXRoZXIgdG8gZW5hYmxlIEdTdHJlYW1lciBob2xlcHVuY2giIFBSSVZBVEUgT0ZGKQog
V0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0VYVEVSTkFMX0hPTEVQVU5DSCAiV2hldGhlciB0byBl
bmFibGUgZXh0ZXJuYWwgaG9sZXB1bmNoIiBQUklWQVRFIE9GRikKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388840</attachid>
            <date>2020-01-27 01:39:15 -0800</date>
            <delta_ts>2020-01-27 16:55:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206739-20200127103853.patch</filename>
            <type>text/plain</type>
            <size>1393147</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYWYzNDBkOWY1
NmRlOTk1YzZlNjE1NWUwNjk1OTY0N2Q3OTQ5ZDRlOS4uZjU3ZWU2MWYzZWMwNDY5NjllODRmNjFk
MjRkNGQ4MjA1YjVlOThmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIw
LTAxLTI0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJlbW92ZSBXZWJWUiBmcm9tIHRoZSB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFzIFdlYlZSIGlzIGdvbmUgYW5kIHRoaXMg
aXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIG9wZW52ci9DTWFrZUxpc3RzLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvTElDRU5TRTogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvUkVBRE1FLm1kOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9SRUFETUUud2Via2l0
OiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2U6IFJlbW92
ZWQuCisgICAgICAgICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmg6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jczogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVu
dnIvaGVhZGVycy9vcGVudnJfYXBpLmpzb246IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyX2NhcGkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9v
cGVudnJfZHJpdmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3BhdGNoZXMvUGF0aF9X
cml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IFJlbW92ZWQuCisgICAg
ICAgICogb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2g6IFJlbW92ZWQuCisgICAgICAg
ICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIv
c3JjL0luZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9SRUFETUU6IFJl
bW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IFJlbW92ZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBvcGVudnIvc3JjL2pzb24vanNvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvanNvbmNwcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9vcGVudnJfYXBp
X3B1YmxpYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0
b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1v
bi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMv
dnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IFJlbW92ZWQuCisgICAgICAgICogb3BlbnZy
L3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBv
cGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1
YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRv
b2xzX3B1YmxpYy5oOiBSZW1vdmVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vdnJw
YXRocmVnaXN0cnlfcHVibGljLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBSZW1vdmVkLgorCiAyMDIwLTAxLTIxICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdHZPUyB2YWx1
ZXMgaW4gU1VQUE9SVEVEX1BMQVRGT1JNUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2NjY2NTU2MTVmZDdjZjQ5
Y2M5YjY2ZTY5MTc1Njc3NzgwZmMxMGQuLjYzMDkxMDhmOGY4MGZlMjM4ZDgxYjU4ZWQ3OWE3ZGM0
MWVhYzUzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAyMC0wMS0yNCAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2Vi
VlIgZnJvbSB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViVlIgMS4xIHdhcyBuZXZlciBjb21wbGV0ZWx5IGltcGxlbWVudGVkLCBpdCB3
YXMganVzdCBpbmNsdWRlZCBhcyBidWlsZCBvcHRpb24gb2YKKyAgICAgICAgV2ViS2l0R1RLIGFu
ZCBXUEUsIGFuZCBpdCB3YXMgbmV2ZXIgcmVsZWFzZWQgYnkgYW55IFdlYktpdCBwb3J0IGVpdGhl
ci4gVGhlcmUgYXJlIG5vIHBsYW5zCisgICAgICAgIHRvIHdvcmsgb24gaXQgYXMgaXQgaGFzIGJl
ZW4gcmVwbGFjZWQgYnkgdGhlIFdlYlhSIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJW
Ui5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBh
YmlsaXRpZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUNh
cGFiaWxpdGllcy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQu
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFz
b24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50UmVh
c29uLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSRXllLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJzLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUkV5ZVBhcmFtZXRlcnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VidnIvVlJGaWVsZE9mVmlldy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
dnIvVlJGaWVsZE9mVmlldy5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUkZyYW1l
RGF0YS5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZSUG9zZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ2ci9WUlBvc2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnZyL1ZS
UG9zZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1l
dGVycy5oOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRl
cnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBmZWF0dXJlcy5qc29uOgor
ICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViVlJFbmFibGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYlZSRW5hYmxlZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9WUk1hbmFnZXIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL3ZyL1ZSUGxhdGZvcm1NYW5hZ2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFu
YWdlck9wZW5WUi5oOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1
cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRXZWJWUkVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMjAtMDEtMjMgIFRha2FzaGkg
S29tb3JpICA8VGFrYXNoaS5Lb21vcmlAc29ueS5jb20+CiAKICAgICAgICAgS2V5ZWREZWNvZGVy
R2VuZXJpYyBjcmFzaGVzIHdoZW4gaXQgYWNjZXNzZXMgYSBkYXRhIHdpdGggZW1wdHkgc3RyaW5n
IGtleS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZTliYzcxZTM0MTg5N2U4MjgxZmYzYWQyMjhhODFkZjM1MTRlZGE3
Yy4uNTM0MzQzMDRkYTA1YTFiNTUyYjE1NTdhZGY2MTMwZTdjMzUwNTM5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMC0wMS0yNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgV2ViVlIgZnJvbSB0aGUgdHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbDogcmVtb3ZlZCBXZWJWUiBwcmVmZXJlbmNlLgorCiAyMDIwLTAxLTIzICBB
bGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10g
TmF2aWdhdGlvbiBnZXN0dXJlIGNyZWF0ZXMgQ1NTIG5vZGVzIGFuZCBkb2Vzbid0IHJlbW92ZSB0
aGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjJiMDU2YzdlY2U3NjI2OThjNjI4NTQzMzcxZWU0YzIwNThhYTZlNi4uMDg0
NGRmZjgwODg3YzFkMGZhMmU1NDA2OTMyNjIxNTQ5YjVhZjU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjEsMTMgKzIx
LDYgQEAgaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShUaGlyZFBh
cnR5L2d0ZXN0KQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0gICAgIyBPcGVuVlIgaXMg
Y29tcGlsZWQgd2l0aCAtc3RkbGliPWxpYmMrKyBhcyBkZWZhdWx0IGlmIENsYW5nIGlzIHVzZWQu
Ci0gICAgIyBEaXNhYmxlIFVTRV9MSUJDWFggbm90IHRvIHVzZSAtc3RkbGliPWxpYmMrKy4KLSAg
ICBvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9G
RikKLSAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvb3BlbnZyKQotZW5kaWYgKCkKLQog
aWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1l
KQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzYTdmOTBjZjg0YzIxZGE4NGQwYmE1ZmMyOGYxNGQ2
OGRhMmNmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvQ01ha2VMaXN0cy50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0jIFNldCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIENNYWtl
IGZvciB0aGlzIHByb2plY3QuCi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44KQot
Ci0jIFNldHVwIHNvbWUgb3B0aW9ucy4KLW9wdGlvbihCVUlMRF9TSEFSRUQgIkJ1aWxkcyB0aGUg
bGlicmFyeSBhcyBzaGFyZWQgbGlicmFyeSIgT0ZGKQotb3B0aW9uKFVTRV9MSUJDWFggIlVzZXMg
bGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPTikKLW9wdGlvbihVU0VfQ1VTVE9NX0xJQkNY
WCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLQotYWRkX2RlZmluaXRpb25zKCAtRFZSX0FQ
SV9QVUJMSUMgKQotCi0jIENoZWNrIGlmIDMyIG9yIDY0IGJpdCBzeXN0ZW0uCi1zZXQoU0laRU9G
X1ZPSURQICR7Q01BS0VfU0laRU9GX1ZPSURfUH0pCi1pZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVR
VUFMIDgpCi0gIHNldChQUk9DRVNTT1JfQVJDSCAiNjQiKQotZWxzZSgpCi0gIHNldChQUk9DRVNT
T1JfQVJDSCAiMzIiKQotZW5kaWYoKQotCi0jIEdldCBwbGF0Zm9ybS4KLWlmKFdJTjMyKQotICAg
ICAgIHNldChQTEFURk9STV9OQU1FICJ3aW4iKQotZWxzZWlmKFVOSVggQU5EIE5PVCBBUFBMRSkK
LSAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipMaW51eCIpCi0gICAgc2V0KFBMQVRG
T1JNX05BTUUgImxpbnV4IikKLSAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWCAtRFBPU0lYKQot
ICAgIGlmKFBST0NFU1NPUl9BUkNIIE1BVENIRVMgIjY0IikKLSAgICAgICAgYWRkX2RlZmluaXRp
b25zKC1ETElOVVg2NCkKLSAgICBlbmRpZigpCi0gIGVuZGlmKCkKLWVsc2VpZihBUFBMRSkKLSAg
aWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipEYXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVN
X05BTUUgTUFUQ0hFUyAiLipNYWNPUy4qIikKLSAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikK
LSAgICBhZGRfZGVmaW5pdGlvbnMoLURPU1ggLURQT1NJWCkKLSAgZW5kaWYoKQotZW5kaWYoKQot
Ci0jIEVuYWJsZSBzb21lIHByb3BlcnRpZXMuCi1pZihDTUFLRV9DT01QSUxFUl9JU19HTlVDQyBP
UiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKLSAgICAgICAjIEVuYWJsZSBj
KysxMSBhbmQgaGlkZSBzeW1ib2xzIHdoaWNoIHNob3VsZG4ndCBiZSB2aXNpYmxlCi0gICAgICAg
c2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEgLWZQSUMg
LWZ2aXNpYmlsaXR5PWhpZGRlbiIpCi0KLSAgICAgICAjIFNldCBjdXN0b20gbGliYysrIHVzYWdl
IGhlcmUKLSAgICAgICBpZihDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIiBBTkQg
VVNFX0xJQkNYWCkKLSAgICAgICAgICAgICAgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCi0gICAgICAg
ICAgICAgICAgICAgICBpZihCVUlMRF9TSEFSRUQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgZW5kaWYoKQotICAg
ICAgICAgICAgICAgICAgICAgc2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9
IC1ub3N0ZGluYysrIikKLSAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMo
ICR7TElCQ1hYX0lOQ0xVREV9ICR7TElCQ1hYX0FCSV9JTkNMVURFfSkKLSAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2UoU1RBVFVTICJVc2luZyBjdXN0b20gbGliYysrIikKLSAgICAgICAgICAg
ICAgZWxzZSgpCi0gICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NN
QUtFX0NYWF9GTEFHU30gLXN0ZGxpYj1saWJjKysiKQotICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZShTVEFUVVMgIlVzaW5nIGxpYmMrKyIpCi0gICAgICAgICAgICAgIGVuZGlmKCkKLSAgICAg
ICBlbmRpZigpCi1lbmRpZigpCi0KLWFkZF9zdWJkaXJlY3Rvcnkoc3JjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0xJQ0VOU0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4MzMzN2Q3ZmNiNzI2
ZDE0Y2MxMGY3ZGQyZmRhNjc5OWQ4YTEzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQorKysgL2Rl
di9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUNvcHlyaWdodCAoYykgMjAxNSwgVmFsdmUgQ29ycG9y
YXRpb24KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1h
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6Ci0KLTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLXRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yCi1vdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotCi0zLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKLXNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAot
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLURJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUubWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9SRUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1PcGVuVlIgU0RLCi0t
LS0KLQotT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0IGFsbG93cyBhY2Nlc3MgdG8g
VlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKLXZlbmRvcnMgd2l0aG91dCByZXF1aXJpbmcgdGhh
dCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ugb2YgdGhlIAotaGFyZHdhcmUg
dGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMgYW4gU0RLIHRoYXQgY29udGFp
bnMgdGhlIEFQSSAKLWFuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBpcyB1bmRlciBTdGVhbVZSIGlu
IFRvb2xzIG9uIFN0ZWFtLiAKLQotIyMjIERvY3VtZW50YXRpb24KLQotRG9jdW1lbnRhdGlvbiBm
b3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIgV2lraV0oaHR0cHM6Ly9naXRo
dWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURvY3VtZW50YXRpb24pCi0KLU1v
cmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNhbiBiZSBmb3VuZCBvbiBodHRw
Oi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYmI3NmVmMTZmMmVlYjNjNGI2Nzc5ZTFjM2Q5MGVi
ZTI0NTIwMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGlzIGlzIHRoZSBPcGVuVlIgbGlicmFyeSBmcm9tCi1odHRwczovL2dp
dGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIKLQotVXBzdHJlYW0gY29kZSBjYW4gYmUgdmll
d2VkIGF0Ci0gaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3RyZWUvbWFz
dGVyLwotCi1hbmQgY2xvbmVkIGJ5Ci0gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9WYWx2
ZVNvZnR3YXJlL29wZW52ci5naXQKLQotQ3VycmVudCB2ZXJzaW9uOiBbY29tbWl0IGViZGVhMTUy
ZjhhYWM3N2U5YTZkYjI5NjgyYjgxZDc2MjE1OWRmN2VdCi0KLXdoaWNoIGNvcnJlc3BvbmRzIHRv
IDEuMC4xMCByZWxlYXNlLgotCi1XZWJLaXQgY2hhbmdlczoKLSogcGF0Y2hlcy9jbWFrZS1idWls
ZC5wYXRjaDogc2NyaXB0IHVzZWQgdG8gYWxsb3cgb3BlbnZyIENNYWtlIGJ1aWxkIHRvIGJlCi1p
bnRlZ3JhdGVkIGludG8gV2ViS2l0IGJ1aWxkCi0qIHBhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZp
bGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2g6IHN1cHByZXNzZXMgYQotY29tcGlsZXIgd2Fy
bmluZywgYnV0IG90aGVyd2lzZSBhbHJlYWR5IGFwcGxpZWQgdXBzdHJlYW0gaW4gMS4wLjEyCi0q
IFJlbW92ZWQgYmluLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMgaXQgaW5jbHVkZXMgcHJlY29t
cGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgbGliLyBkaXJlY3RvcnkuIE5vdCBuZWVkZWQgYXMg
aXQgaW5jbHVkZXMgcHJlY29tcGlsZWQgbGlicmFyaWVzCi0qIFJlbW92ZWQgY29udHJvbGxlcl9j
YWxsb3V0cy8gZGlyZWN0b3J5LiBVbm5lZWRlZCBkb2NzCi0qIFJlbW92ZWQgc2FtcGxlcy8gZGly
ZWN0b3J5LgotKiBSZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2UgY2hlY2std2Vi
a2l0LXN0eWxlIGhhcHB5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rv
b2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4t
Y2xhbmcuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNmIwYWMwMTc1YTZl
MzRiNTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFu
Zy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotc2V0KENNQUtFX1NZU1RFTV9O
QU1FIExpbnV4KQotCi1zZXQoQ01BS0VfQ19DT01QSUxFUiBjbGFuZykKLXNldChDTUFLRV9DWFhf
Q09NUElMRVIgY2xhbmcrKykKLQotc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUFJPR1JB
TSBORVZFUikKLXNldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0xJQlJBUlkgT05MWSkKLXNl
dChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lOQ0xVREUgT05MWSkKLXNldChDTUFLRV9GSU5E
X1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0UgT05MWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NmU0OWE2YWM1
MzEwODBjNWY0MzAzZTVjMTVjZjkzZTExZmEyZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3Bl
bnZyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNzc3ICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0v
LyBvcGVudnIuaAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09
PT09PT09PS8vCi0vLyBEeW5hbWljYWxseSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IG1vZGlmeSB0
aGlzIGZpbGUgZGlyZWN0bHkuCi0KLSNpZm5kZWYgX09QRU5WUl9BUEkKLSNkZWZpbmUgX09QRU5W
Ul9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0jaWZuZGVm
IF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQotLy8gRm9y
d2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1Y3QgVmtE
ZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0YW5jZV9U
Owotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQg
cmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJRDNEMTJD
b21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkK
LQotdHlwZWRlZiB2b2lkKiBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgaW50MzJf
dCBnbEludF90OwotdHlwZWRlZiB1aW50MzJfdCBnbFVJbnRfdDsKLQotLy8gcmlnaHQtaGFuZGVk
IHN5c3RlbQotLy8gK3kgaXMgdXAKLS8vICt4IGlzIHRvIHRoZSByaWdodAotLy8gLXogaXMgZ29p
bmcgYXdheSBmcm9tIHlvdQotLy8gRGlzdGFuY2UgdW5pdCBpcyAgbWV0ZXJzCi1zdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIGZsb2F0IG1bM11bNF07Ci19OwotCi1zdHJ1Y3QgSG1kTWF0
cml4NDRfdAotewotICAgICAgIGZsb2F0IG1bNF1bNF07Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9y
M190Ci17Ci0gICAgICAgZmxvYXQgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3I0X3QKLXsK
LSAgICAgICBmbG9hdCB2WzRdOwotfTsKLQotc3RydWN0IEhtZFZlY3RvcjNkX3QKLXsKLSAgICAg
ICBkb3VibGUgdlszXTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOwotfTsKLQotc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAgICAgIGRvdWJsZSB3
LCB4LCB5LCB6OwotfTsKLQotc3RydWN0IEhtZENvbG9yX3QKLXsKLSAgICAgICBmbG9hdCByLCBn
LCBiLCBhOwotfTsKLQotc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIEhtZFZlY3RvcjNfdCB2
Q29ybmVyc1sgNCBdOwotfTsKLQotc3RydWN0IEhtZFJlY3QyX3QKLXsKLSAgICAgICBIbWRWZWN0
b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX07Ci0K
LS8qKiBVc2VkIHRvIHJldHVybiB0aGUgcG9zdC1kaXN0b3J0aW9uIFVWcyBmb3IgZWFjaCBjb2xv
ciBjaGFubmVsLiAKLSogVVZzIHJhbmdlIGZyb20gMCB0byAxIHdpdGggMCwwIGluIHRoZSB1cHBl
ciBsZWZ0IGNvcm5lciBvZiB0aGUgCi0qIHNvdXJjZSByZW5kZXIgdGFyZ2V0LiBUaGUgMCwwIHRv
IDEsMSByYW5nZSBjb3ZlcnMgYSBzaW5nbGUgZXllLiAqLwotc3RydWN0IERpc3RvcnRpb25Db29y
ZGluYXRlc190Ci17Ci0gICAgICAgZmxvYXQgcmZSZWRbMl07Ci0gICAgICAgZmxvYXQgcmZHcmVl
blsyXTsKLSAgICAgICBmbG9hdCByZkJsdWVbMl07Ci19OwotCi1lbnVtIEVWUkV5ZQotewotICAg
ICAgIEV5ZV9MZWZ0ID0gMCwKLSAgICAgICBFeWVfUmlnaHQgPSAxCi19OwotCi1lbnVtIEVUZXh0
dXJlVHlwZQotewotICAgICAgIFRleHR1cmVUeXBlX0RpcmVjdFggPSAwLCAvLyBIYW5kbGUgaXMg
YW4gSUQzRDExVGV4dHVyZQotICAgICAgIFRleHR1cmVUeXBlX09wZW5HTCA9IDEsICAvLyBIYW5k
bGUgaXMgYW4gT3BlbkdMIHRleHR1cmUgbmFtZSBvciBhbiBPcGVuR0wgcmVuZGVyIGJ1ZmZlciBu
YW1lLCBkZXBlbmRpbmcgb24gc3VibWl0IGZsYWdzCi0gICAgICAgVGV4dHVyZVR5cGVfVnVsa2Fu
ID0gMiwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBhIFZSVnVsa2FuVGV4dHVyZURhdGFfdCBz
dHJ1Y3R1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLCAvLyBIYW5kbGUgaXMg
YSBtYWNPUyBjcm9zcy1wcm9jZXNzLXNoYXJhYmxlIElPU3VyZmFjZVJlZgotICAgICAgIFRleHR1
cmVUeXBlX0RpcmVjdFgxMiA9IDQsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBEM0QxMlRl
eHR1cmVEYXRhX3Qgc3RydWN0dXJlCi19OwotCi1lbnVtIEVDb2xvclNwYWNlCi17Ci0gICAgICAg
Q29sb3JTcGFjZV9BdXRvID0gMCwgICAgICAgLy8gQXNzdW1lcyAnZ2FtbWEnIGZvciA4LWJpdCBw
ZXIgY29tcG9uZW50IGZvcm1hdHMsIG90aGVyd2lzZSAnbGluZWFyJy4gIFRoaXMgbWlycm9ycyB0
aGUgRFhHSSBmb3JtYXRzIHdoaWNoIGhhdmUgX1NSR0IgdmFyaWFudHMuCi0gICAgICAgQ29sb3JT
cGFjZV9HYW1tYSA9IDEsICAgICAgIC8vIFRleHR1cmUgZGF0YSBjYW4gYmUgZGlzcGxheWVkIGRp
cmVjdGx5IG9uIHRoZSBkaXNwbGF5IHdpdGhvdXQgYW55IGNvbnZlcnNpb24gKGEuay5hLiBkaXNw
bGF5IG5hdGl2ZSBmb3JtYXQpLgotICAgICAgIENvbG9yU3BhY2VfTGluZWFyID0gMiwgICAgICAg
Ly8gU2FtZSBhcyBnYW1tYSBidXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgbGluZWFyIHJlcHJl
c2VudGF0aW9uIHVzaW5nIERYR0kncyBzUkdCIGNvbnZlcnNpb24gYWxnb3JpdGhtLgotfTsKLQot
c3RydWN0IFRleHR1cmVfdAotewotICAgICAgIHZvaWQqIGhhbmRsZTsgLy8gU2VlIEVUZXh0dXJl
VHlwZSBkZWZpbml0aW9uIGFib3ZlCi0gICAgICAgRVRleHR1cmVUeXBlIGVUeXBlOwotICAgICAg
IEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOwotfTsKLQotLy8gSGFuZGxlIHRvIGEgc2hhcmVkIHRl
eHR1cmUgKEhBTkRMRSBvbiBXaW5kb3dzIG9idGFpbmVkIHVzaW5nIE9wZW5TaGFyZWRSZXNvdXJj
ZSkuCi10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLSNkZWZpbmUgSU5W
QUxJRF9TSEFSRURfVEVYVFVSRV9IQU5ETEUgICAgICAgKCh2cjo6U2hhcmVkVGV4dHVyZUhhbmRs
ZV90KTApCi0KLWVudW0gRVRyYWNraW5nUmVzdWx0Ci17Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRf
VW5pbml0aWFsaXplZCAgICAgICAgICAgICAgICAgICAgID0gMSwKLQotICAgICAgIFRyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgICAgICAgPSAxMDAsCi0gICAgICAgVHJhY2tp
bmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSAgICAgICA9IDEwMSwKLQotICAgICAgIFRy
YWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAs
Ci0gICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlICAgICAgICAgICAgICA9
IDIwMSwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgRHJpdmVySWRfdDsKLXN0YXRpYyBjb25zdCB1
aW50MzJfdCBrX25Ecml2ZXJOb25lID0gMHhGRkZGRkZGRjsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotCi0vKiogVXNlZCB0
byBwYXNzIGRldmljZSBJRHMgdG8gQVBJIGNhbGxzICovCi10eXBlZGVmIHVpbnQzMl90IFRyYWNr
ZWREZXZpY2VJbmRleF90Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kID0gMDsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmlj
ZUNvdW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRl
eE90aGVyID0gMHhGRkZGRkZGRTsKLXN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERl
dmljZUluZGV4SW52YWxpZCA9IDB4RkZGRkZGRkY7Ci0KLS8qKiBEZXNjcmliZXMgd2hhdCBraW5k
IG9mIG9iamVjdCBpcyBiZWluZyB0cmFja2VkIGF0IGEgZ2l2ZW4gSUQgKi8KLWVudW0gRVRyYWNr
ZWREZXZpY2VDbGFzcwotewotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIElEIHdhcyBub3QgdmFsaWQuCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX0hNRCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBIZWFkLU1vdW50ZWQgRGlzcGxheXMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfQ29udHJvbGxlciA9IDIsICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9s
bGVycwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAg
ICAgICAgICAvLyBHZW5lcmljIHRyYWNrZXJzLCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCi0gICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2Ft
ZXJhIGFuZCBiYXNlIHN0YXRpb25zIHRoYXQgc2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBv
aW50cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19EaXNwbGF5UmVkaXJlY3QgPSA1LCAgICAg
ICAgICAgICAgLy8gQWNjZXNzb3JpZXMgdGhhdCBhcmVuJ3QgbmVjZXNzYXJpbHkgdHJhY2tlZCB0
aGVtc2VsdmVzLCBidXQgbWF5IHJlZGlyZWN0IHZpZGVvIG91dHB1dCBmcm9tIG90aGVyIHRyYWNr
ZWQgZGV2aWNlcwotfTsKLQotCi0vKiogRGVzY3JpYmVzIHdoYXQgc3BlY2lmaWMgcm9sZSBhc3Nv
Y2lhdGVkIHdpdGggYSB0cmFja2VkIGRldmljZSAqLwotZW51bSBFVHJhY2tlZENvbnRyb2xsZXJS
b2xlCi17Ci0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxl
ciB0eXBlCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0gMSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQg
d2l0aCB0aGUgbGVmdCBoYW5kCi0gICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFu
ZCA9IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29j
aWF0ZWQgd2l0aCB0aGUgcmlnaHQgaGFuZAotfTsKLQotCi0vKiogZGVzY3JpYmVzIGEgc2luZ2xl
IHBvc2UgZm9yIGEgdHJhY2tlZCBvYmplY3QgKi8KLXN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOwotICAg
ICAgIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHZlbG9jaXR5IGluIHRyYWNrZXIgc3BhY2UgaW4gbS9zCi0gICAgICAgSG1kVmVjdG9yM190IHZB
bmd1bGFyVmVsb2NpdHk7ICAgICAgICAgICAgICAvLyBhbmd1bGFyIHZlbG9jaXR5IGluIHJhZGlh
bnMvcyAoPykKLSAgICAgICBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAg
IGJvb2wgYlBvc2VJc1ZhbGlkOwotCi0gICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVy
ZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgZm9yIHRoaXMgc3BvdCBpbiB0aGUgcG9zZSBhcnJheS4K
LSAgICAgICAvLyBJdCBjb3VsZCBnbyBmcm9tIHRydWUgdG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5w
bHVncyB0aGUgZGV2aWNlLgotICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOwotfTsKLQot
LyoqIElkZW50aWZpZXMgd2hpY2ggc3R5bGUgb2YgdHJhY2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNh
dGlvbiB3YW50cyB0byB1c2UKLSogZm9yIHRoZSBwb3NlcyBpdCBpcyByZXF1ZXN0aW5nICovCi1l
bnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgVHJhY2tpbmdVbml2ZXJzZVNl
YXRlZCA9IDAsICAgICAgICAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8g
dGhlIHNlYXRlZCB6ZXJvIHBvc2UKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAx
LCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNhZmUgYm91bmRz
IGNvbmZpZ3VyZWQgYnkgdGhlIHVzZXIKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5j
YWxpYnJhdGVkID0gMiwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBjb29yZGlu
YXRlIHN5c3RlbSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5p
ZmllZCBmb3IgZGV2aWNlcyBvZiB0aGUgc2FtZSBkcml2ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdh
bnQgdGhpcyBvbmUuCi19OwotCi0vLyBSZWZlcnMgdG8gYSBzaW5nbGUgY29udGFpbmVyIG9mIHBy
b3BlcnRpZXMKLXR5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKLXR5
cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7Ci0KLXN0YXRpYyBjb25zdCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOwot
Ci0vLyBVc2UgdGhlc2UgdGFncyB0byBzZXQvZ2V0IGNvbW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJv
cGVydGllcwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5
VGFnID0gMTsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0
eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blVpbnQ2NFByb3Bl
cnR5VGFnID0gMzsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuQm9vbFByb3Bl
cnR5VGFnID0gNDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJv
cGVydHlUYWcgPSA1OwotCi1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1h
dHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKLXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuSG1kTWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKLXN0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7Ci0K
LXN0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZl
ZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5W
UkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7Ci0KLQotLyoqIEVhY2ggZW50cnkgaW4gdGhp
cyBlbnVtIHJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQg
YQotKiB0cmFja2VkIGRldmljZS4gTWFueSBmaWVsZHMgYXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBF
VHJhY2tlZERldmljZUNsYXNzLiAqLwotZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5Ci17Ci0g
ICAgICAgUHJvcF9JbnZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDAsCi0KLSAgICAgICAvLyBnZW5lcmFsIHByb3BlcnRpZXMgdGhh
dCBhcHBseSB0byBhbGwgZGV2aWNlIGNsYXNzZXMKLSAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVt
TmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotICAgICAgIFBy
b3BfTW9kZWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAxLAotICAgICAgIFByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxO
YW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAzLAotICAg
ICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDA0LAotICAgICAgIFByb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDA1LAotICAgICAgIFByb3BfVHJhY2tpbmdGaXJtd2Fy
ZVZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA2LAotICAgICAgIFByb3Bf
SGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA3
LAotICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nICAgICAg
ID0gMTAwOCwKLSAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gMTAwOSwKLSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9v
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDEwLAotICAgICAgIFByb3Bf
RGV2aWNlSXNDaGFyZ2luZ19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMTEsCi0gICAgICAgUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gMTAxMiwgLy8gMCBpcyBlbXB0eSwgMSBpcyBmdWxsCi0gICAgICAgUHJv
cF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICA9IDEwMTMsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCAgICAgICAgICAgICAgICAg
ICAgID0gMTAxNCwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxNSwKLSAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVh
bFVwZGF0ZVVSTF9TdHJpbmcgICAgICAgICAgICAgID0gMTAxNiwKLSAgICAgICBQcm9wX0hhcmR3
YXJlUmV2aXNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNywKLSAg
ICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxOCwKLSAgICAgICBQcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxOSwKLSAgICAgICBQcm9wX1ZS
Q1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDIwLAotICAgICAgIFByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMiwKLSAgICAgICBQcm9w
X0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MjMsCi0gICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAg
ICAgPSAxMDI0LAotICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCAgICAg
ICAgICAgICAgICAgICAgID0gMTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVy
eVN0YXR1c19Cb29sICAgICAgICAgICAgICA9IDEwMjYsCi0gICAgICAgUHJvcF9EZXZpY2VDYW5Q
b3dlck9mZl9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjcsCi0g
ICAgICAgUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgICAgICAgICAgICAg
ID0gMTAyOCwKLSAgICAgICBQcm9wX0RldmljZUNsYXNzX0ludDMyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDI5LAotICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jv
b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMw
LAotICAgICAgIFByb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgPSAx
MDMxLAotICAgICAgIFByb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sICAgICAg
PSAxMDMyLAotICAgICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAg
ICAgICAgICAgID0gMTAzMywKLSAgICAgICBQcm9wX1BhcmVudERyaXZlcl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNCwKLSAgICAgICBQcm9wX1Jlc291cmNl
Um9vdF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzNSwKLQot
ICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFz
c19ITUQKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bo
b3RvbnNfRmxvYXQgICAgICAgICAgICAgID0gMjAwMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGcmVx
dWVuY3lfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwMiwKLSAg
ICAgICBQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAwMywKLSAgICAgICBQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDQsIAotICAgICAgIFByb3BfUHJldmlvdXNVbml2
ZXJzZUlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDUsIAotICAgICAg
IFByb3BfRGlzcGxheUZpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9
IDIwMDYsCi0gICAgICAgUHJvcF9Jc09uRGVza3RvcF9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDA3LAotICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA4LAotICAgICAgIFBy
b3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMDksCi0gICAgICAgUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDExLAotICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmluZyAgICAgICAgICAgICAgPSAyMDEyLAot
ICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgICAgICAgICAgICAgPSAyMDEz
LAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTUsCi0gICAgICAgUHJvcF9DYW1lcmFU
b0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAgICAgICAgICA9IDIwMTYsCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMTcsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ1Nj
YWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTksCi0gICAg
ICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMjAsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAyMSwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIyLAotICAgICAg
IFByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjQsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVy
UmlnaHRWX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjUsCi0g
ICAgICAgUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICA9IDIwMjYsCi0gICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVEZXNj
cmlwdGlvbl9TdHJpbmcgICAgICAgICAgICAgID0gMjAyOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlG
UEdBVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI5LAotICAg
ICAgIFByb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgPSAy
MDMwLAotICAgICAgIFByb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzEsCi0gICAgICAgUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMzIsCi0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRp
YmlsaXR5TW9kZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgID0gMjAzMywKLSAgICAgICBQcm9w
X1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNCwKLSAg
ICAgICBQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzUsCi0gICAgICAgUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMzYsCi0gICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1v
ZGVfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzcsCi0gICAgICAgUHJvcF9E
aXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
OCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5l
bHNfSW50MzIgICAgICAgICAgICAgID0gMjA0MCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQxLAotICAgICAgIFBy
b3BfU2Vjb25kc0Zyb21QaG90b25zVG9WYmxhbmtfRmxvYXQgICAgICAgICAgICAgID0gMjA0MiwK
LSAgICAgICBQcm9wX0RyaXZlckRpcmVjdE1vZGVTZW5kc1ZzeW5jRXZlbnRzX0Jvb2wgICAgICAg
PSAyMDQzLAotICAgICAgIFByb3BfRGlzcGxheURlYnVnTW9kZV9Cb29sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwNDQsCi0gICAgICAgUHJvcF9HcmFwaGljc0FkYXB0ZXJM
dWlkX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDUsCi0gICAgICAgUHJv
cF9Ecml2ZXJQcm92aWRlZENoYXBlcm9uZVBhdGhfU3RyaW5nICAgICAgICAgICAgICA9IDIwNDgs
Ci0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2aWNl
Q2xhc3NfQ29udHJvbGxlcgotICAgICAgIFByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAwLAotICAgICAgIFByb3BfU3VwcG9ydGVkQnV0
dG9uc19VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAxLAotICAgICAgIFBy
b3BfQXhpczBUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDAyLCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5
cGUKLSAgICAgICBQcm9wX0F4aXMxVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwMywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMlR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDQsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczNUeXBlX0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA1LCAvLyBSZXR1
cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAgICBQcm9wX0F4
aXM0VHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwNiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0g
ICAgICAgUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDA3LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVHJhY2tlZENvbnRyb2xs
ZXJSb2xlCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2Vk
RGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDAsCi0gICAgICAgUHJvcF9G
aWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMSwK
LSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAg
ICAgID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCAg
ICAgICAgICAgICAgICAgICAgID0gNDAwMywKLSAgICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNaW5p
bXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2lu
Z1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA1LAotICAgICAgIFBy
b3BfTW9kZUxhYmVsX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNDAwNiwKLQotICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBmb3IgdXNl
ciBpbnRlcmZhY2UgbGlrZSBpY29ucyBuYW1lcwotICAgICAgIFByb3BfSWNvblBhdGhOYW1lX1N0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMCwgLy8g
REVQUkVDQVRFRC4gVmFsdWUgbm90IHJlZmVyZW5jZWQuIE5vdyBleHBlY3RlZCB0byBiZSBwYXJ0
IG9mIGljb24gcGF0aCBwcm9wZXJ0aWVzLgotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDAxLCAvLyB7ZHJpdmVy
fS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBh
bmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAgICAgICAgICAgID0g
NTAwMiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9T
dHJpbmcgICAgICAgPSA1MDAzLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5H
IGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0
cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJl
YWR5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8ge2RyaXZlcn0vaWNvbnMv
aWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9u
LCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyAgICAgICAgICAgICAgPSA1MDA1LCAv
LyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3Ig
R0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVy
cwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyAgICAgICAg
ICAgICAgICAgICAgID0gNTAwNiwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBO
RyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNl
dHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8ge2RyaXZlcn0vaWNv
bnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0
aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9
IDUwMDgsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBp
Y29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBm
b3Igb3RoZXJzCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgYnkgaGVscGVy
cywgYnV0IGFyZSBvcGFxdWUgdG8gYXBwbGljYXRpb25zCi0gICAgICAgUHJvcF9EaXNwbGF5SGlk
ZGVuQXJlYV9CaW5hcnlfU3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAwLAot
ICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X0VuZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUxNTAsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1
ZSB0byBkcml2ZXJzCi0gICAgICAgUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMCwKLSAgICAgICBQcm9wX0luc3RhbGxQYXRo
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMSwK
LSAgICAgICBQcm9wX0hhc0Rpc3BsYXlDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDYwMDIsCi0gICAgICAgUHJvcF9IYXNDb250cm9sbGVyQ29tcG9uZW50X0Jvb2wg
ICAgICAgICAgICAgICAgICAgICA9IDYwMDMsCi0gICAgICAgUHJvcF9IYXNDYW1lcmFDb21wb25l
bnRfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDQsCi0gICAgICAgUHJvcF9I
YXNEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0gNjAwNSwKLSAg
ICAgICBQcm9wX0hhc1ZpcnR1YWxEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgID0g
NjAwNiwKLQotICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZGVi
dWcgZGF0YSBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFByb3BfVmVuZG9yU3BlY2lm
aWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgICAgICAgICAgICAgICA9IDEwMDAwLAotICAgICAgIFBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDk5
OSwKLX07Ci0KLS8qKiBObyBzdHJpbmcgcHJvcGVydHkgd2lsbCBldmVyIGJlIGxvbmdlciB0aGFu
IHRoaXMgbGVuZ3RoICovCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFByb3BlcnR5U3Ry
aW5nU2l6ZSA9IDMyICogMTAyNDsKLQotLyoqIFVzZWQgdG8gcmV0dXJuIGVycm9ycyB0aGF0IG9j
Y3VyIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLiAqLwotZW51bSBFVHJhY2tlZFByb3BlcnR5RXJy
b3IKLXsKLSAgICAgICBUcmFja2VkUHJvcF9TdWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAotICAgICAgIFRyYWNrZWRQcm9wX1dyb25n
RGV2aWNlQ2xhc3MgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAgVHJhY2tlZFByb3Bf
QnVmZmVyVG9vU21hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQs
IC8vIERyaXZlciBoYXMgbm90IHNldCB0aGUgcHJvcGVydHkgKGFuZCBtYXkgbm90IGV2ZXIpLgot
ICAgICAgIFRyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1LAotICAgICAgIFRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciAgICAgICAg
ICAgICAgPSA2LAotICAgICAgIFRyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURldmljZSAg
ICAgICA9IDcsCi0gICAgICAgVHJhY2tlZFByb3BfU3RyaW5nRXhjZWVkc01heGltdW1MZW5ndGgg
ICAgICAgPSA4LAotICAgICAgIFRyYWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDksIC8vIFRoZSBwcm9wZXJ0eSB2YWx1ZSBpc24ndCBrbm93biB5
ZXQsIGJ1dCBpcyBleHBlY3RlZCBzb29uLiBDYWxsIGFnYWluIGxhdGVyLgotICAgICAgIFRyYWNr
ZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAg
IFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICA9IDExLAot
fTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udHJvbCB3aGF0IHBhcnQgb2Yg
dGhlIHByb3ZpZGVkIHRleHR1cmUgd2lsbCBiZSB1c2VkIGluIHRoZQotKiBmcmFtZSBidWZmZXIu
ICovCi1zdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QKLXsKLSAgICAgICBmbG9hdCB1TWluLCB2TWlu
OwotICAgICAgIGZsb2F0IHVNYXgsIHZNYXg7Ci19OwotCi0vKiogQWxsb3dzIHNwZWNpZnlpbmcg
cG9zZSB1c2VkIHRvIHJlbmRlciBwcm92aWRlZCBzY2VuZSB0ZXh0dXJlIChpZiBkaWZmZXJlbnQg
ZnJvbSB2YWx1ZSByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMpLiAqLwotc3RydWN0IFZSVGV4dHVy
ZVdpdGhQb3NlX3QgOiBwdWJsaWMgVGV4dHVyZV90Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBt
RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOyAvLyBBY3R1YWwgcG9zZSB1c2VkIHRvIHJlbmRlciBz
Y2VuZSB0ZXh0dXJlcy4KLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRy
b2wgaG93IHNjZW5lIHRleHR1cmVzIGFyZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yIHdoZW4gY2Fs
bGluZyBTdWJtaXQuICovCi1lbnVtIEVWUlN1Ym1pdEZsYWdzCi17Ci0gICAgICAgLy8gU2ltcGxl
IHJlbmRlciBwYXRoLiBBcHAgc3VibWl0cyByZW5kZXJlZCBsZWZ0IGFuZCByaWdodCBleWUgaW1h
Z2VzIHdpdGggbm8gbGVucyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24gYXBwbGllZC4KLSAgICAgICBT
dWJtaXRfRGVmYXVsdCA9IDB4MDAsCi0KLSAgICAgICAvLyBBcHAgc3VibWl0cyBmaW5hbCBsZWZ0
IGFuZCByaWdodCBleWUgaW1hZ2VzIHdpdGggbGVucyBkaXN0b3J0aW9uIGFscmVhZHkgYXBwbGll
ZCAobGVucyBkaXN0b3J0aW9uIG1ha2VzIHRoZSBpbWFnZXMgYXBwZWFyCi0gICAgICAgLy8gYmFy
cmVsIGRpc3RvcnRlZCB3aXRoIGNocm9tYXRpYyBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYXBwbGll
ZCkuIFRoZSBhcHAgd291bGQgaGF2ZSB1c2VkIHRoZSBkYXRhIHJldHVybmVkIGJ5Ci0gICAgICAg
Ly8gdnI6OklWUlN5c3RlbTo6Q29tcHV0ZURpc3RvcnRpb24oKSB0byBhcHBseSB0aGUgY29ycmVj
dCBkaXN0b3J0aW9uIHRvIHRoZSByZW5kZXJlZCBpbWFnZXMgYmVmb3JlIGNhbGxpbmcgU3VibWl0
KCkuCi0gICAgICAgU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAweDAxLAot
Ci0gICAgICAgLy8gSWYgdGhlIHRleHR1cmUgcG9pbnRlciBwYXNzZWQgaW4gaXMgYWN0dWFsbHkg
YSByZW5kZXJidWZmZXIgKGUuZy4gZm9yIE1TQUEgaW4gT3BlbkdMKSB0aGVuIHNldCB0aGlzIGZs
YWcuCi0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMHgwMiwKLQotICAgICAgIC8vIERv
IG5vdCB1c2UKLSAgICAgICBTdWJtaXRfUmVzZXJ2ZWQgPSAweDA0LAotCi0gICAgICAgLy8gU2V0
IHRvIGluZGljYXRlIHRoYXQgcFRleHR1cmUgaXMgYSBwb2ludGVyIHRvIGEgVlJUZXh0dXJlV2l0
aFBvc2VfdC4KLSAgICAgICBTdWJtaXRfVGV4dHVyZVdpdGhQb3NlID0gMHgwOCwKLX07Ci0KLS8q
KiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJDb21wb3Np
dG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3JlIGRl
c3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFf
dAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0gICAgICAgVmtEZXZp
Y2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5c2ljYWxE
ZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAgICAgICBWa1F1ZXVl
X1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7Ci0gICAg
ICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1wbGVDb3Vu
dDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1cmVzIHRv
IElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0ZG93
biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1Y3QgRDNEMTJUZXh0
dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOwotICAgICAg
IElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1f
bk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gb3IgdHJh
Y2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJTdGF0ZV9VbmRlZmlu
ZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJTdGF0ZV9TZWFyY2hp
bmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKLSAgICAgICBWUlN0
YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKLSAgICAgICBW
UlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAotICAgICAg
IFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUgdHlwZXMgb2YgZXZl
bnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBtZWFuIGZv
ciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewotICAgICAgIFZSRXZl
bnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgICAg
ICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVk
ICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgICAgICAg
ICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9JcGRDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0Vu
dGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAgICAgICBWUkV2ZW50
X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKLSAgICAgICBWUkV2
ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAgICAgICBWUkV2ZW50
X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKLSAgICAgICBWUkV2
ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJF
dmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCi0g
ICAgICAgVlJFdmVudF9XaXJlbGVzc0Rpc2Nvbm5lY3QgICAgICAgICAgICAgICAgICAgICA9IDEx
MiwKLSAgICAgICBWUkV2ZW50X1dpcmVsZXNzUmVjb25uZWN0ICAgICAgICAgICAgICAgICAgICAg
PSAxMTMsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJFdmVu
dF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAg
VlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAv
LyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAg
IFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAx
LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8g
ZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJF
dmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
NSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEg
aXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0
dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVD
QVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAg
ICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVudF9T
Y2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBU
aGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3Ig
ZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290
IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5n
ZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAg
VlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAg
ICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24g
dG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZSRXZl
bnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRv
IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwg
dmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZh
dGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRE
ZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRU
aHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0
ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2Fz
dCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VMb2Fk
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92
ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZp
bmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUg
ZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVy
IGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVw
YWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZS
T3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFu
IG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0
Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZlbnRf
T3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
R3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0
dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5z
aG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcg
b3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNjcmVl
bnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBj
b21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90
VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5
IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJl
ZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRp
b24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2ZW50
X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQg
YnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hv
dCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hi
b2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQg
dGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZSRXZl
bnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAgICBW
UkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYw
MCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFj
dGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQg
ICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBp
cyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwg
Ly8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAgICBW
UkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3
MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCi0K
LSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAg
ICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAg
ICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFu
Z2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdz
SGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVudF9B
dWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAgVlJF
dmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAotICAg
ICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEs
Ci0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1
MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4
NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAg
ICAgID0gODU1LAotICAgICAgIFZSRXZlbnRfRW5hYmxlSG9tZUFwcFNldHRpbmdzSGF2ZUNoYW5n
ZWQgPSA4NTYsCi0KLSAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA5MDAsCi0KLSAgICAgICBWUkV2ZW50X01DSW1hZ2VVcGRhdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkV2
ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCAgICAgICAgICAgICAgICAgICAgID0gMTEwMCwKLSAg
ICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgICAgICAgICAgICAgICAgICAgICA9
IDExMDEsCi0KLSAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEyMDAsCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENoYXJJbnB1
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDEsCi0gICAgICAgVlJFdmVudF9LZXli
b2FyZERvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMiwgLy8gU2Vu
dCB3aGVuIERPTkUgYnV0dG9uIGNsaWNrZWQgb24ga2V5Ym9hcmQKLQotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCAgICAgICAgICAgICAgPSAxMzAwLAotICAgICAg
IFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCAgICAgICAgICAgICAgPSAxMzAx
LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCAgICAg
ICA9IDEzMDIsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTMwMywKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTWlt
ZVR5cGVMb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNCwKLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAg
ICAgICBWUkV2ZW50X1Byb2Nlc3NDb25uZWN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTMwNiwKLSAgICAgICBWUkV2ZW50X1Byb2Nlc3NEaXNjb25uZWN0ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwNywKLQotICAgICAgIFZSRXZlbnRfQ29t
cG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biAgICAgICAgICAgICAgPSAxNDAwLAotICAgICAgIFZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gICAgICAgICAgICAgID0gMTQwMSwK
LSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzU2hvd24gICAgICAgICAg
ICAgID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlk
ZGVuICAgICAgID0gMTQxMSwKLQotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdGFydFZp
ZGVvU3RyZWFtICA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRl
b1N0cmVhbSAgID0gMTUwMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRl
b1N0cmVhbSAgPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJm
YWNlICAgID0gMTU1MCwKLQotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0VuYWJsZUNh
cHR1cmUgICAgICAgPSAxNjAwLAotICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2Fi
bGVDYXB0dXJlICAgICAgID0gMTYwMSwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9G
aWRlbGl0eUxldmVsICAgICAgID0gMTYwMiwKLQotICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfQ2xvc2VkICAgICAgICAgICAgICAgICAgICAgPSAxNjUwLAotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlDbG9zZVJlcXVlc3RlZCAgICAgICA9IDE2NTEsCi0gICAgICAgCi0gICAgICAg
Ly8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBldmVudHMgaW4gdGhpcyByZXNl
cnZlZCByZWdpb24KLSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0
ICAgICAgID0gMTAwMDAsCi0gICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9F
bmQgICAgICAgICAgICAgID0gMTk5OTksCi19OwotCi0KLS8qKiBMZXZlbCBvZiBIbWQgYWN0aXZp
dHkgKi8KLS8vIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IG1lYW5zIHRoZSBkZXZpY2UgaXMgaW4g
dGhlIHByb2Nlc3Mgb2YgdGltaW5nIG91dC4KLS8vIEluVXNlID0gKCBrX0VEZXZpY2VBY3Rpdml0
eUxldmVsX1VzZXJJbnRlcmFjdGlvbiB8fCBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRl
cmFjdGlvbl9UaW1lb3V0ICkKLS8vIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlv
blN0YXJ0ZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNlcyB0cmFuc2l0aW9ucyBmcm9tIFN0YW5kYnkg
LT4gVXNlckludGVyYWN0aW9uIG9yIElkbGUgLT4gVXNlckludGVyYWN0aW9uLgotLy8gVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgZmlyZXMgd2hlbiB0aGUgZGV2aWNl
cyB0cmFuc2l0aW9ucyBmcm9tIFVzZXJJbnRlcmFjdGlvbl9UaW1lb3V0IC0+IElkbGUKLWVudW0g
RURldmljZUFjdGl2aXR5TGV2ZWwKLXsgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9Vbmtub3duID0gLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9J
ZGxlID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBh
Y3Rpdml0eSBmb3IgdGhlIGxhc3QgMTAgc2Vjb25kcwotICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
QWN0aXZpdHkgKG1vdmVtZW50IG9yIHByb3ggc2Vuc29yKSBpcyBoYXBwZW5pbmcgbm93ICAgICAg
IAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQg
PSAyLCAgICAgICAgICAgICAgLy8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDAuNSBzZWNvbmRz
Ci0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGxlIGZvciBhdCBsZWFzdCA1IHNlY29u
ZHMgKGNvbmZpZ3VyYWJsZSBpbiBTZXR0aW5ncyAtPiBQb3dlciBNYW5hZ2VtZW50KQotfTsKLQot
Ci0vKiogVlIgY29udHJvbGxlciBidXR0b24gYW5kIGF4aXMgSURzICovCi1lbnVtIEVWUkJ1dHRv
bklkCi17Ci0gICAgICAga19FQnV0dG9uX1N5c3RlbSAgICAgICAgICAgICAgICAgICAgID0gMCwK
LSAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ICAgICAgID0gMSwKLSAgICAgICBrX0VC
dXR0b25fR3JpcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfTGVmdCAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAgICBrX0VCdXR0b25f
RFBhZF9VcCAgICAgICAgICAgICAgICAgICAgID0gNCwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9S
aWdodCAgICAgICAgICAgICAgPSA1LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX0Rvd24gICAgICAg
ICAgICAgICAgICAgICA9IDYsCi0gICAgICAga19FQnV0dG9uX0EgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNywKLSAgICAgICAKLSAgICAgICBrX0VCdXR0b25fUHJveGltaXR5
U2Vuc29yICAgPSAzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzNCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDM2LAotCi0gICAgICAgLy8gYWxpYXNlcyBmb3Igd2VsbCBrbm93biBjb250
cm9sbGVycwotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkICAgICAgID0ga19FQnV0
dG9uX0F4aXMwLAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgICAgICAgPSBrX0VC
dXR0b25fQXhpczEsCi0KLSAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgICAgICAgPSBr
X0VCdXR0b25fR3JpcCwKLQotICAgICAgIGtfRUJ1dHRvbl9NYXggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA2NAotfTsKLQotaW5saW5lIHVpbnQ2NF90IEJ1dHRvbk1hc2tGcm9tSWQoIEVW
UkJ1dHRvbklkIGlkICkgeyByZXR1cm4gMXVsbCA8PCBpZDsgfQotCi0vKiogdXNlZCBmb3IgY29u
dHJvbGxlciBidXR0b24gZXZlbnRzICovCi1zdHJ1Y3QgVlJFdmVudF9Db250cm9sbGVyX3QKLXsK
LSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUkJ1dHRvbklkIGVudW0KLX07Ci0KLQotLyoq
IHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotZW51
bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIFZSTW91c2VCdXR0b25fTGVmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEsCi0gICAgICAgVlJNb3VzZUJ1dHRvbl9S
aWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDIsCi0gICAgICAg
VlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDQs
Ci19OwotCi0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkg
c3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4LCB5OyAv
LyBjby1vcmRzIGFyZSBpbiBHTCBzcGFjZSwgYm90dG9tIGxlZnQgb2YgdGhlIHRleHR1cmUgaXMg
MCwwCi0gICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJNb3VzZUJ1dHRvbiBlbnVtCi19Owot
Ci0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIHdoZWVsIHNjcm9sbCBpbiBvdmVybGF5IHNw
YWNlICovCi1zdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAotewotICAgICAgIGZsb2F0IHhkZWx0YSwg
eWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBmcmFjdGlvbiBvZiB0aGUgcGFkIHRyYXZlcnNlZCBzaW5j
ZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEgZnVsbCBzd2lwZQotICAgICAgIHVpbnQzMl90IHJlcGVh
dENvdW50OwotfTsKLQotLyoqIHdoZW4gaW4gbW91c2UgaW5wdXQgbW9kZSB5b3UgY2FuIHJlY2Vp
dmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBhZCwgdGhlc2UgZXZlbnRzIGFyZSBvbmx5IHNlbnQgaWYg
dGhlIHVzZXJzIGZpbmdlcgotICAgaXMgb24gdGhlIHRvdWNocGFkIChvciBqdXN0IHJlbGVhc2Vk
IGZyb20gaXQpIAotKiovCi1zdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdAotewotICAgICAg
IC8vIHRydWUgaWYgdGhlIHVzZXJzIGZpbmdlciBpcyBkZXRlY3RlZCBvbiB0aGUgdG91Y2ggcGFk
Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLQotICAgICAgIC8vIEhvdyBsb25nIHRoZSBmaW5n
ZXIgaGFzIGJlZW4gZG93biBpbiBzZWNvbmRzCi0gICAgICAgZmxvYXQgZmxTZWNvbmRzRmluZ2Vy
RG93bjsKLQotICAgICAgIC8vIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0aGUgc3RhcnRpbmcgZmlu
Z2VyIHBvc2l0aW9uIChzbyB5b3UgY2FuIGRvIHNvbWUgYmFzaWMgc3dpcGUgc3R1ZmYpCi0gICAg
ICAgZmxvYXQgZlZhbHVlWEZpcnN0OwotICAgICAgIGZsb2F0IGZWYWx1ZVlGaXJzdDsKLQotICAg
ICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBzYW1wbGVkIGNvb3JkaW5hdGUgd2l0aG91dCBkZWFkem9u
aW5nCi0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBmVmFsdWVZUmF3Owot
fTsKLQotLyoqIG5vdGlmaWNhdGlvbiByZWxhdGVkIGV2ZW50cy4gRGV0YWlscyB3aWxsIHN0aWxs
IGNoYW5nZSBhdCB0aGlzIHBvaW50ICovCi1zdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAot
ewotICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOwotICAgICAgIHVpbnQzMl90IG5vdGlmaWNh
dGlvbklkOwotfTsKLQotLyoqIFVzZWQgZm9yIGV2ZW50cyBhYm91dCBwcm9jZXNzZXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAotewotICAgICAgIHVpbnQzMl90IHBpZDsKLSAgICAgICB1
aW50MzJfdCBvbGRQaWQ7Ci0gICAgICAgYm9vbCBiRm9yY2VkOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9PdmVybGF5
X3QKLXsKLSAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotfTsKLQotCi0vKiogVXNlZCBm
b3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCi1zdHJ1Y3QgVlJFdmVudF9TdGF0dXNf
dAotewotICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRlOyAvLyBFVlJTdGF0ZSBlbnVtCi19Owot
Ci0vKiogVXNlZCBmb3Iga2V5Ym9hcmQgZXZlbnRzICoqLwotc3RydWN0IFZSRXZlbnRfS2V5Ym9h
cmRfdAotewotICAgICAgIGNoYXIgY05ld0lucHV0WzhdOyAgICAgICAvLyBVcCB0byAxMSBieXRl
cyBvZiBuZXcgaW5wdXQKLSAgICAgICB1aW50NjRfdCB1VXNlclZhbHVlOyAgICAgICAvLyBQb3Nz
aWJsZSBmbGFncyBhYm91dCB0aGUgbmV3IGlucHV0Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9JcGRf
dAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0NoYXBl
cm9uZV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKLSAgICAgICB1
aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Ci19OwotCi0vKiogTm90IGFjdHVhbGx5IHVzZWQg
Zm9yIGFueSBldmVudHMgKi8KLXN0cnVjdCBWUkV2ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1
aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWludDY0X3QgcmVzZXJ2ZWQxOwotfTsKLQotc3Ry
dWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRl
bGl0eUxldmVsOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Ci17
Ci0gICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9T
Y3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAgICAgdWludDMyX3Qg
dHlwZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Ci17Ci0gICAg
ICAgZmxvYXQgcHJvZ3Jlc3M7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5j
aF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IHVuQXJnc0hhbmRs
ZTsKLX07Ci0KLXN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fTsKLQotc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90
IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOyAvLyB2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlIGVudW0KLX07Ci0KLXN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKLXsKLSAgICAgICBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRhaW5lcjsKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3A7Ci19OwotCi0vKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1V
U1QgbWFudWFsbHkgdXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5ICovCi10eXBlZGVmIHVuaW9u
Ci17Ci0gICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOwotICAgICAgIFZSRXZlbnRf
Q29udHJvbGxlcl90IGNvbnRyb2xsZXI7Ci0gICAgICAgVlJFdmVudF9Nb3VzZV90IG1vdXNlOwot
ICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOwotICAgICAgIFZSRXZlbnRfUHJvY2Vzc190
IHByb2Nlc3M7Ci0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRpb247Ci0g
ICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1N0YXR1c190
IHN0YXR1czsKLSAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7Ci0gICAgICAgVlJF
dmVudF9JcGRfdCBpcGQ7Ci0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJvbmU7Ci0g
ICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7Ci0gICAgICAg
VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7Ci0gICAgICAgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKLSAgICAgICBWUkV2ZW50X1Nj
cmVlbnNob3RfdCBzY3JlZW5zaG90OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3Qgc2NyZWVuc2hvdFByb2dyZXNzOwotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hf
dCBhcHBsaWNhdGlvbkxhdW5jaDsKLSAgICAgICBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNl
X3QgY2FtZXJhU3VyZmFjZTsKLSAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QgbWVzc2Fn
ZU92ZXJsYXk7Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eV90IHByb3BlcnR5OwotfSBWUkV2ZW50
X0RhdGFfdDsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBv
biBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBhdGliaWxpdHkuIAotI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIg
dG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90Ci17Ci0gICAg
ICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAgICAgIFRyYWNr
ZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9hdCBldmVudEFn
ZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0
cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7
Ci19OwotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSNw
cmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0vKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRvIHRo
ZSBzdGVuY2lsIChvciBkZXB0aCkgYnVmZmVyIHRvIHBlcmZvcm0gCi0qIGVhcmx5IHN0ZW5jaWwg
KG9yIGRlcHRoKSBraWxscyBvZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0aGUg
SE1ELgotKiBUaGlzIG1lc2ggZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJlIGhp
ZGRlbiBhZnRlciBkaXN0b3J0aW9uLiAKLSoKLSogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92aWRl
IGEgdmlzaWJsZSBhcmVhIG1lc2ggcFZlcnRleERhdGEgd2lsbCBiZQotKiBOVUxMIGFuZCB1blRy
aWFuZ2xlQ291bnQgd2lsbCBiZSAwLiAqLwotc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsKLSAg
ICAgICBjb25zdCBIbWRWZWN0b3IyX3QgKnBWZXJ0ZXhEYXRhOwotICAgICAgIHVpbnQzMl90IHVu
VHJpYW5nbGVDb3VudDsKLX07Ci0KLQotZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCi17Ci0gICAg
ICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAotICAgICAgIGtfZUhpZGRlbkFyZWFN
ZXNoX0ludmVyc2UgPSAxLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwK
LQotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19OwotCi0KLS8qKiBJZGVudGlm
aWVzIHdoYXQga2luZCBvZiBheGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4uIFJl
YWQgdGhpcyB0eXBlIAotKiB3aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmljZUlu
ZGV4LCBQcm9wX0F4aXMwVHlwZV9JbnQzMiArIG4gKTsKLSovCi1lbnVtIEVWUkNvbnRyb2xsZXJB
eGlzVHlwZQotewotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAotICAgICAgIGtf
ZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkID0gMSwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19K
b3lzdGljayA9IDIsCi0gICAgICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8vIEFu
YWxvZyB0cmlnZ2VyIGRhdGEgaXMgaW4gdGhlIFggYXhpcwotfTsKLQotCi0vKiogY29udGFpbnMg
aW5mb3JtYXRpb24gYWJvdXQgb25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KLXN0cnVjdCBW
UkNvbnRyb2xsZXJBeGlzX3QKLXsKLSAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAtMS4w
IHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAgdG8g
MS4wIGZvciB0cmlnZ2VycyB3ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCi0gICAgICAgZmxvYXQg
eTsgLy8gUmFuZ2VzIGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFk
cy4gSXMgYWx3YXlzIDAuMCBmb3IgdHJpZ2dlcnMuCi19OwotCi0KLS8qKiB0aGUgbnVtYmVyIG9m
IGF4ZXMgaW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgKi8KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsKLQotCi0jaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLS8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5h
bGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKLS8vIGNvbXBh
dGliaWxpdHkuIAotI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKLSNlbmRpZgotCi0vKiogSG9sZHMg
YWxsIHRoZSBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLwot
c3RydWN0IFZSQ29udHJvbGxlclN0YXRlMDAxX3QKLXsKLSAgICAgICAvLyBJZiBwYWNrZXQgbnVt
IG1hdGNoZXMgdGhhdCBvbiB5b3VyIHByaW9yIGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3Rh
dGUgaGFzbid0IGJlZW4gY2hhbmdlZCBzaW5jZSAKLSAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBh
bmQgdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIGl0Ci0gICAgICAgdWludDMyX3QgdW5QYWNr
ZXROdW07Ci0KLSAgICAgICAvLyBiaXQgZmxhZ3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVz
ZSBCdXR0b25NYXNrRnJvbUlkIHRvIHR1cm4gYW4gSUQgaW50byBhIG1hc2sKLSAgICAgICB1aW50
NjRfdCB1bEJ1dHRvblByZXNzZWQ7Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOwot
Ci0gICAgICAgLy8gQXhpcyBkYXRhIGZvciB0aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMK
LSAgICAgICBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgXTsKLX07Ci0jaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKLSNwcmFnbWEgcGFjayggcG9wICkKLSNlbmRpZgotCi0KLXR5cGVkZWYgVlJDb250cm9sbGVy
U3RhdGUwMDFfdCBWUkNvbnRyb2xsZXJTdGF0ZV90OwotCi0KLS8qKiBkZXRlcm1pbmVzIGhvdyB0
byBwcm92aWRlIG91dHB1dCB0byB0aGUgYXBwbGljYXRpb24gb2YgdmFyaW91cyBldmVudCBwcm9j
ZXNzaW5nIGZ1bmN0aW9ucy4gKi8KLWVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX07Ci0KLQotCi0vKiogQ29sbGlzaW9u
IEJvdW5kcyBTdHlsZSAqLwotZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKLXsKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBDT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0lOVEVSTUVESUFURSwKLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NR
VUFSRVMsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCwKLSAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUsCi0KLSAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0NPVU5UCi19OwotCi0vKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjdXN0b21pemUg
aG93IHRoZSBvdmVybGF5IGFwcGVhcnMgaW4gdGhlIGNvbXBvc2l0b3IgKi8KLXN0cnVjdCBDb21w
b3NpdG9yX092ZXJsYXlTZXR0aW5ncwotewotICAgICAgIHVpbnQzMl90IHNpemU7IC8vIHNpemVv
ZihDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncykKLSAgICAgICBib29sIGN1cnZlZCwgYW50aWFs
aWFzOwotICAgICAgIGZsb2F0IHNjYWxlLCBkaXN0YW5jZSwgYWxwaGE7Ci0gICAgICAgZmxvYXQg
dU9mZnNldCwgdk9mZnNldCwgdVNjYWxlLCB2U2NhbGU7Ci0gICAgICAgZmxvYXQgZ3JpZERpdnMs
IGdyaWRXaWR0aCwgZ3JpZFNjYWxlOwotICAgICAgIEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOwot
fTsKLQotLyoqIHVzZWQgdG8gcmVmZXIgdG8gYSBzaW5nbGUgVlIgb3ZlcmxheSAqLwotdHlwZWRl
ZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IFZST3ZlcmxheUhh
bmRsZV90IGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9IDA7Ci0KLS8qKiBFcnJvcnMgdGhhdCBj
YW4gb2NjdXIgYXJvdW5kIFZSIG92ZXJsYXlzICovCi1lbnVtIEVWUk92ZXJsYXlFcnJvcgotewot
ICAgICAgIFZST3ZlcmxheUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDAsCi0KLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSAg
ICAgICAgICAgICAgICAgICAgID0gMTAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZEhh
bmRsZSAgICAgICAgICAgICAgICAgICAgID0gMTEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUGVy
bWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTIsCi0gICAgICAgVlJPdmVybGF5
RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQgICAgICAgICAgICAgID0gMTMsIC8vIE5vIG1vcmUg
b3ZlcmxheXMgY291bGQgYmUgY3JlYXRlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIG51bWJlciBhbHJl
YWR5IGV4aXN0Ci0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdWaXNpYmlsaXR5VHlwZSAgICAg
ICAgICAgICAgPSAxNCwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlUb29Mb25nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTUsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKLSAgICAgICBWUk92ZXJsYXlFcnJv
cl9LZXlJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNywKLSAgICAg
ICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUgICAgICAgICAgICAgID0gMTgsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNrZWREZXZpY2UgICAgICAgICAgICAgID0g
MTksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciAgICAgICAgICAgICAg
ICAgICAgID0gMjAsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVGh1bWJuYWlsQ2FudEJlRGVzdHJv
eWVkICAgICAgID0gMjEsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCAgICAg
ICAgICAgICAgICAgICAgID0gMjIsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgID0gMjMsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfSW52YWxp
ZFRleHR1cmUgICAgICAgICAgICAgICAgICAgICA9IDI0LAotICAgICAgIFZST3ZlcmxheUVycm9y
X1VuYWJsZVRvTG9hZEZpbGUgICAgICAgICAgICAgICAgICAgICA9IDI1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlICAgICAgICAgICAgICA9IDI2LAotICAgICAg
IFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
NywKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMgICAgICAgPSAy
OSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9CYWRNYXNrUHJpbWl0aXZlICAgICAgICAgICAgICAg
ICAgICAgPSAzMCwKLX07Ci0KLS8qKiBlbnVtIHZhbHVlcyB0byBwYXNzIGluIHRvIFZSX0luaXQg
dG8gaWRlbnRpZnkgd2hldGhlciB0aGUgYXBwbGljYXRpb24gd2lsbCAKLSogZHJhdyBhIDNEIHNj
ZW5lLiAqLwotZW51bSBFVlJBcHBsaWNhdGlvblR5cGUKLXsKLSAgICAgICBWUkFwcGxpY2F0aW9u
X090aGVyID0gMCwgICAgICAgICAgICAgIC8vIFNvbWUgb3RoZXIga2luZCBvZiBhcHBsaWNhdGlv
biB0aGF0IGlzbid0IGNvdmVyZWQgYnkgdGhlIG90aGVyIGVudHJpZXMgCi0gICAgICAgVlJBcHBs
aWNhdGlvbl9TY2VuZSAgICAgICA9IDEsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiB3aWxs
IHN1Ym1pdCAzRCBmcmFtZXMgCi0gICAgICAgVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwgICAg
ICAgICAgICAgIC8vIEFwcGxpY2F0aW9uIG9ubHkgaW50ZXJhY3RzIHdpdGggb3ZlcmxheXMKLSAg
ICAgICBWUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLCAgICAgICAvLyBBcHBsaWNhdGlvbiBz
aG91bGQgbm90IHN0YXJ0IFN0ZWFtVlIgaWYgaXQncyBub3QgYWxyZWFkeSBydW5uaW5nLCBhbmQg
c2hvdWxkIG5vdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8ga2VlcCBpdCBydW5uaW5nIGlmIGV2ZXJ5dGhpbmcgZWxzZSBx
dWl0cy4KLSAgICAgICBWUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LCAgICAgICAgICAgICAgLy8g
SW5pdCBzaG91bGQgbm90IHRyeSB0byBsb2FkIGFueSBkcml2ZXJzLiBUaGUgYXBwbGljYXRpb24g
bmVlZHMgYWNjZXNzIHRvIHV0aWxpdHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludGVyZmFjZXMgKGxpa2UgSVZSU2V0
dGluZ3MgYW5kIElWUkFwcGxpY2F0aW9ucykgYnV0IG5vdCBoYXJkd2FyZS4KLSAgICAgICBWUkFw
cGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsICAgICAgIC8vIFJlc2VydmVkIGZvciB2cm1vbml0b3IK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LC8vIFJlc2VydmVkIGZvciBT
dGVhbQotICAgICAgIFZSQXBwbGljYXRpb25fQm9vdHN0cmFwcGVyID0gNywgLy8gU3RhcnQgdXAg
U3RlYW1WUgotCi0gICAgICAgVlJBcHBsaWNhdGlvbl9NYXgKLX07Ci0KLQotLyoqIGVycm9yIGNv
ZGVzIGZvciBmaXJtd2FyZSAqLwotZW51bSBFVlJGaXJtd2FyZUVycm9yCi17Ci0gICAgICAgVlJG
aXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIFZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0g
MSwKLSAgICAgICBWUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCi19OwotCi0KLS8qKiBlcnJvciBj
b2RlcyBmb3Igbm90aWZpY2F0aW9ucyAqLwotZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgotewot
ICAgICAgIFZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE5vdGlmaWNhdGlvbklkID0gMTAwLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfTm90aWZpY2F0aW9uUXVldWVGdWxsID0gMTAxLAotICAgICAgIFZSTm90aWZpY2F0aW9u
RXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgVlJOb3RpZmljYXRpb25F
cnJvcl9TeXN0ZW1XaXRoVXNlclZhbHVlQWxyZWFkeUV4aXN0cyA9IDEwMywKLX07Ci0KLQotLyoq
IGVycm9yIGNvZGVzIHJldHVybmVkIGJ5IFZyX0luaXQgKi8KLQotLy8gUGxlYXNlIGFkZCBhZGVx
dWF0ZSBlcnJvciBkZXNjcmlwdGlvbiB0byBodHRwczovL2RldmVsb3Blci52YWx2ZXNvZnR3YXJl
LmNvbS93L2luZGV4LnBocD90aXRsZT1DYXRlZ29yeTpTdGVhbVZSSGVscAotZW51bSBFVlJJbml0
RXJyb3IKLXsKLSAgICAgICBWUkluaXRFcnJvcl9Ob25lICAgICAgID0gMCwKLSAgICAgICBWUklu
aXRFcnJvcl9Vbmtub3duID0gMSwKLQotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0
aW9uTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgICAgICAgICA9IDEwMSwKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgICAgICAgICAgICAgICAg
ICAgICA9IDEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9GYWN0b3J5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAg
VlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTEwLAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUgICAgICAgICAgICAgID0gMTEzLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTQsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9SZXRyeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8gVXNlZCBp
bnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NiwgLy8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNpbGVudGx5IGV4aXQuIFRoZSB1
c2VyIGNhbmNlbGVkIGFwcCBzdGFydHVwCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVy
QXBwTGF1bmNoaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMTcsIAotICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTE4LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTksCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgICAgICAgICAgICAg
ID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0
b3IgICAgICAgICAgICAgID0gMTIyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxh
YmxlVG9VdGlsaXR5QXBwcyAgICAgICAgICAgICAgPSAxMjMsCi0gICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcm5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEyNSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5v
dEZvdW5kUHJlc2VuY2VGYWlsZWQgICAgICAgICAgICAgICA9IDEyNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTI3LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgID0gMTI4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJX
YXRjaGRvZ05vdFN1cHBvcnRlZCAgICAgICA9IDEyOSwgCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICAgICAgICAgICAgICAgICAgICAgPSAxMzAsCi0gICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAgICAgICAgICAg
ICAgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyAgICAgICAgICAgICAgPSAxMzIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMzMsCi0gICAgICAgVlJJbml0RXJy
b3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgID0gMTM0LAotICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTM1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1
cEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTM2LAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfUmVib290aW5nQnVzeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzcs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMzgsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVJl
Y292ZXJ5QnVzeSAgICAgICAgICAgICAgICAgICAgID0gMTM5LAotCi0KLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDAsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKLSAgICAgICBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIs
Ci0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDMsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZEluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDUsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDYsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X0NhbGlicmF0aW9uSW52YWxpZCAgICAgICAgICAgICAgICAgICAgID0gMjA3LAotICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9
IDIwOCwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgLy8gVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RG
b3VuZEFmdGVyRml4ID0gMjEwLCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyByZWFz
b25zCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgICAg
ICAgICAgICAgID0gMjExLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWly
cm9yZWQgICAgICAgICAgICAgICAgICAgICA9IDIxMiwKLQotICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwLAotICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0
RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDMsCi0gICAgICAg
VlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAzMDQsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9
IDMwNiwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVz
cG9uc2UgPSAzMDcsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11
bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCi0KLSAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDAsCi0gICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgICAgICAgPSA0MDEsCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlICAgICAg
ID0gNDAyLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQg
ICAgICAgICAgICAgID0gNDAzLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVu
c2hvdHNJbml0RmFpbGVkICAgICAgID0gNDA0LAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2UgICAgICAgICAgICAgID0gNDA1LAotCi0gICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lICAg
ICAgICAgICAgICA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAx
LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAgIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDEx
MDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRG
aXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwK
LSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVz
ZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAs
Ci0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRy
ZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25m
aWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJbml0
RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwK
LSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0gICAg
ICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVf
Q3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVtIEVW
UlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0gICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAot
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0g
MTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAg
ICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJh
bWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRP
ZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKLSAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEw
OCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAg
ICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdM
VGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRU
ZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9O
b0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVudW0g
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNh
bWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAgICAg
IFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAg
ICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9u
IHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2Vz
IHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3Rv
cnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxp
ZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdp
b25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWludDY0
X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJB
X0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0IENh
bWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0gICAg
ICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVzCi10
eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKLSNp
ZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJfSU5U
RVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5kaWYK
LQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRl
ZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9JTlRF
UkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQot
I2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vsc2UK
LSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5lIFZS
X0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBfSU5D
TFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4KLSMg
ZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIg
KSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNkZWZp
bmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIg
KQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQotI2Rl
ZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKLSNk
ZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCi0j
ZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFS
QU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJSQVlf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsi
ICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRS
KCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZSX0JV
RkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5U
RVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19B
VFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09VVF9T
VFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAj
Q09VTlRFUiAiOyIgKQotCi0vLyBpdnJzeXN0ZW0uaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUlN5c3RlbQotewotcHVibGljOgotCi0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBEaXNwbGF5IE1ldGhvZHMKLSAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBTdWdnZXN0
ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRpc3Rv
cnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UmVjb21tZW5kZWRS
ZW5kZXJUYXJnZXRTaXplKCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgLyoqIFRoZSBwcm9qZWN0aW9uIG1hdHJpeCBmb3IgdGhlIHNwZWNpZmll
ZCBleWUgKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDQ0X3QgR2V0UHJvamVjdGlvbk1hdHJp
eCggRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclogKSA9IDA7Ci0KLSAgICAg
ICAvKiogVGhlIGNvbXBvbmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHByb2plY3Rp
b24gbWF0cml4IGluIGNhc2UgeW91cgotICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRQ
cm9qZWN0aW9uUmF3KCBFVlJFeWUgZUV5ZSwgZmxvYXQgKnBmTGVmdCwgZmxvYXQgKnBmUmlnaHQs
IGZsb2F0ICpwZlRvcCwgZmxvYXQgKnBmQm90dG9tICkgPSAwOwotCi0gICAgICAgLyoqIEdldHMg
dGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlvbiBmdW5jdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBl
eWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZyb20gMCwwIGluIAotICAgICAgICogdGhlIHVwcGVy
IGxlZnQgb2YgdGhhdCBleWUncyB2aWV3cG9ydCBhbmQgMSwxIGluIHRoZSBsb3dlciByaWdodCBv
ZiB0aGF0IGV5ZSdzIHZpZXdwb3J0LgotICAgICAgICogUmV0dXJucyB0cnVlIGZvciBzdWNjZXNz
LiBPdGhlcndpc2UsIHJldHVybnMgZmFsc2UsIGFuZCBkaXN0b3J0aW9uIGNvb3JkaW5hdGVzIGFy
ZSBub3Qgc3VpdGFibGUuICovCi0gICAgICAgdmlydHVhbCBib29sIENvbXB1dGVEaXN0b3J0aW9u
KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWLCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNf
dCAqcERpc3RvcnRpb25Db29yZGluYXRlcyApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSB0cmFuc2Zvcm0gZnJvbSBleWUgc3BhY2UgdG8gdGhlIGhlYWQgc3BhY2UuIEV5ZSBzcGFjZSBp
cyB0aGUgcGVyLWV5ZSBmbGF2b3Igb2YgaGVhZAotICAgICAgICogc3BhY2UgdGhhdCBwcm92aWRl
cyBzdGVyZW8gZGlzcGFyaXR5LiBJbnN0ZWFkIG9mIE1vZGVsICogVmlldyAqIFByb2plY3Rpb24g
dGhlIHNlcXVlbmNlIGlzIE1vZGVsICogVmlldyAqIEV5ZV4tMSAqIFByb2plY3Rpb24uIAotICAg
ICAgICogTm9ybWFsbHkgVmlldyBhbmQgRXllXi0xIHdpbGwgYmUgbXVsdGlwbGllZCB0b2dldGhl
ciBhbmQgdHJlYXRlZCBhcyBWaWV3IGluIHlvdXIgYXBwbGljYXRpb24uIAotICAgICAgICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9ybSggRVZSRXll
IGVFeWUgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsYXBzZWQg
c2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZWNvcmRlZCB2c3luYyBldmVudC4gVGhpcyAKLSAgICAg
ICAqICAgICAgIHdpbGwgY29tZSBmcm9tIGEgdnN5bmMgdGltZXIgZXZlbnQgaW4gdGhlIHRpbWVy
IGlmIHBvc3NpYmxlIG9yIGZyb20gdGhlIGFwcGxpY2F0aW9uLXJlcG9ydGVkCi0gICAgICAgKiAg
IHRpbWUgaWYgdGhhdCBpcyBub3QgYXZhaWxhYmxlLiBJZiBubyB2c3luYyB0aW1lcyBhcmUgYXZh
aWxhYmxlIHRoZSBmdW5jdGlvbiB3aWxsIAotICAgICAgICogICByZXR1cm4gemVybyBmb3IgdnN5
bmMgdGltZSBhbmQgZnJhbWUgY291bnRlciBhbmQgcmV0dXJuIGZhbHNlIGZyb20gdGhlIG1ldGhv
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0VGltZVNpbmNlTGFzdFZzeW5jKCBmbG9hdCAq
cGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICpwdWxGcmFtZUNvdW50ZXIgKSA9IDA7
Ci0KLSAgICAgICAvKiogW0QzRDkgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIg
aW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIENyZWF0ZURldmljZSB0byBzZXQg
dXAgRDNEOSBpbiBzdWNoCi0gICAgICAgKiBhIHdheSB0aGF0IGl0IGNhbiBnbyBmdWxsIHNjcmVl
biBleGNsdXNpdmUgb24gdGhlIEhNRC4gUmV0dXJucyAtMSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Iu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0RDNEOUFkYXB0ZXJJbmRleCgp
ID0gMDsKLQotICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAqIFJldHVybnMgdGhl
IGFkYXB0ZXIgaW5kZXggdGhhdCB0aGUgdXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVy
cyB0byBjcmVhdGUgdGhlIGRldmljZSAKLSAgICAgICAqIGFuZCBzd2FwIGNoYWluIGluIERYMTAg
YW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgaW5kZXggd2lsbCBiZSBzZXQgdG8gLTEu
Ci0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91dHB1dEluZm8oIGludDMy
X3QgKnBuQWRhcHRlckluZGV4ICkgPSAwOwotICAgICAgIAotICAgICAgIC8qKgotICAgICAgICAq
IFJldHVybnMgcGxhdGZvcm0tIGFuZCB0ZXh0dXJlLXR5cGUgc3BlY2lmaWMgYWRhcHRlciBpZGVu
dGlmaWNhdGlvbiBzbyB0aGF0IGFwcGxpY2F0aW9ucyBhbmQgdGhlCi0gICAgICAgICogY29tcG9z
aXRvciBhcmUgY3JlYXRpbmcgdGV4dHVyZXMgYW5kIHN3YXAgY2hhaW5zIG9uIHRoZSBzYW1lIEdQ
VS4gSWYgYW4gZXJyb3Igb2NjdXJzIHRoZSBkZXZpY2UKLSAgICAgICAgKiB3aWxsIGJlIHNldCB0
byAwLgotICAgICAgICAqIHBJbnN0YW5jZSBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBp
cyByZXF1aXJlZCBvbmx5IHdoZW4gdGV4dHVyZVR5cGUgaXMgVGV4dHVyZVR5cGVfVnVsa2FuLgot
ICAgICAgICAqIFtEM0QxMC8xMS8xMiBPbmx5IChEM0Q5IE5vdCBTdXBwb3J0ZWQpXQotICAgICAg
ICAqICBSZXR1cm5zIHRoZSBhZGFwdGVyIExVSUQgdGhhdCBpZGVudGlmaWVzIHRoZSBHUFUgYXR0
YWNoZWQgdG8gdGhlIEhNRC4gVGhlIHVzZXIgc2hvdWxkCi0gICAgICAgICogIGVudW1lcmF0ZSBh
bGwgYWRhcHRlcnMgdXNpbmcgSURYR0lGYWN0b3J5OjpFbnVtQWRhcHRlcnMgYW5kIElEWEdJQWRh
cHRlcjo6R2V0RGVzYyB0byBmaW5kCi0gICAgICAgICogIHRoZSBhZGFwdGVyIHdpdGggdGhlIG1h
dGNoaW5nIExVSUQsIG9yIHVzZSBJRFhHSUZhY3Rvcnk0OjpFbnVtQWRhcHRlckJ5THVpZC4KLSAg
ICAgICAgKiAgVGhlIGRpc2NvdmVyZWQgSURYR0lBZGFwdGVyIHNob3VsZCBiZSB1c2VkIHRvIGNy
ZWF0ZSB0aGUgZGV2aWNlIGFuZCBzd2FwIGNoYWluLgotICAgICAgICAqIFtWdWxrYW4gT25seV0K
LSAgICAgICAgKiAgUmV0dXJucyB0aGUgVmtQaHlzaWNhbERldmljZSB0aGF0IHNob3VsZCBiZSB1
c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKiAgcEluc3RhbmNlIG11c3QgYmUgdGhl
IGluc3RhbmNlIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVzZSB0byBxdWVyeSBmb3IgdGhlIFZrUGh5
c2ljYWxEZXZpY2UuICBUaGUgYXBwbGljYXRpb24KLSAgICAgICAgKiAgbXVzdCBjcmVhdGUgdGhl
IFZrSW5zdGFuY2Ugd2l0aCBleHRlbnNpb25zIHJldHVybmVkIGJ5IElWUkNvbXBvc2l0b3I6Okdl
dFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkIGVuYWJsZWQuCi0gICAgICAgICogW21h
Y09TIE9ubHldCi0gICAgICAgICogIFJldHVybnMgYW4gaWQ8TVRMRGV2aWNlPiB0aGF0IHNob3Vs
ZCBiZSB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLSAgICAgICAgKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0T3V0cHV0RGV2aWNlKCB1aW50NjRfdCAqcG5EZXZpY2UsIEVUZXh0dXJlVHlwZSB0
ZXh0dXJlVHlwZSwgVmtJbnN0YW5jZV9UICpwSW5zdGFuY2UgPSBudWxscHRyICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
RGlzcGxheSBNb2RlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBVc2UgdG8gZGV0ZXJtaW5lIGlmIHRoZSBoZWFkc2V0
IGRpc3BsYXkgaXMgcGFydCBvZiB0aGUgZGVza3RvcCAoaS5lLiBleHRlbmRlZCkgb3IgaGlkZGVu
IChpLmUuIGRpcmVjdCBtb2RlKS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25E
ZXNrdG9wKCkgPSAwOwotCi0gICAgICAgLyoqIFNldCB0aGUgZGlzcGxheSB2aXNpYmlsaXR5ICh0
cnVlID0gZXh0ZW5kZWQsIGZhbHNlID0gZGlyZWN0IG1vZGUpLiAgUmV0dXJuIHZhbHVlIG9mIHRy
dWUgaW5kaWNhdGVzIHRoYXQgdGhlIGNoYW5nZSB3YXMgc3VjY2Vzc2Z1bC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoIGJvb2wgYklzVmlzaWJsZU9uRGVza3Rv
cCApID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgICAgIC8vIFRyYWNraW5nIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgIC8qKiBUaGUgcG9zZSB0aGF0IHRoZSB0cmFj
a2VyIHRoaW5rcyB0aGF0IHRoZSBITUQgd2lsbCBiZSBpbiBhdCB0aGUgc3BlY2lmaWVkIG51bWJl
ciBvZiBzZWNvbmRzIGludG8gdGhlIAotICAgICAgICogZnV0dXJlLiBQYXNzIDAgdG8gZ2V0IHRo
ZSBzdGF0ZSBhdCB0aGUgaW5zdGFudCB0aGUgbWV0aG9kIGlzIGNhbGxlZC4gTW9zdCBvZiB0aGUg
dGltZSB0aGUgYXBwbGljYXRpb24gc2hvdWxkCi0gICAgICAgKiBjYWxjdWxhdGUgdGhlIHRpbWUg
dW50aWwgdGhlIHBob3RvbnMgd2lsbCBiZSBlbWl0dGVkIGZyb20gdGhlIGRpc3BsYXkgYW5kIHBh
c3MgdGhhdCB0aW1lIGludG8gdGhlIG1ldGhvZC4KLSAgICAgICAqCi0gICAgICAgKiBUaGlzIGlz
IHJvdWdobHkgYW5hbG9nb3VzIHRvIHRoZSBpbnZlcnNlIG9mIHRoZSB2aWV3IG1hdHJpeCBpbiBt
b3N0IGFwcGxpY2F0aW9ucywgdGhvdWdoIAotICAgICAgICogbWFueSBnYW1lcyB3aWxsIG5lZWQg
dG8gZG8gc29tZSBhZGRpdGlvbmFsIHJvdGF0aW9uIG9yIHRyYW5zbGF0aW9uIG9uIHRvcCBvZiB0
aGUgcm90YXRpb24KLSAgICAgICAqIGFuZCB0cmFuc2xhdGlvbiBwcm92aWRlZCBieSB0aGUgaGVh
ZCBwb3NlLgotICAgICAgICoKLSAgICAgICAqIEZvciBkZXZpY2VzIHdoZXJlIGJQb3NlSXNWYWxp
ZCBpcyB0cnVlIHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBwb3NlIHRvIHBvc2l0aW9uIHRo
ZSBkZXZpY2UKLSAgICAgICAqIGluIHF1ZXN0aW9uLiBUaGUgcHJvdmlkZWQgYXJyYXkgY2FuIGJl
IGFueSBzaXplIHVwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQuIAotICAgICAgICoKLSAg
ICAgICAqIFNlYXRlZCBleHBlcmllbmNlcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIFRy
YWNraW5nVW5pdmVyc2VTZWF0ZWQgYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUKLSAgICAgICAq
IHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlLiBTdGFuZGluZyBleHBlcmllbmNlcyBzaG91bGQgY2Fs
bCB0aGlzIG1ldGhvZCB3aXRoIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyAKLSAgICAgICAqIGFu
ZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZlIHRvIHRoZSBDaGFwZXJvbmUgUGxheSBBcmVhLiBUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIHNob3VsZCAKLSAgICAgICAqIHByb2JhYmx5
IG5vdCBiZSB1c2VkIHVubGVzcyB0aGUgYXBwbGljYXRpb24gaXMgdGhlIENoYXBlcm9uZSBjYWxp
YnJhdGlvbiB0b29sIGl0c2VsZiwgYnV0IHdpbGwgcHJvdmlkZQotICAgICAgICogcG9zZXMgcmVs
YXRpdmUgdG8gdGhlIGhhcmR3YXJlLXNwZWNpZmljIGNvb3JkaW5hdGUgc3lzdGVtIGluIHRoZSBk
cml2ZXIuCi0gICAgICAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RGV2aWNlVG9BYnNvbHV0
ZVRyYWNraW5nUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBWUl9BUlJBWV9DT1VOVCh1blRyYWNrZWRE
ZXZpY2VQb3NlQXJyYXlDb3VudCkgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQ
b3NlQXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFNldHMgdGhlIHplcm8gcG9zZSBmb3IgdGhlIHNlYXRlZCB0cmFja2VyIGNv
b3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB5YXcgb2YgdGhlIEhN
RC4gQWZ0ZXIgCi0gICAgICAgKiBSZXNldFNlYXRlZFplcm9Qb3NlIGFsbCBHZXREZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmdQb3NlIGNhbGxzIHRoYXQgcGFzcyBUcmFja2luZ1VuaXZlcnNlU2VhdGVk
IGFzIHRoZSBvcmlnaW4gCi0gICAgICAgKiB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoaXMgbmV3IHpl
cm8gcG9zZS4gVGhlIG5ldyB6ZXJvIGNvb3JkaW5hdGUgc3lzdGVtIHdpbGwgbm90IGNoYW5nZSB0
aGUgZmFjdCB0aGF0IHRoZSBZIGF4aXMgCi0gICAgICAgKiBpcyB1cCBpbiB0aGUgcmVhbCB3b3Js
ZCwgc28gdGhlIG5leHQgcG9zZSByZXR1cm5lZCBmcm9tIEdldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UgYWZ0ZXIgYSBjYWxsIHRvIAotICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBt
YXkgbm90IGJlIGV4YWN0bHkgYW4gaWRlbnRpdHkgbWF0cml4LgotICAgICAgICoKLSAgICAgICAq
IE5PVEU6IFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSB1c2VyJ3MgcHJldmlvdXNseSBzYXZl
ZCBzZWF0ZWQgemVybyBwb3NlIGFuZCBzaG91bGQgb25seSBiZSBjYWxsZWQgYXMgdGhlIHJlc3Vs
dCBvZiBhIHVzZXIgYWN0aW9uLiAKLSAgICAgICAqIFVzZXJzIGFyZSBhbHNvIGFibGUgdG8gc2V0
IHRoZWlyIHNlYXRlZCB6ZXJvIHBvc2UgdmlhIHRoZSBPcGVuVlIgRGFzaGJvYXJkLgotICAgICAg
ICoqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZXNldFNlYXRlZFplcm9Qb3NlKCkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIHRoZSBzZWF0ZWQgemVybyBwb3Nl
IHRvIHRoZSBzdGFuZGluZyBhYnNvbHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzIAot
ICAgICAgICogYXBwbGljYXRpb25zIHRvIHJlcHJlc2VudCB0aGUgc2VhdGVkIG9yaWdpbiB0byB1
c2VkIG9yIHRyYW5zZm9ybSBvYmplY3QgcG9zaXRpb25zIGZyb20gb25lIGNvb3JkaW5hdGUKLSAg
ICAgICAqIHN5c3RlbSB0byB0aGUgb3RoZXIuIAotICAgICAgICoKLSAgICAgICAqIFRoZSBzZWF0
ZWQgb3JpZ2luIG1heSBvciBtYXkgbm90IGJlIGluc2lkZSB0aGUgUGxheSBBcmVhIG9yIENvbGxp
c2lvbiBCb3VuZHMgcmV0dXJuZWQgYnkgSVZSQ2hhcGVyb25lLiBJdHMgcG9zaXRpb24gCi0gICAg
ICAgKiBkZXBlbmRzIG9uIHdoYXQgdGhlIHVzZXIgaGFzIHNldCBmcm9tIHRoZSBEYXNoYm9hcmQg
c2V0dGluZ3MgYW5kIHByZXZpb3VzIGNhbGxzIHRvIFJlc2V0U2VhdGVkWmVyb1Bvc2UuICovCi0g
ICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5z
Zm9ybSBmcm9tIHRoZSB0cmFja2luZyBvcmlnaW4gdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRy
YWNraW5nIHN5c3RlbS4gVGhpcyBhbGxvd3MKLSAgICAgICAqIGFwcGxpY2F0aW9ucyB0byBjb252
ZXJ0IGZyb20gcmF3IHRyYWNraW5nIHNwYWNlIHRvIHRoZSBjYWxpYnJhdGVkIHN0YW5kaW5nIGNv
b3JkaW5hdGUgc3lzdGVtLiAqLwotICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKLQotICAgICAgIC8q
KiBHZXQgYSBzb3J0ZWQgYXJyYXkgb2YgZGV2aWNlIGluZGljZXMgb2YgYSBnaXZlbiBjbGFzcyBv
ZiB0cmFja2VkIGRldmljZXMgKGUuZy4gY29udHJvbGxlcnMpLiAgRGV2aWNlcyBhcmUgc29ydGVk
IHJpZ2h0IHRvIGxlZnQKLSAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgdHJhY2tl
ZCBkZXZpY2UgKGRlZmF1bHQ6IGhtZCAtLSBwYXNzIGluIC0xIGZvciBhYnNvbHV0ZSB0cmFja2lu
ZyBzcGFjZSkuICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGV2aWNlcwotICAgICAgICogaW4gdGhl
IGxpc3QsIG9yIHRoZSBzaXplIG9mIHRoZSBhcnJheSBuZWVkZWQgaWYgbm90IGxhcmdlIGVub3Vn
aC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRp
Y2VzT2ZDbGFzcyggRVRyYWNrZWREZXZpY2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBWUl9B
UlJBWV9DT1VOVCh1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQpIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tl
ZERldmljZUluZGV4QXJyYXlDb3VudCwgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRp
dmVUb1RyYWNrZWREZXZpY2VJbmRleCA9IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICkgPSAw
OwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIGxldmVsIG9mIGFjdGl2aXR5IG9uIHRoZSBkZXZp
Y2UuICovCi0gICAgICAgdmlydHVhbCBFRGV2aWNlQWN0aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2
aWNlQWN0aXZpdHlMZXZlbCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSWQgKSA9
IDA7Ci0KLSAgICAgICAvKiogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBhcHBseSB0aGUgc3BlY2lm
aWVkIHRyYW5zZm9ybSB0byB0aGUgc3BlY2lmaWVkIHBvc2UuCi0gICAgICAgKiAgIFRoaXMgcHJv
cGVybHkgdHJhbnNmb3JtcyBhbGwgcG9zZSBjb21wb25lbnRzLCBpbmNsdWRpbmcgdmVsb2NpdHkg
YW5kIGFuZ3VsYXIgdmVsb2NpdHkKLSAgICAgICAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBBcHBs
eVRyYW5zZm9ybSggVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIGNvbnN0IFRyYWNr
ZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSwgY29uc3QgSG1kTWF0cml4MzRfdCAq
cFRyYW5zZm9ybSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBkZXZpY2UgaW5kZXgg
YXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm9sZSwgZm9yIGV4YW1wbGUgdGhlIGxlZnQgaGFu
ZCBvciB0aGUgcmlnaHQgaGFuZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCBHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSggdnI6OkVUcmFj
a2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVy
bnMgdGhlIGNvbnRyb2xsZXIgdHlwZSBhc3NvY2lhdGVkIHdpdGggYSBkZXZpY2UgaW5kZXguICov
Ci0gICAgICAgdmlydHVhbCB2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSBHZXRDb250cm9sbGVy
Um9sZUZvclRyYWNrZWREZXZpY2VJbmRleCggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2
aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBQcm9wZXJ0eSBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2
aWNlIGNsYXNzIG9mIGEgdHJhY2tlZCBkZXZpY2UuIElmIHRoZXJlIGhhcyBub3QgYmVlbiBhIGRl
dmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90Ci0gICAgICAgKiBzaW5jZSB0aGUgYXBwbGljYXRp
b24gc3RhcnRlZCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFRyYWNrZWREZXZpY2VfSW52YWxp
ZC4gRm9yIHByZXZpb3VzIGRldGVjdGVkCi0gICAgICAgKiBkZXZpY2VzIHRoZSBmdW5jdGlvbiB3
aWxsIHJldHVybiB0aGUgcHJldmlvdXNseSBvYnNlcnZlZCBkZXZpY2UgY2xhc3MuIAotICAgICAg
ICoKLSAgICAgICAqIFRvIGRldGVybWluZSB3aGljaCBkZXZpY2VzIGV4aXN0IG9uIHRoZSBzeXN0
ZW0sIGp1c3QgbG9vcCBmcm9tIDAgdG8ga191bk1heFRyYWNrZWREZXZpY2VDb3VudCBhbmQgY2hl
Y2sKLSAgICAgICAqIHRoZSBkZXZpY2UgY2xhc3MuIEV2ZXJ5IGRldmljZSB3aXRoIHNvbWV0aGlu
ZyBvdGhlciB0aGFuIFRyYWNrZWREZXZpY2VfSW52YWxpZCBpcyBhc3NvY2lhdGVkIHdpdGggYW4g
Ci0gICAgICAgKiBhY3R1YWwgdHJhY2tlZCBkZXZpY2UuICovCi0gICAgICAgdmlydHVhbCBFVHJh
Y2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZpY2VDbGFzcyggdnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QuICovCi0gICAgICAgdmly
dHVhbCBib29sIElzVHJhY2tlZERldmljZUNvbm5lY3RlZCggdnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90IHVuRGV2aWNlSW5kZXggKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgcHJv
cGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBp
cyBub3QgYSBib29sIHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8q
KiBSZXR1cm5zIGEgZmxvYXQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZh
bGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBmbG9hdCB0eXBlIHRoaXMgZnVuY3Rpb24gd2ls
bCByZXR1cm4gMC4gKi8KLSAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0VHJhY2tlZERldmlj
ZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBM
ICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgYW4gaW50IHByb3BlcnR5LiBJZiB0aGUgZGV2
aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgaW50IHR5cGUg
dGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwotICAgICAgIHZpcnR1YWwgaW50MzJfdCBH
ZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0
IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVy
dHkgaXMgbm90IGEgdWludDY0IHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLwot
ICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgYSBtYXRyaXggcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXgg
aXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBtYXRyaXggdHlwZSwgdGhpcyBm
dW5jdGlvbiB3aWxsIHJldHVybiBpZGVudGl0eS4gKi8KLSAgICAgICB2aXJ0dWFsIEhtZE1hdHJp
eDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJu
cyBhIHN0cmluZyBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCAKLSAg
ICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZwotICAgICAgICogbnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVm
ZmVycyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCi0gICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXpl
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwotCi0gICAgICAgLyoq
IHJldHVybnMgYSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJv
cGVydHkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZSAKLSAgICAgICAqIG9mIHRo
ZSBlcnJvciBlbnVtIHZhbHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KLSAgICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVycm9yICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gRXZlbnQgbWV0aG9kcwotICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlm
IHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRo
b2QgcmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVz
IG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0
RXZlbnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0
IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVu
dHMKLSAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIEZpbGxzIGluIHRoZSBwb3Nl
IG9mIHRoZSBhc3NvY2lhdGVkIHRyYWNrZWQgZGV2aWNlIGluIHRoZSBwcm92aWRlZCBwb3NlIHN0
cnVjdC4gCi0gICAgICAgKiBUaGlzIHBvc2Ugd2lsbCBhbHdheXMgYmUgb2xkZXIgdGhhbiB0aGUg
Y2FsbCB0byB0aGlzIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgdG8gcmVuZGVyIHRo
ZSBkZXZpY2UuIAotICAgICAgIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRl
cyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4
dEV2ZW50V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIFZSRXZlbnRf
dCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
KnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKLQotICAgICAgIC8qKiByZXR1cm5zIHRoZSBuYW1l
IG9mIGFuIEVWUkV2ZW50IGVudW0gdmFsdWUgKi8KLSAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIg
KkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSggRVZSRXZlbnRUeXBlIGVUeXBlICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
UmVuZGVyaW5nIGhlbHBlciBtZXRob2RzCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaGlkZGVuIGFyZWEgbWVz
aCBmb3IgdGhlIGN1cnJlbnQgSE1ELiBUaGUgcGl4ZWxzIGNvdmVyZWQgYnkgdGhpcyBtZXNoIHdp
bGwgbmV2ZXIgYmUgc2VlbiBieSB0aGUgdXNlciBhZnRlciB0aGUgbGVucyBkaXN0b3J0aW9uIGlz
Ci0gICAgICAgKiBhcHBsaWVkIGJhc2VkIG9uIHZpc2liaWxpdHkgdG8gdGhlIHBhbmVscy4gSWYg
dGhpcyBITUQgZG9lcyBub3QgaGF2ZSBhIGhpZGRlbiBhcmVhIG1lc2gsIHRoZSB2ZXJ0ZXggZGF0
YSBhbmQgY291bnQgd2lsbCBiZSBOVUxMIGFuZCAwIHJlc3BlY3RpdmVseS4KLSAgICAgICAqIFRo
aXMgbWVzaCBpcyBtZWFudCB0byBiZSByZW5kZXJlZCBpbnRvIHRoZSBzdGVuY2lsIGJ1ZmZlciAo
b3IgaW50byB0aGUgZGVwdGggYnVmZmVyIHNldHRpbmcgbmVhcnopIGJlZm9yZSByZW5kZXJpbmcg
ZWFjaCBleWUncyB2aWV3LiAKLSAgICAgICAqIFRoaXMgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNl
IGJ5IGxldHRpbmcgdGhlIEdQVSBlYXJseS1yZWplY3QgcGl4ZWxzIHRoZSB1c2VyIHdpbGwgbmV2
ZXIgc2VlIGJlZm9yZSBydW5uaW5nIHRoZSBwaXhlbCBzaGFkZXIuCi0gICAgICAgKiBOT1RFOiBS
ZW5kZXIgdGhpcyBtZXNoIHdpdGggYmFja2ZhY2UgY3VsbGluZyBkaXNhYmxlZCBzaW5jZSB0aGUg
d2luZGluZyBvcmRlciBvZiB0aGUgdmVydGljZXMgY2FuIGJlIGRpZmZlcmVudCBwZXItSE1EIG9y
IHBlci1leWUuCi0gICAgICAgKiBTZXR0aW5nIHRoZSBiSW52ZXJzZSBhcmd1bWVudCB0byB0cnVl
IHdpbGwgcHJvZHVjZSB0aGUgdmlzaWJsZSBhcmVhIG1lc2ggdGhhdCBpcyBjb21tb25seSB1c2Vk
IGluIHBsYWNlIG9mIGZ1bGwtc2NyZWVuIHF1YWRzLiBUaGUgdmlzaWJsZSBhcmVhIG1lc2ggY292
ZXJzIGFsbCBvZiB0aGUgcGl4ZWxzIHRoZSBoaWRkZW4gYXJlYSBtZXNoIGRvZXMgbm90IGNvdmVy
LgotICAgICAgICogU2V0dGluZyB0aGUgYkxpbmVMb29wIGFyZ3VtZW50IHdpbGwgcmV0dXJuIGEg
bGluZSBsb29wIG9mIHZlcnRpY2VzIGluIEhpZGRlbkFyZWFNZXNoX3QtPnBWZXJ0ZXhEYXRhIHdp
dGggSGlkZGVuQXJlYU1lc2hfdC0+dW5UcmlhbmdsZUNvdW50IHNldCB0byB0aGUgbnVtYmVyIG9m
IHZlcnRpY2VzLgotICAgICAgICovCi0gICAgICAgdmlydHVhbCBIaWRkZW5BcmVhTWVzaF90IEdl
dEhpZGRlbkFyZWFNZXNoKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlID0g
a19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgKSA9IDA7Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBDb250cm9sbGVyIG1ldGhvZHMK
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAg
IC8qKiBGaWxscyB0aGUgc3VwcGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGNvbnRyb2xsZXIuIFJldHVybnMgZmFsc2UgaWYgdGhlIGNvbnRyb2xsZXIgaW5kZXgKLSAg
ICAgICAqIGlzIGludmFsaWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbnRyb2xsZXJT
dGF0ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB2
cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250
cm9sbGVyU3RhdGVTaXplICkgPSAwOwotCi0gICAgICAgLyoqIGZpbGxzIHRoZSBzdXBwbGllZCBz
dHJ1Y3Qgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29udHJvbGxlciBhbmQgdGhlIHBy
b3ZpZGVkIHBvc2Ugd2l0aCB0aGUgcG9zZSBvZiAKLSAgICAgICAqIHRoZSBjb250cm9sbGVyIHdo
ZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgd2FzIHVwZGF0ZWQgbW9zdCByZWNlbnRseS4gVXNlIHRo
aXMgZm9ybSBpZiB5b3UgbmVlZCBhIHByZWNpc2UgY29udHJvbGxlcgotICAgICAgICogcG9zZSBh
cyBpbnB1dCB0byB5b3VyIGFwcGxpY2F0aW9uIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBvciByZWxl
YXNlcyBhIGJ1dHRvbi4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q29udHJvbGxlclN0YXRl
V2l0aFBvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRl
X3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSwgVHJh
Y2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOwotCi0gICAgICAgLyoq
IFRyaWdnZXIgYSBzaW5nbGUgaGFwdGljIHB1bHNlIG9uIGEgY29udHJvbGxlci4gQWZ0ZXIgdGhp
cyBjYWxsIHRoZSBhcHBsaWNhdGlvbiBtYXkgbm90IHRyaWdnZXIgYW5vdGhlciBoYXB0aWMgcHVs
c2Ugb24gdGhpcyBjb250cm9sbGVyCi0gICAgICAgKiBhbmQgYXhpcyBjb21iaW5hdGlvbiBmb3Ig
NW1zLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBUcmlnZ2VySGFwdGljUHVsc2UoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMyX3QgdW5BeGlz
SWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyApID0gMDsKLQotICAgICAgIC8q
KiByZXR1cm5zIHRoZSBuYW1lIG9mIGFuIEVWUkJ1dHRvbklkIGVudW0gdmFsdWUgKi8KLSAgICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKCBFVlJCdXR0b25J
ZCBlQnV0dG9uSWQgKSA9IDA7Ci0KLSAgICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBF
VlJDb250cm9sbGVyQXhpc1R5cGUgZW51bSB2YWx1ZSAqLwotICAgICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKCBFVlJDb250cm9sbGVyQXhp
c1R5cGUgZUF4aXNUeXBlICkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9wZW5WUiB0aGF0IHRo
aXMgcHJvY2VzcyB3YW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIGNvbnRyb2xsZXIgYnV0dG9uIHN0
YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3aWxsIGJlIG5vdGlmaWVkIHRoYXQg
Ci0gICAgICAgKiB0aGV5IGhhdmUgbG9zdCBpbnB1dCBmb2N1cyB3aXRoIGEgVlJFdmVudF9JbnB1
dEZvY3VzQ2FwdHVyZWQgZXZlbnQuIFJldHVybnMgZmFsc2UgaWYgaW5wdXQgZm9jdXMgY291bGQg
bm90IGJlIGNhcHR1cmVkIGZvcgotICAgICAgICogc29tZSByZWFzb24uICovCi0gICAgICAgdmly
dHVhbCBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkgPSAwOwotCi0gICAgICAgLyoqIFRlbGxzIE9w
ZW5WUiB0aGF0IHRoaXMgcHJvY2VzcyBubyBsb25nZXIgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0
byBidXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhlciBhcHBzIHdpbGwgYmUgbm90
aWZpZWQgCi0gICAgICAgKiB0aGF0IGlucHV0IGZvY3VzIGhhcyBiZWVuIHJlbGVhc2VkIHdpdGgg
YSBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCBldmVudC4gKi8KLSAgICAgICB2aXJ0dWFsIHZv
aWQgUmVsZWFzZUlucHV0Rm9jdXMoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IGlucHV0IGZvY3VzIGlzIGNhcHR1cmVkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCkgPSAwOwot
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
Ly8gRGVidWcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgLyoqIFNlbmRzIGEgcmVxdWVzdCB0byB0aGUgZHJpdmVyIGZvciB0
aGUgc3BlY2lmaWVkIGRldmljZSBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIFRoZSBtYXhpbXVt
IHJlc3BvbnNlIHNpemUgaXMgMzJrLAotICAgICAgICogYnV0IHRoaXMgbWV0aG9kIGNhbiBiZSBj
YWxsZWQgd2l0aCBhIHNtYWxsZXIgYnVmZmVyLiBJZiB0aGUgcmVzcG9uc2UgZXhjZWVkcyB0aGUg
c2l6ZSBvZiB0aGUgYnVmZmVyLCBpdCBpcyB0cnVuY2F0ZWQuIAotICAgICAgICogVGhlIHNpemUg
b2YgdGhlIHJlc3BvbnNlIGluY2x1ZGluZyBpdHMgdGVybWluYXRpbmcgbnVsbCBpcyByZXR1cm5l
ZC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IERyaXZlckRlYnVnUmVxdWVzdCggdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaFJlcXVlc3Qs
IGNoYXIgKnBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSAp
ID0gMDsKLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIEZpcm13YXJlIG1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAKLSAgICAgICAvKiogUGVyZm9ybXMgdGhlIGFjdHVh
bCBmaXJtd2FyZSB1cGRhdGUgaWYgYXBwbGljYWJsZS4gCi0gICAgICAgICogVGhlIGZvbGxvd2lu
ZyBldmVudHMgd2lsbCBiZSBzZW50LCBpZiBWUkZpcm13YXJlRXJyb3JfTm9uZSB3YXMgcmV0dXJu
ZWQ6IFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkLCBWUkV2ZW50X0Zpcm13YXJlVXBkYXRl
RmluaXNoZWQgCi0gICAgICAgICogVXNlIHRoZSBwcm9wZXJ0aWVzIFByb3BfRmlybXdhcmVfVXBk
YXRlQXZhaWxhYmxlX0Jvb2wsIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wsIGFuZCBQ
cm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcKLSAgICAgICAgKiB0byBmaWd1cmUg
b3VyIHdoZXRoZXIgYSBmaXJtd2FyZSB1cGRhdGUgaXMgYXZhaWxhYmxlLCBhbmQgdG8gZmlndXJl
IG91dCB3aGV0aGVyIGl0cyBhIG1hbnVhbCB1cGRhdGUgCi0gICAgICAgICogUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIHNob3VsZCBwb2ludCB0byBhbiBVUkwgZGVzY3JpYmlu
ZyB0aGUgbWFudWFsIHVwZGF0ZSBwcm9jZXNzICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSRmly
bXdhcmVFcnJvciBQZXJmb3JtRmlybXdhcmVVcGRhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4ICkgPSAwOwotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gQXBwbGljYXRpb24gbGlmZSBjeWNsZSBtZXRob2Rz
Ci0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAg
ICAvKiogQ2FsbCB0aGlzIHRvIGFja25vd2xlZGdlIHRvIHRoZSBzeXN0ZW0gdGhhdCBWUkV2ZW50
X1F1aXQgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHRoYXQgdGhlIHByb2Nlc3MgaXMgZXhpdGluZy4K
LSAgICAgICAqIFRoaXMgZXh0ZW5kcyB0aGUgdGltZW91dCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBr
aWxsZWQuICovCi0gICAgICAgdmlydHVhbCB2b2lkIEFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCkg
PSAwOwotCi0gICAgICAgLyoqIENhbGwgdGhpcyB0byB0ZWxsIHRoZSBzeXN0ZW0gdGhhdCB0aGUg
dXNlciBpcyBiZWluZyBwcm9tcHRlZCB0byBzYXZlIGRhdGEuIFRoaXMKLSAgICAgICAqIGhhbHRz
IHRoZSB0aW1lb3V0IGFuZCBkaXNtaXNzZXMgdGhlIGRhc2hib2FyZCAoaWYgaXQgd2FzIHVwKS4g
QXBwbGljYXRpb25zIHNob3VsZCBiZSBzdXJlIHRvIGFjdHVhbGx5IAotICAgICAgICogcHJvbXB0
IHRoZSB1c2VyIHRvIHNhdmUgYW5kIHRoZW4gZXhpdCBhZnRlcndhcmQsIG90aGVyd2lzZSB0aGUg
dXNlciB3aWxsIGJlIGxlZnQgaW4gYSBjb25mdXNpbmcgc3RhdGUuICovCi0gICAgICAgdmlydHVh
bCB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkgPSAwOwotCi19OwotCi1zdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3RlbV8wMTciOwot
Ci19Ci0KLQotLy8gaXZyYXBwbGljYXRpb25zLmgKLW5hbWVzcGFjZSB2cgotewotCi0gICAgICAg
LyoqIFVzZWQgZm9yIGFsbCBlcnJvcnMgcmVwb3J0ZWQgYnkgdGhlIElWUkFwcGxpY2F0aW9ucyBp
bnRlcmZhY2UgKi8KLSAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwgICAgICAgLy8g
T25seSBvbmUgYXBwbGljYXRpb24gY2FuIHVzZSBhbnkgZ2l2ZW4ga2V5Ci0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0ID0gMTAxLCAgICAgICAgICAgICAgICAgICAg
IC8vIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYSBtYW5pZmVzdAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwgICAgICAg
ICAgICAgICAgICAgICAvLyBObyBhcHBsaWNhdGlvbiBpcyBydW5uaW5nCi0gICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24gPSAxMDQsICAgICAgIC8vIHRoZSBh
cHBsaWNhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX0lQQ0ZhaWxlZCA9IDEwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW4g
SVBDIGZhaWx1cmUgY2F1c2VkIHRoZSByZXF1ZXN0IHRvIGZhaWwKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsIAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0gMTA3LAotICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkID0gMTA5LCAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoZSBwcm9jZXNzIGRpZG4ndCBzdGFydAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsIC8vIHRo
ZSBzeXN0ZW0gd2FzIGFscmVhZHkgc3RhcnRpbmcgdGhlIHNhbWUgYXBwbGljYXRpb24KLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsICAgICAg
ICAgICAgICAvLyBUaGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIGEgZGlmZmVyZW50IGFw
cGxpY2F0aW9uCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlv
blF1aXR0aW5nID0gMTEyLCAKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5z
aXRpb25BYm9ydGVkID0gMTEzLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSXNU
ZW1wbGF0ZSA9IDExNCwgLy8gZXJyb3Igd2hlbiB5b3UgdHJ5IHRvIGNhbGwgTGF1bmNoQXBwbGlj
YXRpb24oKSBvbiBhIHRlbXBsYXRlIHR5cGUgYXBwICh1c2UgTGF1bmNoVGVtcGxhdGVBcHBsaWNh
dGlvbikKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1N0ZWFtVlJJc0V4aXRpbmcg
PSAxMTUsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxs
ID0gMjAwLCAgICAgICAgICAgICAgLy8gVGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxs
IHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRhdGEKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX1Byb3BlcnR5Tm90U2V0ID0gMjAxLCAgICAgICAgICAgICAgLy8gVGhlIHJlcXVlc3RlZCBw
cm9wZXJ0eSB3YXMgbm90IHNldAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5r
bm93blByb3BlcnR5ID0gMjAyLAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwMywKLSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVt
IGxlbmd0aCBvZiBhbiBhcHBsaWNhdGlvbiBrZXkgKi8KLSAgICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4OwotCi0gICAgICAgLyoqIHRo
ZXNlIGFyZSB0aGUgcHJvcGVydGllcyBhdmFpbGFibGUgb24gYXBwbGljYXRpb25zLiAqLwotICAg
ICAgIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotICAgICAgIHsKLSAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMCwKLQotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlw
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgICAgICAgPSAxMiwKLSAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgPSAxMywKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0Fy
Z3VtZW50c19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDE0LAotICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDE1LAotCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlv
bl9TdHJpbmcgICAgICAgICAgICAgID0gNTAsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9OZXdzVVJMX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTEsCi0gICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nICAgICAgICAgICAg
ICAgICAgICAgPSA1MiwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJj
ZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MywKLQotICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wgICAgICAgPSA2
MCwKLSAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCAg
ICAgICAgICAgICAgICAgICAgID0gNjEsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0luc3RhbmNlZF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MiwKLSAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW50ZXJuYWxfQm9vbCAgICAgICAgICAgICAg
ICAgICAgID0gNjMsCi0gICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9XYW50c0Nv
bXBvc2l0b3JQYXVzZUluU3RhbmRieV9Cb29sID0gNjQsCi0KLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCAgICAgICAgICAgICAgPSA3MCwK
LSAgICAgICB9OwotCi0gICAgICAgLyoqIFRoZXNlIGFyZSBzdGF0ZXMgdGhlIHNjZW5lIGFwcGxp
Y2F0aW9uIHN0YXJ0dXAgcHJvY2VzcyB3aWxsIGdvIHRocm91Z2guICovCi0gICAgICAgZW51bSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvblRyYW5zaXRpb25fTm9uZSA9IDAsCi0KLSAgICAgICAgICAgICAgVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVu
Y2hlZCA9IDIwLAotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaEtleTsKLSAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqcGNoVmFsdWU7Ci0gICAgICAgfTsKLQotICAgICAgIC8qKiBDdXJyZW50
bHkgcmVjb2duaXplZCBtaW1lIHR5cGVzICovCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwICAgICAgICAgICAgICA9ICJ2ci9ob21lIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVy
ICAgICAgID0gInZyL2dhbWVfdGhlYXRlciI7Ci0KLSAgICAgICBjbGFzcyBJVlJBcHBsaWNhdGlv
bnMKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLSAgQXBwbGljYXRpb24gbWFuYWdlbWVudCAgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAg
ICAgICAgICAgICAgLyoqIEFkZHMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgdG8gdGhlIGxpc3Qg
dG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBhcHBsaWNhdGlvbnMu
IAotICAgICAgICAgICAgICAqIFRlbXBvcmFyeSBtYW5pZmVzdHMgYXJlIG5vdCBhdXRvbWF0aWNh
bGx5IGxvYWRlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
QWRkQXBwbGljYXRpb25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVz
dEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkgPSBmYWxzZSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmVtb3ZlcyBhbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCBmcm9tIHRoZSBsaXN0IHRvIGxv
YWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBwbGljYXRpb25zLiAqLwot
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUmVtb3ZlQXBwbGljYXRp
b25NYW5pZmVzdCggY29uc3QgY2hhciAqcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW4gYXBwbGljYXRpb24g
aXMgaW5zdGFsbGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0FwcGxpY2F0aW9u
SW5zdGFsbGVkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBs
aXN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25Db3Vu
dCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBzcGVj
aWZpZWQgYXBwbGljYXRpb24uIFRoZSBpbmRleCBpcyBhdCBsZWFzdCAwIGFuZCBpcyBsZXNzIHRo
YW4gdGhlIHJldHVybiAKLSAgICAgICAgICAgICAgKiB2YWx1ZSBvZiBHZXRBcHBsaWNhdGlvbkNv
dW50KCkuIFRoZSBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGtfdW5NYXhBcHBsaWNhdGlvbktl
eUxlbmd0aCBpbiBvcmRlciB0byAKLSAgICAgICAgICAgICAgKiBmaXQgdGhlIGtleS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5
QnlJbmRleCggdWludDMyX3QgdW5BcHBsaWNhdGlvbkluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBhcHBsaWNhdGlvbiBmb3Ig
dGhlIHNwZWNpZmllZCBQcm9jZXNzIElkLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCAK
LSAgICAgICAgICAgICAgKiBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8g
Zml0IHRoZSBrZXkuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hh
ciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9uLiBUaGUgZXhpc3Rpbmcg
c2NlbmUgYXBwbGljYXRpb24gd2lsbCBleGl0IGFuZCB0aGVuIHRoZSBuZXcgYXBwbGljYXRpb24g
d2lsbCBzdGFydC4KLSAgICAgICAgICAgICAgKiBUaGlzIGNhbGwgaXMgbm90IHZhbGlkIGZvciBk
YXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbnMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbiggY29uc3QgY2hhciAqcGNoQXBw
S2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyBhbiBpbnN0YW5jZSBvZiBh
biBhcHBsaWNhdGlvbiBvZiB0eXBlIHRlbXBsYXRlLCB3aXRoIGl0cyBhcHAga2V5IGJlaW5nIHBj
aE5ld0FwcEtleSAod2hpY2ggbXVzdCBiZSB1bmlxdWUpIGFuZCBvcHRpb25hbGx5IG92ZXJyaWRl
IHNlY3Rpb25zCi0gICAgICAgICAgICAgICogZnJvbSB0aGUgbWFuaWZlc3QgZmlsZSB2aWEgQXBw
T3ZlcnJpZGVLZXlzX3QKLSAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBF
VlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24oIGNvbnN0IGNoYXIg
KnBjaFRlbXBsYXRlQXBwS2V5LCBjb25zdCBjaGFyICpwY2hOZXdBcHBLZXksIFZSX0FSUkFZX0NP
VU5UKCB1bktleXMgKSBjb25zdCBBcHBPdmVycmlkZUtleXNfdCAqcEtleXMsIHVpbnQzMl90IHVu
S2V5cyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogbGF1bmNoZXMgdGhlIGFwcGxpY2F0aW9u
IGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtaW1lIHR5cGUgYW5kIHBhc3NlcyBpdCB0
aGUgb3B0aW9uIGFyZ3MsIHR5cGljYWxseSB0aGUgZmlsZW5hbWUgb3Igb2JqZWN0IG5hbWUgb2Yg
dGhlIGl0ZW0gYmVpbmcgbGF1bmNoZWQgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
QXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZSggY29uc3QgY2hh
ciAqcGNoTWltZVR5cGUsIGNvbnN0IGNoYXIgKnBjaEFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIExhdW5jaGVzIHRoZSBkYXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbiBpZiBpdCBp
cyBub3QgYWxyZWFkeSBydW5uaW5nLiBUaGlzIGNhbGwgaXMgb25seSB2YWxpZCBmb3IgCi0gICAg
ICAgICAgICAgICogZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSgg
Y29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBDYW5jZWwg
YSBwZW5kaW5nIGxhdW5jaCBmb3IgYW4gYXBwbGljYXRpb24gKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIElkZW50aWZpZXMgYSBydW5uaW5nIGFwcGxpY2F0
aW9uLiBPcGVuVlIgY2FuJ3QgYWx3YXlzIHRlbGwgd2hpY2ggcHJvY2VzcyBzdGFydGVkIGluIHJl
c3BvbnNlCi0gICAgICAgICAgICAgICogdG8gYSBVUkwuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGEg
VVJMIGhhbmRsZXIgKG9yIHRoZSBwcm9jZXNzIGl0c2VsZikgdG8gaWRlbnRpZnkgdGhlIGFwcCBr
ZXkgCi0gICAgICAgICAgICAgICogZm9yIHRoZSBub3cgcnVubmluZyBhcHBsaWNhdGlvbi4gUGFz
c2luZyBhIHByb2Nlc3MgSUQgb2YgMCBpZGVudGlmaWVzIHRoZSBjYWxsaW5nIHByb2Nlc3MuIAot
ICAgICAgICAgICAgICAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IGJlIG9uZSB0aGF0J3Mga25vd24g
dG8gdGhlIHN5c3RlbSB2aWEgYSBjYWxsIHRvIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QuICovCi0g
ICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBJZGVudGlmeUFwcGxpY2F0
aW9uKCB1aW50MzJfdCB1blByb2Nlc3NJZCwgY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElEIGZvciBhbiBhcHBsaWNh
dGlvbi4gUmV0dXJuIDAgaWYgdGhlIGFwcGxpY2F0aW9uIHdhcyBub3QgZm91bmQgb3IgaXMgbm90
IHJ1bm5pbmcuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRp
b25Qcm9jZXNzSWQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAg
ICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb25zIGVycm9yICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJv
bUVudW0oIEVWUkFwcGxpY2F0aW9uRXJyb3IgZXJyb3IgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzICAtLS0tLS0tLS0tLS0t
LS0gLy8KLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHZhbHVlIGZvciBhbiBhcHBsaWNh
dGlvbiBwcm9wZXJ0eS4gVGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplIHRvIGZpdCB0aGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBFVlJBcHBs
aWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFByb3Bl
cnR5VmFsdWVCdWZmZXIsIHVpbnQzMl90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBw
bGljYXRpb25FcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFJldHVybnMgYSBib29sIHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0
dXJucyBmYWxzZSBpbiBhbGwgZXJyb3IgY2FzZXMuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBF
VlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50
NjQgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBSZXR1cm5zIDAgaW4gYWxsIGVy
cm9yIGNhc2VzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldEFwcGxpY2F0
aW9uUHJvcGVydHlVaW50NjQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhcHBsaWNhdGlvbiBhdXRvLWxh
dW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCByZXR1
cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29s
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGlj
YXRpb25BdXRvTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFwcGxpY2F0aW9uIGF1dG8tbGF1
bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIHJldHVy
biB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wu
ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2go
IGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQWRkcyB0
aGlzIG1pbWUtdHlwZSB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhp
cyBhcHBsaWNhdGlvbiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29uc3QgY2hhciAqcGNoQXBwS2V5
LCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0
dXJuIHRoZSBhcHAga2V5IHRoYXQgd2lsbCBvcGVuIHRoaXMgbWltZSB0eXBlICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSggY29u
c3QgY2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlCdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbGlzdCBv
ZiBzdXBwb3J0ZWQgbWltZSB0eXBlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgY29tbWEtZGVsaW1p
dGVkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlcyggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBjaGFyICpwY2hNaW1lVHlwZXNCdWZm
ZXIsIHVpbnQzMl90IHVuTWltZVR5cGVzQnVmZmVyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXQgdGhlIGxpc3Qgb2YgYXBwLWtleXMgdGhhdCBzdXBwb3J0IHRoaXMgbWltZSB0eXBlLCBj
b21tYS1kZWxpbWl0ZWQsIHRoZSByZXR1cm4gdmFsdWUgaXMgbnVtYmVyIG9mIGJ5dGVzIHlvdSBu
ZWVkIHRvIHJldHVybiB0aGUgZnVsbCBzdHJpbmcgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKCBjb25zdCBjaGFyICpw
Y2hNaW1lVHlwZSwgY2hhciAqcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0
IHRoZSBhcmdzIGxpc3QgZnJvbSBhbiBhcHAgbGF1bmNoIHRoYXQgaGFkIHRoZSBwcm9jZXNzIGFs
cmVhZHkgcnVubmluZywgeW91IGNhbGwgdGhpcyB3aGVuIHlvdSBnZXQgYSBWUkV2ZW50X0FwcGxp
Y2F0aW9uTWltZVR5cGVMb2FkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMoIHVpbnQzMl90IHVuSGFuZGxlLCBjaGFyICpwY2hB
cmdzLCB1aW50MzJfdCB1bkFyZ3MgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tICBUcmFuc2l0aW9uIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGFwcCBrZXkgZm9yIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGlz
IHN0YXJ0aW5nIHVwICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRTdGFydGluZ0FwcGxpY2F0aW9uKCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90
IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNpdGlvblN0YXRlKCkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGVycm9ycyB0aGF0IHdvdWxkIHByZXZlbnQgdGhl
IHNwZWNpZmllZCBhcHBsaWNhdGlvbiBmcm9tIGxhdW5jaGluZyBpbW1lZGlhdGVseS4gQ2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uIHdpbGwKLSAgICAgICAgICAgICAgKiBjYXVzZSB0aGUgY3VycmVudCBz
Y2VuZSBhcHBsaWNhdGlvbiB0byBxdWl0LCBzbyBvbmx5IGNhbGwgaXQgd2hlbiB5b3UgYXJlIGFj
dHVhbGx5IGFib3V0IHRvIGxhdW5jaCBzb21ldGhpbmcgZWxzZS4KLSAgICAgICAgICAgICAgKiBX
aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGRvIGFib3V0IHRoZXNlIGZhaWx1cmVzIGRlcGVuZHMgb24g
dGhlIGZhaWx1cmU6Ci0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBw
bGljYXRpb25RdWl0dGluZyAtIEFuIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHRvbGQg
dG8gcXVpdC4gV2FpdCBmb3IgYSBWUkV2ZW50X1Byb2Nlc3NRdWl0Ci0gICAgICAgICAgICAgICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0cnkgYWdh
aW4uCi0gICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJl
YWR5U3RhcnRpbmcgLSBUaGlzIGFwcGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMg
aXMgYSBwZXJtYW5lbnQgZmFpbHVyZS4KLSAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25F
cnJvcl9MYXVuY2hJblByb2dyZXNzICAgICAgICAgICAgIC0gQSBkaWZmZXJlbnQgYXBwbGljYXRp
b24gaXMgYWxyZWFkeSBzdGFydGluZy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgotICAg
ICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgICAgICAgICAgICAgICAgICAg
LSBHbyBhaGVhZCBhbmQgbGF1bmNoLiBFdmVyeXRoaW5nIGlzIGNsZWFyLgotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgUGVyZm9ybUFw
cGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKLQot
ICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gYXBwbGljYXRpb24gdHJh
bnNpdGlvbiBzdGF0ZSAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25UcmFu
c2l0aW9uU3RhdGUgc3RhdGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgb3V0Z29pbmcgc2NlbmUgYXBwIGhhcyByZXF1ZXN0ZWQgYSBzYXZlIHByb21wdCBi
ZWZvcmUgZXhpdGluZyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNRdWl0VXNlclBy
b21wdFJlcXVlc3RlZCgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogU3RhcnRzIGEgc3VicHJv
Y2VzcyB3aXRoaW4gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24uIFRoaXMKLSAgICAgICAgICAgICAg
KiBzdXBwcmVzc2VzIGFsbCBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIFVJIGFuZCBhdXRvbWF0aWNh
bGx5IGlkZW50aWZpZXMgdGhlIG5ldyBleGVjdXRhYmxlIAotICAgICAgICAgICAgICAqIGFzIHBh
cnQgb2YgdGhlIHNhbWUgYXBwbGljYXRpb24uIE9uIHN1Y2Nlc3MgdGhlIGNhbGxpbmcgcHJvY2Vz
cyBzaG91bGQgZXhpdCBpbW1lZGlhdGVseS4gCi0gICAgICAgICAgICAgICogSWYgd29ya2luZyBk
aXJlY3RvcnkgaXMgTlVMTCBvciAiIiB0aGUgZGlyZWN0b3J5IHBvcnRpb24gb2YgdGhlIGJpbmFy
eSBwYXRoIHdpbGwgYmUgCi0gICAgICAgICAgICAgICogdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoSW50ZXJu
YWxQcm9jZXNzKCBjb25zdCBjaGFyICpwY2hCaW5hcnlQYXRoLCBjb25zdCBjaGFyICpwY2hBcmd1
bWVudHMsIGNvbnN0IGNoYXIgKnBjaFdvcmtpbmdEaXJlY3RvcnkgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgc2NlbmUgcHJvY2VzcyBJRCBhY2NvcmRpbmcg
dG8gdGhlIGFwcGxpY2F0aW9uIHN5c3RlbS4gQSBzY2VuZSBwcm9jZXNzIHdpbGwgZ2V0IHNjZW5l
Ci0gICAgICAgICAgICAgICogZm9jdXMgb25jZSBpdCBzdGFydHMgcmVuZGVyaW5nLCBidXQgaXQg
d2lsbCBhcHBlYXIgaGVyZSBvbmNlIGl0IGNhbGxzIFZSX0luaXQgd2l0aCB0aGUgU2NlbmUgYXBw
bGljYXRpb24KLSAgICAgICAgICAgICAgKiB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCgpID0gMDsKLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9
ICJJVlJBcHBsaWNhdGlvbnNfMDA2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQotLy8gaXZyc2V0
dGluZ3MuaAotbmFtZXNwYWNlIHZyCi17Ci0gICAgICAgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi0g
ICAgICAgewotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAsCi0gICAgICAg
ICAgICAgIFZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAotICAgICAgICAgICAgICBWUlNl
dHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQgPSAyLAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJy
b3JfUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5n
SGFzTm9EZWZhdWx0ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBzZXR0aW5n
IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxlIGFuZCBoYXMg
bm90IGJlZW4gc2V0Ci0gICAgICAgfTsKLQotICAgICAgIC8vIFRoZSBtYXhpbXVtIGxlbmd0aCBv
ZiBhIHNldHRpbmdzIGtleQotICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4U2V0
dGluZ3NLZXlMZW5ndGggPSAxMjg7Ci0KLSAgICAgICBjbGFzcyBJVlJTZXR0aW5ncwotICAgICAg
IHsKLSAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBvY2N1cnJlZCAo
Zm9yY2Ugb3Igc2V0dGluZ3MgZGlydHkpCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTeW5j
KCBib29sIGJGb3JjZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0
ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCggY29uc3QgY2hh
ciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBF
VlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RmxvYXQo
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBmbG9h
dCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZhbHVlLCBFVlJT
ZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICAv
LyBVc2VycyBvZiB0aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBkZWZhdWx0IGlu
IGRlZmF1bHQudnJzZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBkaXJlY3RvcnkK
LSAgICAgICAgICAgICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBkcml2ZXJfeHh4
IGRpcmVjdG9yeS4gT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2UsIDAsIDAuMCBv
ciAiIgotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3QgY2hhciAqcGNo
U2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBl
RXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0
SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAg
ICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3Qg
Y2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBjb25zdCBjaGFy
ICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5nc0Vycm9yICpw
ZUVycm9yID0gbnVsbHB0ciApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVt
b3ZlU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVL
ZXlJblNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRp
bmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKLSAgICAg
ICB9OwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIHN0ZWFtdnIga2V5cwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZWN0aW9uID0g
InN0ZWFtdnIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3Jj
ZWREcml2ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlE
ZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rl
YnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0g
ImRpc3BsYXlEZWJ1Z1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9B
bGxBcHBzX0Jvb2w9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2
ZWwiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JUERf
RmxvYXQgPSAiaXBkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlv
bl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWlnaHRfRmxv
YXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJw
bGF5QXJlYUNvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9
ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRW
aWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiA9ICJkaXJlY3RN
b2RlRWRpZFBpZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0
RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dl
ck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nl
c19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX1N1cGVyc2FtcGxlU2NhbGVfRmxvYXQgPSAic3VwZXJzYW1w
bGVTY2FsZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXBy
b2plY3Rpb25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25f
Qm9vbCA9ICJmb3JjZVJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZh
ZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93TWlycm9y
Vmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JW
aWV3R2VvbWV0cnkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0
YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21E
YXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9FbmFibGVIb21lQXBwID0gImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50
MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8i
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JcGRPZmZz
ZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfQWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZ19Cb29sID0gImFsbG93U3Vw
ZXJzYW1wbGVGaWx0ZXJpbmciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9FbmFibGVMaW51eFZ1bGthbkFzeW5jX0Jvb2wgPSAiZW5hYmxlTGludXhWdWxr
YW5Bc3luYyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbGln
aHRob3VzZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdo
dGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlzYWJs
ZWltdSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9u
RGVidWdfSW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9
ICJwcmltYXJ5YmFzZXN0YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotCi0gICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIG51bGwga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VyaWFsTnVtYmVy
X1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndp
bmRvd1giOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5k
b3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3
aW5kb3dIZWlnaHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVs
bF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZWNvbmRz
RnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVl
bmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVuY3kiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIC8vIHVzZXIgaW50ZXJmYWNlIGtleXMKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJm
YWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZh
Y2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNPblRvcCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9U
cmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3Rz
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBub3RpZmljYXRpb24ga2V5cwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlm
aWNhdGlvbnMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTm90aWZp
Y2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOwotCi0gICAgICAgLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGtleWJvYXJkIGtleXMKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfVHV0b3Jp
YWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENvbXBsZXRpb25zIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWCA9ICJTY2FsZVgiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNjYWxl
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZz
ZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0
WSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TbW9v
dGhpbmcgPSAiU21vb3RoaW5nIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwZXJmIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlJbkhN
RF9Cb29sID0gIndhcm5JbkhNRCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fybk9ubHlPbmNlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9Cb29s
ID0gImFsbG93VGltaW5nU3RvcmUiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfVGVzdERhdGFfRmxv
YXQgPSAicGVyZlRlc3REYXRhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1BlcmZfTGludXhHUFVQcm9maWxpbmdfQm9vbCA9ICJsaW51eEdQVVByb2ZpbGluZyI7Ci0K
LSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29sbGlzaW9uIGJvdW5k
cyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0dy
b3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0Nl
bnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFj
ZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19D
b2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2FtZXJh
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVD
YW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JD
b2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOwot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0lu
dDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFC
b3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1t
YUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQz
MiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBsYXli
YWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlv
X09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0
cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQbGF5
YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRp
b19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhE
TUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBwb3dl
ciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhpdCI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVu
c1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVvdXRf
RmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9
ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0b0xh
dW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1Bvd2VyX1BhdXNlQ29tcG9zaXRvck9uU3RhbmRieV9Cb29sID0gInBhdXNlQ29t
cG9zaXRvck9uU3RhbmRieSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAg
ICAgLy8gZGFzaGJvYXJkIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5h
YmxlRGFzaGJvYXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rh
c2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gbW9kZWwgc2tpbiBrZXlzCi0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9tb2RlbHNraW5fU2VjdGlvbiA9ICJtb2RlbHNraW5z
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkcml2ZXIga2V5
cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNrZWQgaW4gYW55IGRyaXZlcl88bmFtZT4gc2VjdGlvbgot
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29s
ID0gImVuYWJsZSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLS8vIGl2cmNoYXBlcm9uZS5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotZW51bSBDaGFwZXJv
bmVDYWxpYnJhdGlvblN0YXRlCi17Ci0gICAgICAgLy8gT0shCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9PSyA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhcGVyb25lIGlzIGZ1bGx5IGNhbGlicmF0
ZWQgYW5kIHdvcmtpbmcgY29ycmVjdGx5Ci0KLSAgICAgICAvLyBXYXJuaW5ncwotICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyA9IDEwMCwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQgPSAxMDEsICAg
ICAgIC8vIEEgYmFzZSBzdGF0aW9uIHRoaW5rcyB0aGF0IGl0IG1pZ2h0IGhhdmUgbW92ZWQKLSAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVk
ID0gMTAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBsZXNzIGJhc2Ugc3RhdGlv
bnMgdGhhbiB3aGVuIGNhbGlicmF0ZWQKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywgICAgICAgICAgICAgIC8vIFNlYXRl
ZCBib3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNraW5n
IGNlbnRlcgotCi0gICAgICAgLy8gRXJyb3JzCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9FcnJvciA9IDIwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFRoZSBVbml2ZXJzZUlEIGlzIGludmFsaWQKLSAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIw
MSwgICAgICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBoYXNuJ3QgYmUgY2FsaWJyYXRlZCBm
b3IgYXQgbGVhc3Qgb25lIG9mIHRoZSBiYXNlIHN0YXRpb25zCi0gICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLCAgICAgICAgICAg
ICAgICAgICAgIC8vIFRyYWNraW5nIGNlbnRlciBpcyBjYWxpYnJhdGVkLCBidXQgYmFzZSBzdGF0
aW9ucyBkaXNhZ3JlZSBvbiB0aGUgdHJhY2tpbmcgc3BhY2UKLSAgICAgICBDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCA9IDIwMywgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gUGxheSBBcmVhIGhhc24ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBj
dXJyZW50IHRyYWNraW5nIGNlbnRlcgotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVf
RXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9IDIwNCwgICAgICAgICAgICAgIC8vIENvbGxp
c2lvbiBCb3VuZHMgaGF2ZW4ndCBiZWVuIGNhbGlicmF0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNr
aW5nIGNlbnRlcgotfTsKLQotCi0vKiogSElHSCBMRVZFTCBUUkFDS0lORyBTUEFDRSBBU1NVTVBU
SU9OUzoKLSogMCwwLDAgaXMgdGhlIHByZWZlcnJlZCBzdGFuZGluZyBhcmVhIGNlbnRlci4KLSog
MFkgaXMgdGhlIGZsb29yIGhlaWdodC4KLSogLVogaXMgdGhlIHByZWZlcnJlZCBmb3J3YXJkIGZh
Y2luZyBkaXJlY3Rpb24uICovCi1jbGFzcyBJVlJDaGFwZXJvbmUKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgQ2hhcGVyb25lIGNhbGlicmF0aW9uLiBU
aGlzIHN0YXRlIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgZHVyaW5nIGEgc2Vzc2lvbiBkdWUgdG8g
cGh5c2ljYWwgYmFzZSBzdGF0aW9uIGNoYW5nZXMuICoqLwotICAgICAgIHZpcnR1YWwgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkgPSAwOwotCi0gICAgICAg
LyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBkZXB0aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJs
eSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBhbmQgWi4gCi0gICAgICAgKiBUcmFja2luZyBzcGFj
ZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICoqLwotICAg
ICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpw
U2l6ZVogKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25z
IG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKS4KLSAgICAgICAq
IENvcm5lcnMgYXJlIGluIGNvdW50ZXItY2xvY2t3aXNlIG9yZGVyLgotICAgICAgICogU3RhbmRp
bmcgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLgotICAgICAg
ICogSXQncyBhIHJlY3RhbmdsZS4KLSAgICAgICAqIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRo
ZSBYIGF4aXMgYW5kIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBaIGF4aXMuCi0gICAgICAg
KiBIZWlnaHQgb2YgZXZlcnkgY29ybmVyIGlzIDBZIChvbiB0aGUgZmxvb3IpLiAqKi8KLSAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFSZWN0KCBIbWRRdWFkX3QgKnJlY3QgKSA9IDA7Ci0K
LSAgICAgICAvKiogUmVsb2FkIENoYXBlcm9uZSBkYXRhIGZyb20gdGhlIC52cmNoYXAgZmlsZSBv
biBkaXNrLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRJbmZvKCB2b2lkICkgPSAwOwot
Ci0gICAgICAgLyoqIE9wdGlvbmFsbHkgZ2l2ZSB0aGUgY2hhcGVyb25lIHN5c3RlbSBhIGhpdCBh
Ym91dCB0aGUgY29sb3IgYW5kIGJyaWdodG5lc3MgaW4gdGhlIHNjZW5lICoqLwotICAgICAgIHZp
cnR1YWwgdm9pZCBTZXRTY2VuZUNvbG9yKCBIbWRDb2xvcl90IGNvbG9yICkgPSAwOwotCi0gICAg
ICAgLyoqIEdldCB0aGUgY3VycmVudCBjaGFwZXJvbmUgYm91bmRzIGRyYXcgY29sb3IgYW5kIGJy
aWdodG5lc3MgKiovCi0gICAgICAgdmlydHVhbCB2b2lkIEdldEJvdW5kc0NvbG9yKCBIbWRDb2xv
cl90ICpwT3V0cHV0Q29sb3JBcnJheSwgaW50IG5OdW1PdXRwdXRDb2xvcnMsIGZsb2F0IGZsQ29s
bGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLCBIbWRDb2xvcl90ICpwT3V0cHV0Q2FtZXJhQ29sb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJvdW5kcyBhcmUgc2hv
d2luZyByaWdodCBub3cgKiovCi0gICAgICAgdmlydHVhbCBib29sIEFyZUJvdW5kc1Zpc2libGUo
KSA9IDA7Ci0KLSAgICAgICAvKiogRm9yY2UgdGhlIGJvdW5kcyB0byBzaG93LCBtb3N0bHkgZm9y
IHV0aWxpdGllcyAqKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKCBi
b29sIGJGb3JjZSApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hh
cGVyb25lX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7Ci0KLSNwcmFnbWEgcGFjayggcG9w
ICkKLQotfQotCi0vLyBpdnJjaGFwZXJvbmVzZXR1cC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotZW51
bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQotewotICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX0xp
dmUgPSAxLCAgICAgICAgICAgICAgLy8gVGhlIGxpdmUgY2hhcGVyb25lIGNvbmZpZywgdXNlZCBi
eSBtb3N0IGFwcGxpY2F0aW9ucyBhbmQgZ2FtZXMKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmls
ZV9UZW1wID0gMiwgICAgICAgICAgICAgIC8vIFRoZSB0ZW1wb3JhcnkgY2hhcGVyb25lIGNvbmZp
ZywgdXNlZCB0byBsaXZlLXByZXZpZXcgY29sbGlzaW9uIGJvdW5kcyBpbiByb29tIHNldHVwCi19
OwotCi1lbnVtIEVDaGFwZXJvbmVJbXBvcnRGbGFncwotewotICAgICAgIEVDaGFwZXJvbmVJbXBv
cnRfQm91bmRzT25seSA9IDB4MDAwMSwKLX07Ci0KLS8qKiBNYW5hZ2VzIHRoZSB3b3JraW5nIGNv
cHkgb2YgdGhlIGNoYXBlcm9uZSBpbmZvLiBCeSBkZWZhdWx0IHRoaXMgd2lsbCBiZSB0aGUgc2Ft
ZSBhcyB0aGUgCi0qIGxpdmUgY29weS4gQW55IGNoYW5nZXMgbWFkZSB3aXRoIHRoaXMgaW50ZXJm
YWNlIHdpbGwgc3RheSBpbiB0aGUgd29ya2luZyBjb3B5IHVudGlsIAotKiBDb21taXRXb3JraW5n
Q29weSgpIGlzIGNhbGxlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIHdvcmtpbmcgY29weSBhbmQgdGhl
IGxpdmUgY29weSB3aWxsIGJlIAotKiB0aGUgc2FtZSBhZ2Fpbi4gKi8KLWNsYXNzIElWUkNoYXBl
cm9uZVNldHVwCi17Ci1wdWJsaWM6Ci0KLSAgICAgICAvKiogU2F2ZXMgdGhlIGN1cnJlbnQgd29y
a2luZyBjb3B5IHRvIGRpc2sgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgQ29tbWl0V29ya2luZ0Nv
cHkoIEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV2ZXJ0cyB0aGUgd29ya2luZyBjb3B5IHRvIG1hdGNoIHRoZSBsaXZlIGNoYXBlcm9uZSBjYWxp
YnJhdGlvbi4KLSAgICAgICAqIFRvIG1vZGlmeSBleGlzdGluZyBkYXRhIHRoaXMgTVVTVCBiZSBk
byBXSElMRSBnZXR0aW5nIGEgbm9uLWVycm9yIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdHVzLgot
ICAgICAgICogT25seSBhZnRlciB0aGlzIHNob3VsZCB5b3UgZG8gZ2V0cyBhbmQgc2V0cyBvbiB0
aGUgZXhpc3RpbmcgZGF0YS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUmV2ZXJ0V29ya2luZ0Nv
cHkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRlcHRoIG9mIHRo
ZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFuZCBaIGZyb20g
dGhlIHdvcmtpbmcgY29weS4KLSAgICAgICAqIFRyYWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDAp
IGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4gKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgKnBTaXplWCwgZmxvYXQgKnBTaXplWiApID0g
MDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSA0IGNvcm5lciBwb3NpdGlvbnMgb2YgdGhlIFBs
YXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGZyb20gdGhlIHdvcmtpbmcgY29w
eS4KLSAgICAgICAqIENvcm5lcnMgYXJlIGluIGNsb2Nrd2lzZSBvcmRlci4KLSAgICAgICAqIFRy
YWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJl
YS4KLSAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCi0gICAgICAgKiAyIHNpZGVzIGFyZSBwYXJh
bGxlbCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlz
LgotICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4g
KiovCi0gICAgICAgdmlydHVhbCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVJlY3QoIEhtZFF1YWRf
dCAqcmVjdCApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMg
aWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8gbnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMg
Ci0gICAgICAgKiBpbnRvIHRoZSBidWZmZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQgZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRf
dCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgUXVhZHMgaWYgdGhlIGJ1ZmZlciBwb2ludHMgdG8g
bnVsbC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgUXVhZHMgCi0gICAgICAgKiBpbnRvIHRoZSBidWZm
ZXIgdXAgdG8gdGhlIG1heCBzcGVjaWZpZWQuICovCi0gICAgICAgdmlydHVhbCBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVhZHNDb3VudCkg
SG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50ICkgPSAwOwot
Ci0gICAgICAgLyoqIFJldHVybnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24gZnJvbSB0
aGUgd29ya2luZyBjb3B5LiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgc3Rh
bmRpbmcgb3JpZ2luIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4
MzRfdCAqcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBTZXRzIHRoZSBQbGF5IEFyZWEgaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSggZmxvYXQgc2l6ZVgsIGZsb2F0
IHNpemVaICkgPSAwOwotCi0gICAgICAgLyoqIFNldHMgdGhlIENvbGxpc2lvbiBCb3VuZHMgaW4g
dGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ0NvbGxp
c2lvbkJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1kUXVhZF90ICpw
UXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKLQotICAgICAgIC8qKiBT
ZXRzIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKCBjb25zdCBIbWRNYXRyaXgzNF90ICpwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSApID0gMDsKLQotICAgICAgIC8qKiBTZXRzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcg
cG9zaXRpb24gaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4
MzRfdCAqcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKLQotICAg
ICAgIC8qKiBUZWFyIGV2ZXJ5dGhpbmcgZG93biBhbmQgcmVsb2FkIGl0IGZyb20gdGhlIGZpbGUg
b24gZGlzayAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBSZWxvYWRGcm9tRGlzayggRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBw
cmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZl
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggSG1kTWF0cml4MzRfdCAqcG1hdFNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blRhZ0Nv
dW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwgdWludDMyX3QgdW5UYWdDb3VudCApID0gMDsKLSAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKCBWUl9PVVRf
QVJSQVlfQ09VTlQocHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1aW50MzJfdCAq
cHVuVGFnQ291bnQgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIGJvb2wgU2V0V29ya2luZ1BoeXNp
Y2FsQm91bmRzSW5mbyggVlJfQVJSQVlfQ09VTlQodW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBR
dWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50ICkgPSAwOwotICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVh
ZHNDb3VudCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50
ICkgPSAwOwotCi0gICAgICAgdmlydHVhbCBib29sIEV4cG9ydExpdmVUb0J1ZmZlciggVlJfT1VU
X1NUUklORygpIGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90ICpwbkJ1ZmZlckxlbmd0aCApID0gMDsK
LSAgICAgICB2aXJ0dWFsIGJvb2wgSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyggY29uc3QgY2hh
ciAqcEJ1ZmZlciwgdWludDMyX3QgbkltcG9ydEZsYWdzICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9u
ZVNldHVwXzAwNSI7Ci0KLQotfQotCi0vLyBpdnJjb21wb3NpdG9yLmgKLW5hbWVzcGFjZSB2cgot
ewotCi0jcHJhZ21hIHBhY2soIHB1c2gsIDggKQotCi0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3Vy
IHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgKi8KLWVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0g
ICAgICAgVlJDb21wb3NpdG9yRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMCwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJv
cl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBWUkNvbXBv
c2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyAgICAgICAgICAgICAgICAgICAgID0gMTAxLAotICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uICAg
ICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlICAgICAgID0gMTA0LAotICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVV
c2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3JfU2hh
cmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgPSAxMDYsCi0gICAgICAgVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCi0gICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCAgICAgICAgICAgICAgICAgICAgID0gMTA4LAot
ICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRCb3VuZHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDksCi19OwotCi1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVwcm9q
ZWN0aW9uUmVhc29uX0NwdSA9IDB4MDE7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3JfUmVw
cm9qZWN0aW9uUmVhc29uX0dwdSA9IDB4MDI7Ci1jb25zdCB1aW50MzJfdCBWUkNvbXBvc2l0b3Jf
UmVwcm9qZWN0aW9uQXN5bmMgICAgICA9IDB4MDQ7ICAgICAgIC8vIFRoaXMgZmxhZyBpbmRpY2F0
ZXMgdGhlIGFzeW5jIHJlcHJvamVjdGlvbiBtb2RlIGlzIGFjdGl2ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBkb2VzIG5vdCBpbmRpY2F0
ZSBpZiByZXByb2plY3Rpb24gYWN0dWFsbHkgaGFwcGVuZWQgb3Igbm90LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBSZXByb2plY3Rp
b25SZWFzb24gZmxhZ3MgYWJvdmUgdG8gY2hlY2sgaWYgcmVwcm9qZWN0aW9uCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXMgYWN0dWFsbHkgYXBw
bGllZCAoaS5lLiBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQpLgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtRnJhbWVQcmVzZW50cyA+IDEgYWxz
byBpbmRpY2F0ZXMgdGhlIHNjZW5lIHRleHR1cmUgd2FzIHJldXNlZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhbHNvIHRoZSBudW1iZXIg
b2YgdGltZXMgdGhhdCBpdCB3YXMgcHJlc2VudGVkIGluIHRvdGFsLgotCi0vKiogUHJvdmlkZXMg
YSBzaW5nbGUgZnJhbWUncyB0aW1pbmcgaW5mb3JtYXRpb24gdG8gdGhlIGFwcCAqLwotc3RydWN0
IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcKLXsKLSAgICAgICB1aW50MzJfdCBtX25TaXplOyAvLyBT
ZXQgdG8gc2l6ZW9mKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICkKLSAgICAgICB1aW50MzJfdCBt
X25GcmFtZUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIG51
bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVzZW50ZWQKLSAgICAgICB1aW50MzJfdCBt
X25OdW1NaXNQcmVzZW50ZWQ7IC8vIG51bWJlciBvZiB0aW1lcyB0aGlzIGZyYW1lIHdhcyBwcmVz
ZW50ZWQgb24gYSB2c3luYyBvdGhlciB0aGFuIGl0IHdhcyBvcmlnaW5hbGx5IHByZWRpY3RlZCB0
bwotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIG51bWJlciBvZiBhZGRp
dGlvbmFsIHRpbWVzIHByZXZpb3VzIGZyYW1lIHdhcyBzY2FubmVkIG91dAotICAgICAgIHVpbnQz
Ml90IG1fblJlcHJvamVjdGlvbkZsYWdzOwotCi0gICAgICAgLyoqIEFic29sdXRlIHRpbWUgcmVm
ZXJlbmNlIGZvciBjb21wYXJpbmcgZnJhbWVzLiAgVGhpcyBhbGlnbnMgd2l0aCB0aGUgdnN5bmMg
dGhhdCBydW5uaW5nIHN0YXJ0IGlzIHJlbGF0aXZlIHRvLiAqLwotICAgICAgIGRvdWJsZSBtX2Zs
U3lzdGVtVGltZUluU2Vjb25kczsKLQotICAgICAgIC8qKiBUaGVzZSB0aW1lcyBtYXkgaW5jbHVk
ZSB3b3JrIGZyb20gb3RoZXIgcHJvY2Vzc2VzIGR1ZSB0byBPUyBzY2hlZHVsaW5nLgotICAgICAg
ICogVGhlIGZld2VyIHBhY2tldHMgb2Ygd29yayB0aGVzZSBhcmUgYnJva2VuIHVwIGludG8sIHRo
ZSBsZXNzIGxpa2VseSB0aGlzIHdpbGwgaGFwcGVuLgotICAgICAgICogR1BVIHdvcmsgY2FuIGJl
IGJyb2tlbiB1cCBieSBjYWxsaW5nIEZsdXNoLiAgVGhpcyBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1
bCB0byBnZXQgdGhlIEdQVSBzdGFydGVkCi0gICAgICAgKiBwcm9jZXNzaW5nIHRoYXQgd29yayBl
YXJsaWVyIGluIHRoZSBmcmFtZS4gKi8KLSAgICAgICBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7
IC8vIHRpbWUgc3BlbnQgcmVuZGVyaW5nIHRoZSBzY2VuZSAoZ3B1IHdvcmsgc3VibWl0dGVkIGJl
dHdlZW4gV2FpdEdldFBvc2VzIGFuZCBzZWNvbmQgU3VibWl0KQotICAgICAgIGZsb2F0IG1fZmxQ
b3N0U3VibWl0R3B1TXM7IC8vIGFkZGl0aW9uYWwgdGltZSBzcGVudCByZW5kZXJpbmcgYnkgYXBw
bGljYXRpb24gKGUuZy4gY29tcGFuaW9uIHdpbmRvdykKLSAgICAgICBmbG9hdCBtX2ZsVG90YWxS
ZW5kZXJHcHVNczsgLy8gdGltZSBiZXR3ZWVuIHdvcmsgc3VibWl0dGVkIGltbWVkaWF0ZWx5IGFm
dGVyIHByZXNlbnQgKGlkZWFsbHkgdnN5bmMpIHVudGlsIHRoZSBlbmQgb2YgY29tcG9zaXRvciBz
dWJtaXR0ZWQgd29yawotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyR3B1TXM7IC8v
IHRpbWUgc3BlbmQgcGVyZm9ybWluZyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24sIHJlbmRlcmluZyBj
aGFwZXJvbmUsIG92ZXJsYXlzLCBldGMuCi0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5k
ZXJDcHVNczsgLy8gdGltZSBzcGVudCBvbiBjcHUgc3VibWl0dGluZyB0aGUgYWJvdmUgd29yayBm
b3IgdGhpcyBmcmFtZQotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOyAvLyB0
aW1lIHNwZW50IHdhaXRpbmcgZm9yIHJ1bm5pbmcgc3RhcnQgKGFwcGxpY2F0aW9uIGNvdWxkIGhh
dmUgdXNlZCB0aGlzIG11Y2ggbW9yZSB0aW1lKQotCi0gICAgICAgLyoqIE1pc2NlbGxhbmVvdXMg
bWVhc3VyZWQgaW50ZXJ2YWxzLiAqLwotICAgICAgIGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVy
dmFsTXM7IC8vIHRpbWUgYmV0d2VlbiBjYWxscyB0byBXYWl0R2V0UG9zZXMKLSAgICAgICBmbG9h
dCBtX2ZsUHJlc2VudENhbGxDcHVNczsgLy8gdGltZSBibG9ja2VkIG9uIGNhbGwgdG8gcHJlc2Vu
dCAodXN1YWxseSAwLjAsIGJ1dCBjYW4gZ28gbG9uZykKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZv
clByZXNlbnRDcHVNczsgLy8gdGltZSBzcGVudCBzcGluLXdhaXRpbmcgZm9yIGZyYW1lIGluZGV4
IHRvIGNoYW5nZSAobm90IG5lYXItemVybyBpbmRpY2F0ZXMgd2FpdCBvYmplY3QgZmFpbHVyZSkK
LSAgICAgICBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsgLy8gdGltZSBzcGVudCBpbiBJVlJDb21w
b3NpdG9yOjpTdWJtaXQgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIGRyaXZlciBpc3N1ZSkKLQot
ICAgICAgIC8qKiBUaGUgZm9sbG93aW5nIGFyZSBhbGwgcmVsYXRpdmUgdG8gdGhpcyBmcmFtZSdz
IFN5c3RlbVRpbWVJblNlY29uZHMgKi8KLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2Fs
bGVkTXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBt
X2ZsTmV3RnJhbWVSZWFkeU1zOyAvLyBzZWNvbmQgY2FsbCB0byBJVlJDb21wb3NpdG9yOjpTdWJt
aXQKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAgICAgZmxv
YXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRv
clJlbmRlclN0YXJ0TXM7Ci0KLSAgICAgICB2cjo6VHJhY2tlZERldmljZVBvc2VfdCBtX0htZFBv
c2U7IC8vIHBvc2UgdXNlZCBieSBhcHAgdG8gcmVuZGVyIHRoaXMgZnJhbWUKLX07Ci0KLS8qKiBD
dW11bGF0aXZlIHN0YXRzIGZvciBjdXJyZW50IGFwcGxpY2F0aW9uLiAgVGhlc2UgYXJlIG5vdCBj
bGVhcmVkIHVudGlsIGEgbmV3IGFwcCBjb25uZWN0cywKLSogYnV0IHRoZXkgZG8gc3RvcCBhY2N1
bXVsYXRpbmcgb25jZSB0aGUgYXNzb2NpYXRlZCBhcHAgZGlzY29ubmVjdHMuICovCi1zdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7IC8v
IFByb2Nlc3MgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIHN0YXRzIChtYXkgbm8gbG9uZ2VyIGJl
IHJ1bm5pbmcpLgotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7IC8vIHRvdGFs
IG51bWJlciBvZiB0aW1lcyB3ZSBjYWxsZWQgcHJlc2VudCAoaW5jbHVkZXMgcmVwcm9qZWN0ZWQg
ZnJhbWVzKQotICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7IC8vIHRvdGFsIG51
bWJlciBvZiB0aW1lcyBhbiBvbGQgZnJhbWUgd2FzIHJlLXNjYW5uZWQgb3V0ICh3aXRob3V0IHJl
cHJvamVjdGlvbikKLSAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsgLy8g
dG90YWwgbnVtYmVyIG9mIHRpbWVzIGEgZnJhbWUgd2FzIHNjYW5uZWQgb3V0IGEgc2Vjb25kIHRp
bWUgKHdpdGggcmVwcm9qZWN0aW9uKQotCi0gICAgICAgLyoqIFZhbHVlcyByZWNvcmRlZCBhdCBz
dGFydHVwIGJlZm9yZSBhcHBsaWNhdGlvbiBoYXMgZnVsbHkgZmFkZWQgaW4gdGhlIGZpcnN0IHRp
bWUuICovCi0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09uU3RhcnR1cDsKLSAg
ICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOwotCi0gICAgICAgLyoqIEFwcGxp
Y2F0aW9ucyBtYXkgZXhwbGljaXRseSBmYWRlIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhpcyBpcyB1
c3VhbGx5IHRvIGhhbmRsZSBsZXZlbCB0cmFuc2l0aW9ucywgYW5kIGxvYWRpbmcgb2Z0ZW4gY2F1
c2VzCi0gICAgICAgKiBzeXN0ZW0gd2lkZSBoaXRjaGVzLiAgVGhlIGZvbGxvd2luZyBzdGF0cyBh
cmUgY29sbGVjdGVkIGR1cmluZyB0aGlzIHBlcmlvZC4gIERvZXMgbm90IGluY2x1ZGUgdmFsdWVz
IHJlY29yZGVkIGR1cmluZyBzdGFydHVwLiAqLwotICAgICAgIHVpbnQzMl90IG1fbk51bUxvYWRp
bmc7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c0xvYWRpbmc7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7Ci0gICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOwotCi0gICAgICAgLyoqIElmIHdlIGRvbid0IGdl
dCBhIG5ldyBmcmFtZSBmcm9tIHRoZSBhcHAgaW4gbGVzcyB0aGFuIDIuNSBmcmFtZXMsIHRoZW4g
d2UgYXNzdW1lIHRoZSBhcHAgaGFzIGh1bmcgYW5kIHN0YXJ0Ci0gICAgICAgKiBmYWRpbmcgYmFj
ayB0byB0aGUgY29tcG9zaXRvci4gIFRoZSBmb2xsb3dpbmcgc3RhdHMgYXJlIGEgcmVzdWx0IG9m
IHRoaXMsIGFuZCBhcmUgYSBzdWJzZXQgb2YgdGhvc2UgcmVjb3JkZWQgYWJvdmUuCi0gICAgICAg
KiBEb2VzIG5vdCBpbmNsdWRlIHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnQgdXAgb3IgbG9h
ZGluZy4gKi8KLSAgICAgICB1aW50MzJfdCBtX25OdW1UaW1lZE91dDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0gICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJh
bWVzVGltZWRPdXQ7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCApCi0KLS8qKiBBbGxvd3MgdGhl
IGFwcGxpY2F0aW9uIHRvIGludGVyYWN0IHdpdGggdGhlIGNvbXBvc2l0b3IgKi8KLWNsYXNzIElW
UkNvbXBvc2l0b3IKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogU2V0cyB0cmFja2luZyBzcGFjZSBy
ZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0VHJhY2tp
bmdTcGFjZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiApID0gMDsKLQotICAgICAg
IC8qKiBHZXRzIGN1cnJlbnQgdHJhY2tpbmcgc3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2Vz
ICovCi0gICAgICAgdmlydHVhbCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBHZXRUcmFja2luZ1Nw
YWNlKCkgPSAwOwotCi0gICAgICAgLyoqIFNjZW5lIGFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbCB0
aGlzIGZ1bmN0aW9uIHRvIGdldCBwb3NlcyB0byByZW5kZXIgd2l0aCAoYW5kIG9wdGlvbmFsbHkg
cG9zZXMgcHJlZGljdGVkIGFuIGFkZGl0aW9uYWwgZnJhbWUgb3V0IHRvIHVzZSBmb3IgZ2FtZXBs
YXkpLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJsb2NrIHVudGlsICJydW5uaW5nIHN0
YXJ0IiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUsIGFuZCBzaG91
bGQgYmUgY2FsbGVkIGF0IHRoZSBsYXN0IG1vbWVudCBiZWZvcmUgbmVlZGluZyB0bwotICAgICAg
ICogc3RhcnQgcmVuZGVyaW5nLgotICAgICAgICoKLSAgICAgICAqIFJldHVybiBjb2RlczoKLSAg
ICAgICAqICAgICAgIC0gSXNOb3RTY2VuZUFwcGxpY2F0aW9uIChtYWtlIHN1cmUgdG8gY2FsbCBW
Ul9Jbml0IHdpdGggVlJBcHBsaWNhaXRvbl9TY2VuZSkKLSAgICAgICAqICAgICAgIC0gRG9Ob3RI
YXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBwIGhhcyB0YWtlbiBmb2N1cyAtIHRoaXMgd2lsbCB0aHJv
dHRsZSB0aGUgY2FsbCB0byAxMGh6IHRvIHJlZHVjZSB0aGUgaW1wYWN0IG9uIHRoYXQgYXBwKQot
ICAgICAgICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2Vz
KCBWUl9BUlJBWV9DT1VOVCh1blJlbmRlclBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9z
ZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LAot
ICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCh1bkdhbWVQb3NlQXJyYXlDb3VudCkgVHJhY2tl
ZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50ICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJu
ZWQgYnkgV2FpdEdldFBvc2VzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9y
IEdldExhc3RQb3NlcyggVlJfQVJSQVlfQ09VTlQoIHVuUmVuZGVyUG9zZUFycmF5Q291bnQgKSBU
cmFja2VkRGV2aWNlUG9zZV90KiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBv
c2VBcnJheUNvdW50LAotICAgICAgICAgICAgICBWUl9BUlJBWV9DT1VOVCggdW5HYW1lUG9zZUFy
cmF5Q291bnQgKSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3Qg
dW5HYW1lUG9zZUFycmF5Q291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogSW50ZXJmYWNlIGZvciBh
Y2Nlc3NpbmcgbGFzdCBzZXQgb2YgcG9zZXMgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzIG9uZSBh
dCBhIHRpbWUuCi0gICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX0luZGV4T3V0T2ZS
YW5nZSBpZiB1bkRldmljZUluZGV4IG5vdCBsZXNzIHRoYW4ga191bk1heFRyYWNrZWREZXZpY2VD
b3VudCBvdGhlcndpc2UgVlJDb21wb3NpdG9yRXJyb3JfTm9uZS4KLSAgICAgICAqIEl0IGlzIG9r
YXkgdG8gcGFzcyBOVUxMIGZvciBlaXRoZXIgcG9zZSBpZiB5b3Ugb25seSB3YW50IG9uZSBvZiB0
aGUgdmFsdWVzLiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4KCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0UG9zZSwgVHJhY2tlZERldmljZVBvc2Vf
dCAqcE91dHB1dEdhbWVQb3NlICkgPSAwOwotCi0gICAgICAgLyoqIFVwZGF0ZWQgc2NlbmUgdGV4
dHVyZSB0byBkaXNwbGF5LiBJZiBwQm91bmRzIGlzIE5VTEwgdGhlIGVudGlyZSB0ZXh0dXJlIHdp
bGwgYmUgdXNlZC4gIElmIGNhbGxlZCBmcm9tIGFuIE9wZW5HTCBhcHAsIGNvbnNpZGVyIGFkZGlu
ZyBhIGdsRmx1c2ggYWZ0ZXIKLSAgICAgICAqIFN1Ym1pdHRpbmcgYm90aCBmcmFtZXMgdG8gc2ln
bmFsIHRoZSBkcml2ZXIgdG8gc3RhcnQgcHJvY2Vzc2luZywgb3RoZXJ3aXNlIGl0IG1heSB3YWl0
IHVudGlsIHRoZSBjb21tYW5kIGJ1ZmZlciBmaWxscyB1cCwgY2F1c2luZyB0aGUgYXBwIHRvIG1p
c3MgZnJhbWVzLgotICAgICAgICoKLSAgICAgICAqIE9wZW5HTCBkaXJ0eSBzdGF0ZToKLSAgICAg
ICAqICAgICAgIGdsQmluZFRleHR1cmUKLSAgICAgICAqCi0gICAgICAgKiBSZXR1cm4gY29kZXM6
Ci0gICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJlIHRvIGNh
bGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCi0gICAgICAgKiAgICAgICAtIERv
Tm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMpCi0gICAgICAgKiAg
ICAgICAtIFRleHR1cmVJc09uV3JvbmdEZXZpY2UgKGFwcGxpY2F0aW9uIGRpZCBub3QgdXNlIHBy
b3BlciBBZGFwdGVySW5kZXggLSBzZWUgSVZSU3lzdGVtLkdldERYR0lPdXRwdXRJbmZvKQotICAg
ICAgICogICAgICAgLSBTaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCAoYXBwbGljYXRpb24gbmVl
ZHMgdG8gY2FsbCBDcmVhdGVEWEdJRmFjdG9yeTEgb3IgbGF0ZXIgYmVmb3JlIGNyZWF0aW5nIERY
IGRldmljZSkKLSAgICAgICAqICAgICAgIC0gVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCAo
c2NlbmUgdGV4dHVyZXMgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggRFhHSSBzaGFyaW5nIHJ1bGVz
IC0gZS5nLiB1bmNvbXByZXNzZWQsIG5vIG1pcHMsIGV0Yy4pCi0gICAgICAgKiAgICAgICAtIElu
dmFsaWRUZXh0dXJlICh1c3VhbGx5IG1lYW5zIGJhZCBhcmd1bWVudHMgcGFzc2VkIGluKQotICAg
ICAgICogICAgICAgLSBBbHJlYWR5U3VibWl0dGVkIChhcHAgaGFzIHN1Ym1pdHRlZCB0d28gbGVm
dCB0ZXh0dXJlcyBvciB0d28gcmlnaHQgdGV4dHVyZXMgaW4gYSBzaW5nbGUgZnJhbWUgLSBpLmUu
IGJlZm9yZSBjYWxsaW5nIFdhaXRHZXRQb3NlcyBhZ2FpbikKLSAgICAgICAqLwotICAgICAgIHZp
cnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdCggRVZSRXllIGVFeWUsIGNvbnN0IFRleHR1
cmVfdCAqcFRleHR1cmUsIGNvbnN0IFZSVGV4dHVyZUJvdW5kc190KiBwQm91bmRzID0gMCwgRVZS
U3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzID0gU3VibWl0X0RlZmF1bHQgKSA9IDA7Ci0KLSAgICAg
ICAvKiogQ2xlYXJzIHRoZSBmcmFtZSB0aGF0IHdhcyBzZW50IHdpdGggdGhlIGxhc3QgY2FsbCB0
byBTdWJtaXQuIFRoaXMgd2lsbCBjYXVzZSB0aGUgCi0gICAgICAgKiBjb21wb3NpdG9yIHRvIHNo
b3cgdGhlIGdyaWQgdW50aWwgU3VibWl0IGlzIGNhbGxlZCBhZ2Fpbi4gKi8KLSAgICAgICB2aXJ0
dWFsIHZvaWQgQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ2Fs
bCBpbW1lZGlhdGVseSBhZnRlciBwcmVzZW50aW5nIHlvdXIgYXBwJ3Mgd2luZG93IChpLmUuIGNv
bXBhbmlvbiB3aW5kb3cpIHRvIHVuYmxvY2sgdGhlIGNvbXBvc2l0b3IuCi0gICAgICAgKiBUaGlz
IGlzIGFuIG9wdGlvbmFsIGNhbGwsIHdoaWNoIG9ubHkgbmVlZHMgdG8gYmUgdXNlZCBpZiB5b3Ug
Y2FuJ3QgaW5zdGVhZCBjYWxsIFdhaXRHZXRQb3NlcyBpbW1lZGlhdGVseSBhZnRlciBQcmVzZW50
LgotICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHlvdXIgZW5naW5lJ3MgcmVuZGVyIGFuZCBnYW1l
IGxvb3AgYXJlIG5vdCBvbiBzZXBhcmF0ZSB0aHJlYWRzLCBvciBibG9ja2luZyB0aGUgcmVuZGVy
IHRocmVhZCB1bnRpbCAzbXMgYmVmb3JlIHRoZSBuZXh0IHZzeW5jIHdvdWxkCi0gICAgICAgKiBp
bnRyb2R1Y2UgYSBkZWFkbG9jayBvZiBzb21lIHNvcnQuICBUaGlzIGZ1bmN0aW9uIHRlbGxzIHRo
ZSBjb21wb3NpdG9yIHRoYXQgeW91IGhhdmUgZmluaXNoZWQgYWxsIHJlbmRlcmluZyBhZnRlciBo
YXZpbmcgU3VibWl0dGVkIGJ1ZmZlcnMgZm9yIGJvdGgKLSAgICAgICAqIGV5ZXMsIGFuZCBpdCBp
cyBmcmVlIHRvIHN0YXJ0IGl0cyByZW5kZXJpbmcgd29yay4gIFRoaXMgc2hvdWxkIG9ubHkgYmUg
Y2FsbGVkIGZyb20gdGhlIHNhbWUgdGhyZWFkIHlvdSBhcmUgcmVuZGVyaW5nIG9uLiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBQb3N0UHJlc2VudEhhbmRvZmYoKSA9IDA7Ci0KLSAgICAgICAvKiog
UmV0dXJucyB0cnVlIGlmIHRpbWluZyBkYXRhIGlzIGZpbGxlZCBpdC4gIFNldHMgb2xkZXN0IHRp
bWluZyBpbmZvIGlmIG5GcmFtZXNBZ28gaXMgbGFyZ2VyIHRoYW4gdGhlIHN0b3JlZCBoaXN0b3J5
LgotICAgICAgICogQmUgc3VyZSB0byBzZXQgdGltaW5nLnNpemUgPSBzaXplb2YoQ29tcG9zaXRv
cl9GcmFtZVRpbWluZykgb24gc3RydWN0IHBhc3NlZCBpbiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1
bmN0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBHZXRGcmFtZVRpbWluZyggQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyAqcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28gPSAwICkgPSAwOwot
Ci0gICAgICAgLyoqIEludGVyZmFjZSBmb3IgY29weWluZyBhIHJhbmdlIG9mIHRpbWluZyBkYXRh
LiAgRnJhbWVzIGFyZSByZXR1cm5lZCBpbiBhc2NlbmRpbmcgb3JkZXIgKG9sZGVzdCB0byBuZXdl
c3QpIHdpdGggdGhlIGxhc3QgYmVpbmcgdGhlIG1vc3QgcmVjZW50IGZyYW1lLgotICAgICAgICog
T25seSB0aGUgZmlyc3QgZW50cnkncyBtX25TaXplIG5lZWRzIHRvIGJlIHNldCwgYXMgdGhlIHJl
c3Qgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoYXQuICBSZXR1cm5zIHRvdGFsIG51bWJlciBvZiBl
bnRyaWVzIGZpbGxlZCBvdXQuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRGcmFtZVRp
bWluZ3MoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IG5GcmFtZXMg
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdGltZSBpbiBzZWNvbmRzIGxlZnQgaW4g
dGhlIGN1cnJlbnQgKGFzIGlkZW50aWZpZWQgYnkgRnJhbWVUaW1pbmcncyBmcmFtZUluZGV4KSBm
cmFtZS4KLSAgICAgICAqIER1ZSB0byAicnVubmluZyBzdGFydCIsIHRoaXMgdmFsdWUgbWF5IHJv
bGwgb3ZlciB0byB0aGUgbmV4dCBmcmFtZSBiZWZvcmUgZXZlciByZWFjaGluZyAwLjAuICovCi0g
ICAgICAgdmlydHVhbCBmbG9hdCBHZXRGcmFtZVRpbWVSZW1haW5pbmcoKSA9IDA7Ci0KLSAgICAg
ICAvKiogRmlsbHMgb3V0IHN0YXRzIGFjY3VtdWxhdGVkIGZvciB0aGUgbGFzdCBjb25uZWN0ZWQg
YXBwbGljYXRpb24uICBQYXNzIGluIHNpemVvZiggQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMg
KSBhcyBzZWNvbmQgcGFyYW1ldGVyLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBHZXRDdW11bGF0
aXZlU3RhdHMoIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICpwU3RhdHMsIHVpbnQzMl90IG5T
dGF0c1NpemVJbkJ5dGVzICkgPSAwOwotCi0gICAgICAgLyoqIEZhZGVzIHRoZSB2aWV3IG9uIHRo
ZSBITUQgdG8gdGhlIHNwZWNpZmllZCBjb2xvci4gVGhlIGZhZGUgd2lsbCB0YWtlIGZTZWNvbmRz
LCBhbmQgdGhlIGNvbG9yIHZhbHVlcyBhcmUgYmV0d2VlbgotICAgICAgICogMC4wIGFuZCAxLjAu
IFRoaXMgY29sb3IgaXMgZmFkZWQgb24gdG9wIG9mIHRoZSBzY2VuZSBiYXNlZCBvbiB0aGUgYWxw
aGEgcGFyYW1ldGVyLiBSZW1vdmluZyB0aGUgZmFkZSBjb2xvciBpbnN0YW50bHkgCi0gICAgICAg
KiB3b3VsZCBiZSBGYWRlVG9Db2xvciggMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAgKS4gIFZhbHVl
cyBhcmUgaW4gdW4tcHJlbXVsdGlwbGllZCBhbHBoYSBzcGFjZS4gKi8KLSAgICAgICB2aXJ0dWFs
IHZvaWQgRmFkZVRvQ29sb3IoIGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3Jl
ZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQgPSBmYWxzZSAp
ID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBmYWRlIGNvbG9yIHZhbHVlLiAqLwotICAg
ICAgIHZpcnR1YWwgSG1kQ29sb3JfdCBHZXRDdXJyZW50RmFkZUNvbG9yKCBib29sIGJCYWNrZ3Jv
dW5kID0gZmFsc2UgKSA9IDA7Ci0KLSAgICAgICAvKiogRmFkaW5nIHRoZSBHcmlkIGluIG9yIG91
dCBpbiBmU2Vjb25kcyAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBGYWRlR3JpZCggZmxvYXQgZlNl
Y29uZHMsIGJvb2wgYkZhZGVJbiApID0gMDsKLQotICAgICAgIC8qKiBHZXQgY3VycmVudCBhbHBo
YSB2YWx1ZSBvZiBncmlkLiAqLwotICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0Q3VycmVudEdyaWRB
bHBoYSgpID0gMDsKLQotICAgICAgIC8qKiBPdmVycmlkZSB0aGUgc2t5Ym94IHVzZWQgaW4gdGhl
IGNvbXBvc2l0b3IgKGUuZy4gZm9yIGR1cmluZyBsZXZlbCBsb2FkcyB3aGVuIHRoZSBhcHAgY2Fu
J3QgZmVlZCBzY2VuZSBpbWFnZXMgZmFzdCBlbm91Z2gpCi0gICAgICAgKiBPcmRlciBpcyBGcm9u
dCwgQmFjaywgTGVmdCwgUmlnaHQsIFRvcCwgQm90dG9tLiAgSWYgb25seSBhIHNpbmdsZSB0ZXh0
dXJlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBpbiBsYXQtbG9uZyBmb3JtYXQuCi0gICAgICAg
KiBJZiB0d28gYXJlIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCBhIGxhdC1sb25nIHN0ZXJlbyBwYWly
LiAqLwotICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFNldFNreWJveE92ZXJyaWRl
KCBWUl9BUlJBWV9DT1VOVCggdW5UZXh0dXJlQ291bnQgKSBjb25zdCBUZXh0dXJlX3QgKnBUZXh0
dXJlcywgdWludDMyX3QgdW5UZXh0dXJlQ291bnQgKSA9IDA7Ci0KLSAgICAgICAvKiogUmVzZXRz
IGNvbXBvc2l0b3Igc2t5Ym94IGJhY2sgdG8gZGVmYXVsdHMuICovCi0gICAgICAgdmlydHVhbCB2
b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKSA9IDA7Ci0KLSAgICAgICAvKiogQnJpbmdzIHRoZSBj
b21wb3NpdG9yIHdpbmRvdyB0byB0aGUgZnJvbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBjb3Zlcmlu
ZyBhbnkgb3RoZXIgd2luZG93IHRoYXQgbWF5IGJlIG9uIHRoZSBITUQKLSAgICAgICAqIGFuZCBp
cyBvYnNjdXJpbmcgdGhlIGNvbXBvc2l0b3Igd2luZG93LiAqLwotICAgICAgIHZpcnR1YWwgdm9p
ZCBDb21wb3NpdG9yQnJpbmdUb0Zyb250KCkgPSAwOwotCi0gICAgICAgLyoqIFB1c2hlcyB0aGUg
Y29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGJhY2suIFRoaXMgaXMgdXNlZnVsIGZvciBhbGxvd2lu
ZyBvdGhlciBhcHBsaWNhdGlvbnMgdG8gZHJhdyBkaXJlY3RseSB0byB0aGUgSE1ELiAqLwotICAg
ICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yR29Ub0JhY2soKSA9IDA7Ci0KLSAgICAgICAvKiog
VGVsbHMgdGhlIGNvbXBvc2l0b3IgcHJvY2VzcyB0byBjbGVhbiB1cCBhbmQgZXhpdC4gWW91IGRv
IG5vdCBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBhdCBzaHV0ZG93bi4gVW5kZXIgbm9ybWFs
IAotICAgICAgICogY2lyY3Vtc3RhbmNlcyB0aGUgY29tcG9zaXRvciB3aWxsIG1hbmFnZSBpdHMg
b3duIGxpZmUgY3ljbGUgYmFzZWQgb24gd2hhdCBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcuICov
Ci0gICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JRdWl0KCkgPSAwOwotICAgICAgIAotICAg
ICAgIC8qKiBSZXR1cm4gd2hldGhlciB0aGUgY29tcG9zaXRvciBpcyBmdWxsc2NyZWVuICovCi0g
ICAgICAgdmlydHVhbCBib29sIElzRnVsbHNjcmVlbigpID0gMDsKLQotICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBwcm9jZXNzIElEIG9mIHRoZSBwcm9jZXNzIHRoYXQgaXMgY3VycmVudGx5IHJlbmRl
cmluZyB0aGUgc2NlbmUgKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEN1cnJlbnRTY2Vu
ZUZvY3VzUHJvY2VzcygpID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9jZXNzIElE
IG9mIHRoZSBwcm9jZXNzIHRoYXQgcmVuZGVyZWQgdGhlIGxhc3QgZnJhbWUgKG9yIDAgaWYgdGhl
IGNvbXBvc2l0b3IgaXRzZWxmIHJlbmRlcmVkIHRoZSBmcmFtZS4pCi0gICAgICAgKiBSZXR1cm5z
IDAgd2hlbiBmYWRpbmcgb3V0IGZyb20gYW4gYXBwIGFuZCB0aGUgYXBwJ3MgcHJvY2VzcyBJZCB3
aGVuIGZhZGluZyBpbnRvIGFuIGFwcC4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldExh
c3RGcmFtZVJlbmRlcmVyKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUg
Y3VycmVudCBwcm9jZXNzIGhhcyB0aGUgc2NlbmUgZm9jdXMgKi8KLSAgICAgICB2aXJ0dWFsIGJv
b2wgQ2FuUmVuZGVyU2NlbmUoKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIHdpbmRvdyBv
biB0aGUgcHJpbWFyeSBtb25pdG9yIHRvIGRpc3BsYXkgd2hhdCBpcyBiZWluZyBzaG93biBpbiB0
aGUgaGVhZHNldC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2hvd01pcnJvcldpbmRvdygpID0g
MDsKLQotICAgICAgIC8qKiBDbG9zZXMgdGhlIG1pcnJvciB3aW5kb3cuICovCi0gICAgICAgdmly
dHVhbCB2b2lkIEhpZGVNaXJyb3JXaW5kb3coKSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0
cnVlIGlmIHRoZSBtaXJyb3Igd2luZG93IGlzIHNob3duLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBJc01pcnJvcldpbmRvd1Zpc2libGUoKSA9IDA7Ci0KLSAgICAgICAvKiogV3JpdGVzIGFsbCBp
bWFnZXMgdGhhdCB0aGUgY29tcG9zaXRvciBrbm93cyBhYm91dCAoaW5jbHVkaW5nIG92ZXJsYXlz
KSB0byBhICdzY3JlZW5zaG90cycgZm9sZGVyIGluIHRoZSBTdGVhbVZSIHJ1bnRpbWUgcm9vdC4g
Ki8KLSAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckR1bXBJbWFnZXMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogTGV0IGFuIGFwcCBrbm93IGl0IHNob3VsZCBiZSByZW5kZXJpbmcgd2l0aCBsb3cg
cmVzb3VyY2VzLiAqLwotICAgICAgIHZpcnR1YWwgYm9vbCBTaG91bGRBcHBSZW5kZXJXaXRoTG93
UmVzb3VyY2VzKCkgPSAwOwotCi0gICAgICAgLyoqIE92ZXJyaWRlIGludGVybGVhdmVkIHJlcHJv
amVjdGlvbiBsb2dpYyB0byBmb3JjZSBvbi4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKCBib29sIGJPdmVycmlkZSApID0gMDsKLQotICAgICAg
IC8qKiBGb3JjZSByZWNvbm5lY3RpbmcgdG8gdGhlIGNvbXBvc2l0b3IgcHJvY2Vzcy4gKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkgPSAwOwotCi0gICAgICAg
LyoqIFRlbXBvcmFyaWx5IHN1c3BlbmRzIHJlbmRlcmluZyAodXNlZnVsIGZvciBmaW5lciBjb250
cm9sIG92ZXIgc2NlbmUgdHJhbnNpdGlvbnMpLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBTdXNw
ZW5kUmVuZGVyaW5nKCBib29sIGJTdXNwZW5kICkgPSAwOwotCi0gICAgICAgLyoqIE9wZW5zIGEg
c2hhcmVkIEQzRDExIHRleHR1cmUgd2l0aCB0aGUgdW5kaXN0b3J0ZWQgY29tcG9zaXRlZCBpbWFn
ZSBmb3IgZWFjaCBleWUuICBVc2UgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSB3aGVuIGZpbmlz
aGVkCi0gICAgICAgKiBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGUgcmVzb3VyY2Ug
aXRzZWxmLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBHZXRNaXJy
b3JUZXh0dXJlRDNEMTEoIHZyOjpFVlJFeWUgZUV5ZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNv
dXJjZSwgdm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7Ci0gICAgICAgdmly
dHVhbCB2b2lkIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEoIHZvaWQgKnBEM0QxMVNoYWRlclJl
c291cmNlVmlldyApID0gMDsKLQotICAgICAgIC8qKiBBY2Nlc3MgdG8gbWlycm9yIHRleHR1cmVz
IGZyb20gT3BlbkdMLiAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRNaXJyb3JUZXh0dXJlR0woIHZyOjpFVlJFeWUgZUV5ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0
dXJlSWQsIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqcGdsU2hhcmVkVGV4dHVyZUhhbmRs
ZSApID0gMDsKLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSggdnI6
OmdsVUludF90IGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBMb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlICkgPSAwOwotICAgICAgIHZpcnR1YWwgdm9pZCBVbmxvY2tHTFNoYXJlZFRleHR1
cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVI
YW5kbGUgKSA9IDA7Ci0KLSAgICAgICAvKiogW1Z1bGthbiBPbmx5XQotICAgICAgICogcmV0dXJu
IDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRl
cyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0g
ICAgICAgKiBudWxsLiAgVGhlIHN0cmluZyB3aWxsIGJlIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qg
b2YtcmVxdWlyZWQgaW5zdGFuY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4gVmtDcmVhdGVJbnN0
YW5jZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5C
dWZmZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIFtWdWxrYW4gb25seV0KLSAgICAgICAqIHJl
dHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGlu
ZwotICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFyYXRlZCBs
aXN0IG9mIHJlcXVpcmVkIGRldmljZSBleHRlbnNpb25zIHRvIGVuYWJsZSBpbiBWa0NyZWF0ZURl
dmljZSAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9u
c1JlcXVpcmVkKCBWa1BoeXNpY2FsRGV2aWNlX1QgKnBQaHlzaWNhbERldmljZSwgVlJfT1VUX1NU
UklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAg
ICAgICAvKiogWyBWdWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBUaGVyZSBhcmUgdHdvIHB1
cnBvc2VzIGZvciBTZXRFeHBsaWNpdFRpbWluZ01vZGU6Ci0gICAgICAgKiAgICAgICAxLiBUbyBn
ZXQgYSBtb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGZyYW1lIGJlZ2lu
cyBpbiBWdWxrYW4vRDNEMTIgYXBwbGljYXRpb25zLgotICAgICAgICogICAgICAgMi4gKE9wdGlv
bmFsKSBUbyBhdm9pZCBoYXZpbmcgV2FpdEdldFBvc2VzIGFjY2VzcyB0aGUgVnVsa2FuIHF1ZXVl
IHNvIHRoYXQgdGhlIHF1ZXVlIGNhbiBiZSBhY2Nlc3NlZCBmcm9tCi0gICAgICAgKiAgICAgICBh
bm90aGVyIHRocmVhZCB3aGlsZSBXYWl0R2V0UG9zZXMgaXMgZXhlY3V0aW5nLgotICAgICAgICoK
LSAgICAgICAqIE1vcmUgYWNjdXJhdGUgR1BVIHRpbWVzdGFtcCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBmcmFtZSBpcyBhY2hpZXZlZCBieSB0aGUgYXBwbGljYXRpb24gY2FsbGluZwotICAgICAgICog
U3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIGltbWVkaWF0ZWx5IGJlZm9yZSBpdHMgZmlyc3Qgc3Vi
bWlzc2lvbiB0byB0aGUgVnVsa2FuL0QzRDEyIHF1ZXVlLgotICAgICAgICogVGhpcyBpcyBtb3Jl
IGFjY3VyYXRlIGJlY2F1c2Ugbm9ybWFsbHkgdGhpcyBHUFUgdGltZXN0YW1wIGlzIHJlY29yZGVk
IGR1cmluZyBXYWl0R2V0UG9zZXMuICBJbiBEM0QxMSwgCi0gICAgICAgKiBXYWl0R2V0UG9zZXMg
cXVldWVzIGEgR1BVIHRpbWVzdGFtcCB3cml0ZSwgYnV0IGl0IGRvZXMgbm90IGFjdHVhbGx5IGdl
dCBzdWJtaXR0ZWQgdG8gdGhlIEdQVSB1bnRpbCB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlvbiBm
bHVzaGVzLiAgQnkgdXNpbmcgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhLCB0aGUgdGltZXN0YW1w
IGlzIHJlY29yZGVkIGF0IHRoZSBzYW1lIHBsYWNlIGZvciAKLSAgICAgICAqIFZ1bGthbi9EM0Qx
MiBhcyBpdCBpcyBmb3IgRDNEMTEsIHJlc3VsdGluZyBpbiBhIG1vcmUgYWNjdXJhdGUgR1BVIHRp
bWUgbWVhc3VyZW1lbnQgZm9yIHRoZSBmcmFtZS4KLSAgICAgICAqCi0gICAgICAgKiBBdm9pZGlu
ZyBXYWl0R2V0UG9zZXMgYWNjZXNzaW5nIHRoZSBWdWxrYW4gcXVldWUgY2FuIGJlIGFjaGlldmVk
IHVzaW5nIFNldEV4cGxpY2l0VGltaW5nTW9kZSBhcyB3ZWxsLiAgSWYgdGhpcyBpcyBkZXNpcmVk
LAotICAgICAgICogdGhlIGFwcGxpY2F0aW9uICpNVVNUKiBjYWxsIFBvc3RQcmVzZW50SGFuZG9m
ZiBpdHNlbGYgcHJpb3IgdG8gV2FpdEdldFBvc2VzLiAgSWYgU2V0RXhwbGljaXRUaW1pbmdNb2Rl
IGlzIHRydWUgYW5kIHRoZQotICAgICAgICogYXBwbGljYXRpb24gY2FsbHMgUG9zdFByZXNlbnRI
YW5kb2ZmLCB0aGVuIFdhaXRHZXRQb3NlcyBpcyBndWFyYW50ZWVkIG5vdCB0byBhY2Nlc3MgdGhl
IHF1ZXVlLiAgTm90ZSB0aGF0IFBvc3RQcmVzZW50SGFuZG9mZgotICAgICAgICogYW5kIFN1Ym1p
dEV4cGxpY2l0VGltaW5nRGF0YSB3aWxsIGFjY2VzcyB0aGUgcXVldWUsIHNvIG9ubHkgV2FpdEdl
dFBvc2VzIGJlY29tZXMgc2FmZSBmb3IgYWNjZXNzaW5nIHRoZSBxdWV1ZSBmcm9tIGFub3RoZXIK
LSAgICAgICAqIHRocmVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RXhwbGljaXRUaW1p
bmdNb2RlKCBib29sIGJFeHBsaWNpdFRpbWluZ01vZGUgKSA9IDA7Ci0KLSAgICAgICAvKiogWyBW
dWxrYW4vRDNEMTIgT25seSBdCi0gICAgICAgKiBTdWJtaXQgZXhwbGljaXQgdGltaW5nIGRhdGEu
ICBXaGVuIFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyB0cnVlLCB0aGlzIG11c3QgYmUgY2FsbGVk
IGltbWVkaWF0ZWx5IGJlZm9yZQotICAgICAgICogdGhlIGFwcGxpY2F0aW9uJ3MgZmlyc3QgdmtR
dWV1ZVN1Ym1pdCAoVnVsa2FuKSBvciBJRDNEMTJDb21tYW5kUXVldWU6OkV4ZWN1dGVDb21tYW5k
TGlzdHMgKEQzRDEyKSBvZiBlYWNoIGZyYW1lLgotICAgICAgICogVGhpcyBmdW5jdGlvbiB3aWxs
IGluc2VydCBhIEdQVSB0aW1lc3RhbXAgd3JpdGUganVzdCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9u
IHN0YXJ0cyBpdHMgcmVuZGVyaW5nLiAgVGhpcyBmdW5jdGlvbgotICAgICAgICogd2lsbCBwZXJm
b3JtIGEgdmtRdWV1ZVN1Ym1pdCBvbiBWdWxrYW4gc28gbXVzdCBub3QgYmUgZG9uZSBzaW11bHRh
bmVvdXNseSB3aXRoIFZrUXVldWUgb3BlcmF0aW9ucyBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAg
ICAqIFJldHVybnMgVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVzdEZhaWxlZCBpZiBTZXRFeHBsaWNp
dFRpbWluZ01vZGUgaXMgbm90IGVuYWJsZWQuICovCi0gICAgICAgdmlydHVhbCBFVlJDb21wb3Np
dG9yRXJyb3IgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhKCkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8w
MjEiOwotCi19IC8vIG5hbWVzcGFjZSB2cgotCi0KLQotLy8gaXZybm90aWZpY2F0aW9ucy5oCi1u
YW1lc3BhY2UgdnIKLXsKLQotI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLQotLy8gVXNlZCBmb3Ig
cGFzc2luZyBncmFwaGljIGRhdGEKLXN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdAotewotICAg
ICAgIE5vdGlmaWNhdGlvbkJpdG1hcF90KCkKLSAgICAgICAgICAgICAgOiBtX3BJbWFnZURhdGEo
IG51bGxwdHIgKQotICAgICAgICAgICAgICAsIG1fbldpZHRoKCAwICkKLSAgICAgICAgICAgICAg
LCBtX25IZWlnaHQoIDAgKQotICAgICAgICAgICAgICAsIG1fbkJ5dGVzUGVyUGl4ZWwoIDAgKQot
ICAgICAgIHsKLSAgICAgICB9OwotCi0gICAgICAgdm9pZCAqbV9wSW1hZ2VEYXRhOwotICAgICAg
IGludDMyX3QgbV9uV2lkdGg7Ci0gICAgICAgaW50MzJfdCBtX25IZWlnaHQ7Ci0gICAgICAgaW50
MzJfdCBtX25CeXRlc1BlclBpeGVsOwotfTsKLQotCi0vKiogQmUgYXdhcmUgdGhhdCB0aGUgbm90
aWZpY2F0aW9uIHR5cGUgaXMgdXNlZCBhcyAncHJpb3JpdHknIHRvIHBpY2sgdGhlIG5leHQgbm90
aWZpY2F0aW9uICovCi1lbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICAvKiogVHJh
bnNpZW50IG5vdGlmaWNhdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgaGlkZGVuIGFmdGVyIGEgcGVy
aW9kIG9mIHRpbWUgc2V0IGJ5IHRoZSB1c2VyLiAKLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9y
IHRoaW5ncyBsaWtlIGluZm9ybWF0aW9uIGFuZCBjaGF0IG1lc3NhZ2VzIHRoYXQgZG8gbm90IHJl
cXVpcmUgdXNlciBpbnRlcmFjdGlvbi4gKi8KLSAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1Ry
YW5zaWVudCA9IDAsCi0KLSAgICAgICAvKiogUGVyc2lzdGVudCBub3RpZmljYXRpb25zIGFyZSBz
aG93biB0byB0aGUgdXNlciB1bnRpbCB0aGV5IGFyZSBoaWRkZW4gYnkgY2FsbGluZyBSZW1vdmVO
b3RpZmljYXRpb24oKS4KLSAgICAgICAqIFRoZXkgYXJlIHVzZWQgZm9yIHRoaW5ncyBsaWtlIHBo
b25lIGNhbGxzIGFuZCBhbGFybXMgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwKLQotICAgICAgIC8qKiBT
eXN0ZW0gbm90aWZpY2F0aW9ucyBhcmUgc2hvd24gbm8gbWF0dGVyIHdoYXQuIEl0IGlzIGV4cGVj
dGVkLCB0aGF0IHRoZSB1bFVzZXJWYWx1ZSBpcyB1c2VkIGFzIElELgotICAgICAgICAqIElmIHRo
ZXJlIGlzIGFscmVhZHkgYSBzeXN0ZW0gbm90aWZpY2F0aW9uIGluIHRoZSBxdWV1ZSB3aXRoIHRo
YXQgSUQgaXQgaXMgbm90IGFjY2VwdGVkIGludG8gdGhlIHF1ZXVlCi0gICAgICAgICogdG8gcHJl
dmVudCBzcGFtbWluZyB3aXRoIHN5c3RlbSBub3RpZmljYXRpb24gKi8KLSAgICAgICBFVlJOb3Rp
ZmljYXRpb25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKLX07Ci0KLWVu
dW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKLXsKLSAgICAgICAvKiogQ3JlYXRlcyBhIG5vdGlmaWNh
dGlvbiB3aXRoIG1pbmltYWwgZXh0ZXJuYWwgc3R5bGluZy4gKi8KLSAgICAgICBFVlJOb3RpZmlj
YXRpb25TdHlsZV9Ob25lID0gMCwKLQotICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25z
IGFib3V0IG92ZXJsYXktbGV2ZWwgc3RhdHVzLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGV2
ZW50cyBsaWtlIGRvd25sb2FkcyBjb21wbGV0aW5nLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotCi0gICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNh
dGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgdW5rbm93biBvciBub3QgYXZhaWxhYmxlLiBJ
biBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZyaWVuZCBpbnZpdGF0aW9ucyBhbmQgb2ZmbGluZSBm
cmllbmRzLiAqLwotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRGlzYWJsZWQg
PSAyMDAsCi0KLSAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0
cyB0aGF0IGFyZSBhdmFpbGFibGUgYnV0IGluYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQg
Zm9yIGZyaWVuZHMgdGhhdCBhcmUgb25saW5lIGJ1dCBub3QgcGxheWluZyBhIGdhbWUuICovCi0g
ICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9FbmFibGVkID0gMjAxLAotCi0gICAg
ICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgYXZh
aWxhYmxlIGFuZCBhY3RpdmUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0
IGFyZSBvbmxpbmUgYW5kIGN1cnJlbnRseSBydW5uaW5nIGEgZ2FtZS4gKi8KLSAgICAgICBFVlJO
b3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSA9IDIwMiwKLX07Ci0KLXN0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci0KLXR5cGVkZWYg
dWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLQotCi0KLSNwcmFnbWEgcGFjayggcG9wICkKLQot
LyoqIEFsbG93cyBub3RpZmljYXRpb24gc291cmNlcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBWUiBz
eXN0ZW0KLSAgICAgICBUaGlzIGN1cnJlbnQgaW50ZXJmYWNlIGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQuIERvIG5vdCB1c2UgeWV0LiAqLwotY2xhc3MgSVZSTm90aWZpY2F0aW9ucwotewotcHVibGlj
OgotICAgICAgIC8qKiBDcmVhdGUgYSBub3RpZmljYXRpb24gYW5kIGVucXVldWUgaXQgdG8gYmUg
c2hvd24gdG8gdGhlIHVzZXIuCi0gICAgICAgKiBBbiBvdmVybGF5IGhhbmRsZSBpcyByZXF1aXJl
ZCB0byBjcmVhdGUgYSBub3RpZmljYXRpb24sIGFzIG90aGVyd2lzZSBpdCB3b3VsZCBiZSBpbXBv
c3NpYmxlIGZvciBhIHVzZXIgdG8gYWN0IG9uIGl0LgotICAgICAgICogVG8gY3JlYXRlIGEgdHdv
LWxpbmUgbm90aWZpY2F0aW9uLCB1c2UgYSBsaW5lIGJyZWFrICgnXG4nKSB0byBzcGxpdCB0aGUg
dGV4dCBpbnRvIHR3byBsaW5lcy4KLSAgICAgICAqIFRoZSBwSW1hZ2UgYXJndW1lbnQgbWF5IGJl
IE5VTEwsIGluIHdoaWNoIGNhc2UgdGhlIHNwZWNpZmllZCBvdmVybGF5J3MgaWNvbiB3aWxsIGJl
IHVzZWQgaW5zdGVhZC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIENy
ZWF0ZU5vdGlmaWNhdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
NjRfdCB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjb25zdCBjaGFyICpw
Y2hUZXh0LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgY29uc3QgTm90aWZpY2F0aW9uQml0
bWFwX3QgKnBJbWFnZSwgLyogb3V0ICovIFZSTm90aWZpY2F0aW9uSWQgKnBOb3RpZmljYXRpb25J
ZCApID0gMDsKLQotICAgICAgIC8qKiBEZXN0cm95IGEgbm90aWZpY2F0aW9uLCBoaWRpbmcgaXQg
Zmlyc3QgaWYgaXQgY3VycmVudGx5IHNob3duIHRvIHRoZSB1c2VyLiAqLwotICAgICAgIHZpcnR1
YWwgRVZSTm90aWZpY2F0aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKCBWUk5vdGlmaWNhdGlv
bklkIG5vdGlmaWNhdGlvbklkICkgPSAwOwotCi19OwotCi1zdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0K
LX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJvdmVybGF5LmgKLW5hbWVzcGFjZSB2cgot
ewotCi0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IGtleSBpbiBi
eXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiAqLwotICAgICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owot
Ci0gICAgICAgLyoqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBvdmVybGF5IG5hbWUgaW4gYnl0
ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4gKi8KLSAgICAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7Ci0K
LSAgICAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIG92ZXJsYXlzIHRoYXQgY2FuIGV4aXN0
IGluIHRoZSBzeXN0ZW0gYXQgb25lIHRpbWUuICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKLQotICAgICAgIC8qKiBUaGUgbWF4aW11bSBu
dW1iZXIgb2Ygb3ZlcmxheSBpbnRlcnNlY3Rpb24gbWFzayBwcmltaXRpdmVzIHBlciBvdmVybGF5
ICovCi0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotCi0gICAgICAgLyoqIFR5cGVzIG9mIGlucHV0
IHN1cHBvcnRlZCBieSBWUiBPdmVybGF5cyAqLwotICAgICAgIGVudW0gVlJPdmVybGF5SW5wdXRN
ZXRob2QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUg
ICAgICAgICAgICAgID0gMCwgLy8gTm8gaW5wdXQgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIGF1
dG9tYXRpY2FsbHkgZm9yIHRoaXMgb3ZlcmxheQotICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1
dE1ldGhvZF9Nb3VzZSAgICAgICAgICAgICAgPSAxLCAvLyBUcmFja2VkIGNvbnRyb2xsZXJzIHdp
bGwgZ2V0IG1vdXNlIGV2ZW50cyBhdXRvbWF0aWNhbGx5Ci0gICAgICAgfTsKLQotICAgICAgIC8q
KiBBbGxvd3MgdGhlIGNhbGxlciB0byBmaWd1cmUgb3V0IHdoaWNoIG92ZXJsYXkgdHJhbnNmb3Jt
IGdldHRlciB0byBjYWxsLiAqLwotICAgICAgIGVudW0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRpdmUgICAgICAgPSAxLAotICAgICAgICAgICAg
ICBWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSAgICAgICAgICAgICAgICAgICAgID0g
MiwKLSAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQgICAg
ICAgICAgICAgICA9IDMsCi0gICAgICAgfTsKLQotICAgICAgIC8qKiBPdmVybGF5IGNvbnRyb2wg
c2V0dGluZ3MgKi8KLSAgICAgICBlbnVtIFZST3ZlcmxheUZsYWdzCi0gICAgICAgewotICAgICAg
ICAgICAgICBWUk92ZXJsYXlGbGFnc19Ob25lICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0g
ICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgb25seSB0YWtlIGVmZmVjdCB3aGVuIHJlbmRl
cmVkIHVzaW5nIHRoZSBoaWdoIHF1YWxpdHkgcmVuZGVyIHBhdGggKHNlZSBTZXRIaWdoUXVhbGl0
eU92ZXJsYXkpLgotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgICAgICAgICAg
ICAgID0gMSwKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdTUzRYICAgICAgICAgICAg
ICA9IDIsCi0KLSAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBvbiBhIGRhc2hib2FyZCBv
dmVybGF5IHRvIHByZXZlbnQgYSB0YWIgZnJvbSBzaG93aW5nIHVwIGZvciB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNoYm9hcmRUYWIgPSAzLAotCi0gICAg
ICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBkYXNoYm9hcmQgdGhhdCBpcyBhYmxlIHRv
IGRlYWwgd2l0aCBnYW1lcGFkIGZvY3VzIGV2ZW50cwotICAgICAgICAgICAgICBWUk92ZXJsYXlG
bGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0KLSAgICAgICAgICAgICAgLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIG92ZXJsYXkgc2hvdWxkIGRpbS9icmlnaHRlbiB0byBzaG93IGdhbWVwYWQg
Zm9jdXMKLSAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUs
Ci0KLSAgICAgICAgICAgICAgLy8gV2hlbiBpbiBWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSB5
b3UgY2FuIG9wdGlvbmFsbHkgZW5hYmxlIHNlbmRpbmcgVlJTY3JvbGxfdCAKLSAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMgPSA3LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCB0aGlzIHdpbGwgcmVuZGVyIGEgdmVydGljYWwgc2Nyb2xsIHdoZWVsIG9uIHRo
ZSBwcmltYXJ5IGNvbnRyb2xsZXIsIAotICAgICAgICAgICAgICAvLyAgb25seSBuZWVkZWQgaWYg
bm90IHVzaW5nIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyBidXQgeW91IHN0aWxs
IHdhbnQgdG8gcmVwcmVzZW50IGEgc2Nyb2xsIHdoZWVsCi0gICAgICAgICAgICAgIFZST3Zlcmxh
eUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsID0gOCwKLQotICAgICAgICAgICAgICAvLyBJ
ZiB0aGlzIGlzIHNldCBvd25lcnNoaXAgYW5kIHJlbmRlciBhY2Nlc3MgdG8gdGhlIG92ZXJsYXkg
YXJlIHRyYW5zZmVycmVkIAotICAgICAgICAgICAgICAvLyB0byB0aGUgbmV3IHNjZW5lIHByb2Nl
c3Mgb24gYSBjYWxsIHRvIElWUkFwcGxpY2F0aW9uczo6TGF1bmNoSW50ZXJuYWxQcm9jZXNzCi0g
ICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRlcm5hbFBy
b2Nlc3MgPSA5LAotCi0gICAgICAgICAgICAgIC8vIElmIHNldCwgcmVuZGVycyA1MCUgb2YgdGhl
IHRleHR1cmUgaW4gZWFjaCBleWUsIHNpZGUgYnkgc2lkZQotICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsID0gMTAsIC8vIFRleHR1cmUgaXMgbGVmdC9yaWdo
dAotICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwg
Ly8gVGV4dHVyZSBpcyBjcm9zc2VkIGFuZCByaWdodC9sZWZ0Ci0KLSAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwgLy8gVGV4dHVyZSBpcyBhIHBhbm9yYW1hCi0gICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsIC8vIFRleHR1cmUg
aXMgYSBzdGVyZW8gcGFub3JhbWEKLQotICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHNldCBv
biBhbiBvdmVybGF5IG93bmVkIGJ5IHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0aGF0IG92ZXJsYXkK
LSAgICAgICAgICAgICAgLy8gd2lsbCBiZSBzb3J0ZWQgd2l0aCB0aGUgIk90aGVyIiBvdmVybGF5
cyBvbiB0b3Agb2YgYWxsIG90aGVyIHNjZW5lIG92ZXJsYXlzCi0gICAgICAgICAgICAgIFZST3Zl
cmxheUZsYWdzX1NvcnRXaXRoTm9uU2NlbmVPdmVybGF5cyA9IDE0LAotCi0gICAgICAgICAgICAg
IC8vIElmIHNldCwgdGhlIG92ZXJsYXkgd2lsbCBiZSBzaG93biBpbiB0aGUgZGFzaGJvYXJkLCBv
dGhlcndpc2UgaXQgd2lsbCBiZSBoaWRkZW4uCi0gICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdz
X1Zpc2libGVJbkRhc2hib2FyZCA9IDE1LAotICAgICAgIH07Ci0KLSAgICAgICBlbnVtIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zl
cmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzAgPSAwLAotICAgICAgICAgICAgICBWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSA9IDEsCi0gICAgICAgICAgICAgIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18yID0gMiwKLSAgICAgICAgICAgICAgVlJNZXNz
YWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAotICAgICAgICAgICAgICBWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0gNCwKLSAgICAg
ICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kT3JDcmVhdGVDbGll
bnRPdmVybGF5PSA1LAotICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQXBw
bGljYXRpb25RdWl0ID0gNgotICAgICAgIH07Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50
ZXJzZWN0aW9uUGFyYW1zX3QKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2
U291cmNlOwotICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKLSAgICAgICAg
ICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKLSAgICAgICB9OwotCi0gICAg
ICAgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAotICAgICAgIHsKLSAgICAg
ICAgICAgICAgSG1kVmVjdG9yM190IHZQb2ludDsKLSAgICAgICAgICAgICAgSG1kVmVjdG9yM190
IHZOb3JtYWw7Ci0gICAgICAgICAgICAgIEhtZFZlY3RvcjJfdCB2VVZzOwotICAgICAgICAgICAg
ICBmbG9hdCBmRGlzdGFuY2U7Ci0gICAgICAgfTsKLQotICAgICAgIC8vIElucHV0IG1vZGVzIGZv
ciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5Ci0gICAgICAgZW51bSBFR2FtZXBh
ZFRleHRJbnB1dE1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlTm9ybWFsID0gMCwKLSAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVQ
YXNzd29yZCA9IDEsCi0gICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0
ID0gMiwKLSAgICAgICB9OwotCi0gICAgICAgLy8gQ29udHJvbHMgbnVtYmVyIG9mIGFsbG93ZWQg
bGluZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRleHQgZW50cnkKLSAgICAgICBlbnVt
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGtfRUdh
bWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgICAgICAgICBrX0VH
YW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMQotICAgICAgIH07Ci0KLSAg
ICAgICAvKiogRGlyZWN0aW9ucyBmb3IgY2hhbmdpbmcgZm9jdXMgYmV0d2VlbiBvdmVybGF5cyB3
aXRoIHRoZSBnYW1lcGFkICovCi0gICAgICAgZW51bSBFT3ZlcmxheURpcmVjdGlvbgotICAgICAg
IHsKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9VcCA9IDAsCi0gICAgICAgICAgICAg
IE92ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rp
b25fTGVmdCA9IDIsCi0gICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fUmlnaHQgPSAzLAot
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQs
Ci0gICAgICAgfTsKLQotICAgICAgIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlCi0gICAgICAgewotICAgICAgICAgICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJp
bWl0aXZlVHlwZV9SZWN0YW5nbGUsCi0gICAgICAgICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX0NpcmNsZSwKLSAgICAgICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2Vj
dGlvbk1hc2tSZWN0YW5nbGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbFRv
cExlZnRYOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgICAgICAg
IGZsb2F0IG1fZmxXaWR0aDsKLSAgICAgICAgICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLSAgICAg
ICB9OwotCi0gICAgICAgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdAotICAgICAgIHsK
LSAgICAgICAgICAgICAgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgICAgICAgIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgICAgICAgICBmbG9hdCBtX2ZsUmFkaXVzOwotICAgICAgIH07Ci0K
LSAgICAgICAvKiogTk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1VU1QgbWFudWFsbHkg
dXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5IGFuZCBvcGVudnJfYXBpX2ZsYXQuaC5weSAqLwot
ICAgICAgIHR5cGVkZWYgdW5pb24KLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludGVyc2VjdGlv
bk1hc2tSZWN0YW5nbGVfdCBtX1JlY3RhbmdsZTsKLSAgICAgICAgICAgICAgSW50ZXJzZWN0aW9u
TWFza0NpcmNsZV90IG1fQ2lyY2xlOwotICAgICAgIH0gVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLSAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV90Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICAgICAgICAg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci0g
ICAgICAgfTsKLQotICAgICAgIGNsYXNzIElWUk92ZXJsYXkKLSAgICAgICB7Ci0gICAgICAgcHVi
bGljOgotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IG1hbmFnZW1lbnQgbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogRmluZHMgYW4gZXhpc3Rpbmcgb3ZlcmxheSB3
aXRoIHRoZSBzcGVjaWZpZWQga2V5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBGaW5kT3ZlcmxheSggY29uc3QgY2hhciAqcGNoT3ZlcmxheUtleSwgVlJPdmVybGF5
SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ3Jl
YXRlcyBhIG5ldyBuYW1lZCBvdmVybGF5LiBBbGwgb3ZlcmxheXMgc3RhcnQgaGlkZGVuIGFuZCB3
aXRoIGRlZmF1bHQgc2V0dGluZ3MuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIENyZWF0ZU92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNo
YXIgKnBjaE92ZXJsYXlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiBEZXN0cm95cyB0aGUgc3BlY2lmaWVkIG92ZXJsYXku
IFdoZW4gYW4gYXBwbGljYXRpb24gY2FsbHMgVlJfU2h1dGRvd24gYWxsIG92ZXJsYXlzIGNyZWF0
ZWQgYnkgdGhhdCBhcHAgYXJlCi0gICAgICAgICAgICAgICogYXV0b21hdGljYWxseSBkZXN0cm95
ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIERlc3Ryb3lPdmVy
bGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAg
ICAgICAgLyoqIFNwZWNpZnkgd2hpY2ggb3ZlcmxheSB0byB1c2UgdGhlIGhpZ2ggcXVhbGl0eSBy
ZW5kZXIgcGF0aC4gIFRoaXMgb3ZlcmxheSB3aWxsIGJlIGNvbXBvc2l0ZWQgaW4gZHVyaW5nIHRo
ZSBkaXN0b3J0aW9uIHBhc3Mgd2hpY2gKLSAgICAgICAgICAgICAgKiByZXN1bHRzIGluIGl0IGRy
YXdpbmcgb24gdG9wIG9mIGV2ZXJ5dGhpbmcgZWxzZSwgYnV0IGFsc28gYXQgYSBoaWdoZXIgcXVh
bGl0eSBhcyBpdCBzYW1wbGVzIHRoZSBzb3VyY2UgdGV4dHVyZSBkaXJlY3RseSByYXRoZXIgdGhh
bgotICAgICAgICAgICAgICAqIHJhc3Rlcml6aW5nIGludG8gZWFjaCBleWUncyByZW5kZXIgdGV4
dHVyZSBmaXJzdC4gIEJlY2F1c2UgaWYgdGhpcywgb25seSBvbmUgb2YgdGhlc2UgaXMgc3VwcG9y
dGVkIGF0IGFueSBnaXZlbiB0aW1lLiAgSXQgaXMgbW9zdCB1c2VmdWwKLSAgICAgICAgICAgICAg
KiBmb3Igb3ZlcmxheXMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gdGFrZSB1cCBtb3N0IG9mIHRoZSB1
c2VyJ3MgdmlldyAoZS5nLiBzdHJlYW1pbmcgdmlkZW8pLgotICAgICAgICAgICAgICAqIFRoaXMg
bW9kZSBkb2VzIG5vdCBzdXBwb3J0IG1vdXNlIGlucHV0IHRvIHlvdXIgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0SGlnaFF1YWxpdHlPdmVybGF5
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdGhlIG92ZXJsYXkgaGFuZGxlIG9mIHRoZSBjdXJyZW50IG92ZXJsYXkg
YmVpbmcgcmVuZGVyZWQgdXNpbmcgdGhlIHNpbmdsZSBoaWdoIHF1YWxpdHkgb3ZlcmxheSByZW5k
ZXIgcGF0aC4KLSAgICAgICAgICAgICAgKiBPdGhlcndpc2UgaXQgd2lsbCByZXR1cm4ga191bE92
ZXJsYXlIYW5kbGVJbnZhbGlkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJs
YXlIYW5kbGVfdCBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIEZpbGxzIHRoZSBwcm92aWRlZCBidWZmZXIgd2l0aCB0aGUgc3RyaW5nIGtleSBvZiB0aGUg
b3ZlcmxheS4gUmV0dXJucyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhl
IGtleSwgaW5jbHVkaW5nCi0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hh
cmFjdGVyLiBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoIHdpbGwgYmUgZW5vdWdoIGJ5dGVzIHRv
IGZpdCB0aGUgc3RyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92
ZXJsYXlLZXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJv
ciAqcEVycm9yID0gMEwgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEZpbGxzIHRoZSBwcm92
aWRlZCBidWZmZXIgd2l0aCB0aGUgZnJpZW5kbHkgbmFtZSBvZiB0aGUgb3ZlcmxheS4gUmV0dXJu
cyB0aGUgc2l6ZSBvZiBidWZmZXIgcmVxdWlyZWQgdG8gc3RvcmUgdGhlIGtleSwgaW5jbHVkaW5n
Ci0gICAgICAgICAgICAgICogdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiBrX3VuVlJP
dmVybGF5TWF4TmFtZUxlbmd0aCB3aWxsIGJlIGVub3VnaCBieXRlcyB0byBmaXQgdGhlIHN0cmlu
Zy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5TmFtZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNo
VmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICpwRXJyb3IgPSAw
TCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogc2V0IHRoZSBuYW1lIHRvIHVzZSBmb3IgdGhp
cyBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlOYW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIg
KnBjaE5hbWUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHJhdyBpbWFnZSBk
YXRhIGZyb20gYW4gb3ZlcmxheS4gT3ZlcmxheSBpbWFnZSBkYXRhIGlzIGFsd2F5cyByZXR1cm5l
ZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBpeGVsLiBJZiB0aGUgYnVmZmVyIGlzIG5vdCBs
YXJnZSBlbm91Z2gsIHdpZHRoIGFuZCBoZWlnaHQgCi0gICAgICAgICAgICAgICogd2lsbCBiZSBz
ZXQgYW5kIFZST3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwgaXMgcmV0dXJuZWQuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbWFnZURhdGEoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90
IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKnB1bldpZHRoLCB1aW50MzJfdCAqcHVuSGVpZ2h0ICkg
PSAwOwotCi0gICAgICAgICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9u
ZHMgd2l0aCB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0
aGUgbmFtZSAKLSAgICAgICAgICAgICAgKiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxs
IHZhbGlkIGVycm9yIGNvZGVzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAq
R2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKCBFVlJPdmVybGF5RXJyb3IgZXJyb3IgKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgcmVuZGVyaW5nIG1ldGhvZHMKLSAg
ICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHBpZCB0aGF0IGlzIGFsbG93ZWQgdG8g
cmVuZGVyIHRvIHRoaXMgb3ZlcmxheSAodGhlIGNyZWF0b3IgcGlkIGlzIGFsd2F5cyBhbGxvdyB0
byByZW5kZXIpLAotICAgICAgICAgICAgICAqICAgICAgIGJ5IGRlZmF1bHQgdGhpcyBpcyB0aGUg
cGlkIG9mIHRoZSBwcm9jZXNzIHRoYXQgbWFkZSB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUElEICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBwaWQgdGhhdCBpcyBhbGxvd2VkIHRvIHJlbmRlciB0byB0
aGlzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5
UmVuZGVyaW5nUGlkKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNwZWNpZnkgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZs
YWcoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRz
IGZsYWcgc2V0dGluZyBmb3IgYSBnaXZlbiBvdmVybGF5ICovCi0gICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCAqcGJFbmFibGVk
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjb2xvciB0aW50IG9mIHRoZSBv
dmVybGF5IHF1YWQuIFVzZSAwLjAgdG8gMS4wIHBlciBjaGFubmVsLiAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1
ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgY29sb3IgdGludCBvZiB0aGUg
b3ZlcmxheSBxdWFkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXRPdmVybGF5Q29sb3IoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQg
KnBmUmVkLCBmbG9hdCAqcGZHcmVlbiwgZmxvYXQgKnBmQmx1ZSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogU2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDEuMCBmb3Ig
MTAwIHBlcmNlbnQgb3BhY2l0eSB0byAwLjAgZm9yIDAgcGVyY2VudCBvcGFjaXR5LiAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5QWxwaGEoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZkFscGhhICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmxheSBxdWFkLiBCeSBkZWZh
dWx0IG92ZXJsYXlzIGFyZSByZW5kZXJpbmcgYXQgMTAwIHBlcmNlbnQgYWxwaGEgKDEuMCkuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZBbHBoYSApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMg
aW4gdGhlIG92ZXJsYXkuIDEuMCBtZWFucyB0aGUgdGV4ZWxzIGFyZSBzcXVhcmUuIDIuMCBtZWFu
cyB0aGUgdGV4ZWxzCi0gICAgICAgICAgICAgICogYXJlIHR3aWNlIGFzIHdpZGUgYXMgdGhleSBh
cmUgdGFsbC4gRGVmYXVsdHMgdG8gMS4wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHRleGVscyBpbiB0aGUgb3ZlcmxheS4gRGVm
YXVsdHMgdG8gMS4wICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdl
dE92ZXJsYXlUZXhlbEFzcGVjdCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBm
bG9hdCAqcGZUZXhlbEFzcGVjdCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUg
cmVuZGVyaW5nIHNvcnQgb3JkZXIgZm9yIHRoZSBvdmVybGF5LiBPdmVybGF5cyBhcmUgcmVuZGVy
ZWQgdGhpcyBvcmRlcjoKLSAgICAgICAgICAgICAgKiAgICAgIE92ZXJsYXlzIG93bmVkIGJ5IHRo
ZSBzY2VuZSBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqICAgICAgT3ZlcmxheXMgb3duZWQg
Ynkgc29tZSBvdGhlciBhcHBsaWNhdGlvbgotICAgICAgICAgICAgICAqCi0gICAgICAgICAgICAg
ICogICAgICAgV2l0aGluIGEgY2F0ZWdvcnkgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIGxvd2VzdCBz
b3J0IG9yZGVyIHRvIGhpZ2hlc3Qgc29ydCBvcmRlci4gT3ZlcmxheXMgd2l0aCB0aGUgc2FtZSAK
LSAgICAgICAgICAgICAgKiAgICAgICBzb3J0IG9yZGVyIGFyZSByZW5kZXJlZCBiYWNrIHRvIGZy
b250IGJhc2Ugb24gZGlzdGFuY2UgZnJvbSB0aGUgSE1ELgotICAgICAgICAgICAgICAqCi0gICAg
ICAgICAgICAgICogICAgICAgU29ydCBvcmRlciBkZWZhdWx0cyB0byAwLiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuU29ydE9yZGVyICkgPSAwOwot
Ci0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBzb3J0IG9yZGVyIG9mIHRoZSBvdmVybGF5LiBT
ZWUgU2V0T3ZlcmxheVNvcnRPcmRlciBmb3IgaG93IHRoaXMgd29ya3MuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blNvcnRPcmRlciApID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBp
biBtZXRlcnMuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0
IGlzIDEgbWV0ZXIgYWNyb3NzICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgb3ZlcmxheSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVs
dCBvdmVybGF5cyBhcmUgcmVuZGVyZWQgb24gYSBxdWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3Mg
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVdpZHRo
SW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmV2lk
dGhJbk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBj
dXJ2ZWQgb3ZlcmxheXMgb25seSwgc2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZy
b20gdGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAg
ICogdGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hl
biB0aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3Vy
dmVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJ
bk1ldGVycyApID0gMDsKLQotICAgICAgICAgICAgICAvKiogRm9yIGhpZ2gtcXVhbGl0eSBjdXJ2
ZWQgb3ZlcmxheXMgb25seSwgZ2V0cyB0aGUgZGlzdGFuY2UgcmFuZ2UgaW4gbWV0ZXJzIGZyb20g
dGhlIG92ZXJsYXkgdXNlZCB0byBhdXRvbWF0aWNhbGx5IGN1cnZlCi0gICAgICAgICAgICAgICog
dGhlIHN1cmZhY2UgYXJvdW5kIHRoZSB2aWV3ZXIuICBNaW4gaXMgZGlzdGFuY2UgaXMgd2hlbiB0
aGUgc3VyZmFjZSB3aWxsIGJlIG1vc3QgY3VydmVkLiAgTWF4IGlzIHdoZW4gbGVhc3QgY3VydmVk
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QXV0
b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0ICpwZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICpwZk1heERpc3RhbmNl
SW5NZXRlcnMgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGNvbG9yc3BhY2Ug
dGhlIG92ZXJsYXkgdGV4dHVyZSdzIGRhdGEgaXMgaW4uICBEZWZhdWx0cyB0byAnYXV0bycuCi0g
ICAgICAgICAgICAgICogSWYgdGhlIHRleHR1cmUgbmVlZHMgdG8gYmUgcmVzb2x2ZWQsIHlvdSBz
aG91bGQgY2FsbCBTZXRPdmVybGF5VGV4dHVyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjb2xvcnNw
YWNlIGluc3RlYWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgLyoqIEdldHMgdGhlIG92ZXJsYXkncyBjdXJyZW50IGNvbG9yc3BhY2Ugc2V0dGluZy4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNl
ICpwZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJsYXkuIFVWIE1pbiBpcyB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93ZXIgcmlnaHQgY29ybmVy
LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUlRl
eHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBHZXRzIHRoZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBmb3IgdGhlIG92ZXJs
YXkuIFVWIE1pbiBpcyB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgYW5kIFVWIE1heCBpcyB0aGUgbG93
ZXIgcmlnaHQgY29ybmVyLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBWUlRleHR1cmVCb3VuZHNfdCAqcE92ZXJsYXlUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBHZXRzIHJlbmRlciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92
ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5UmVuZGVy
TW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKnBjaFZh
bHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEhtZENvbG9yX3QgKnBDb2xvciwgdnI6OkVWUk92
ZXJsYXlFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHJlbmRl
ciBtb2RlbCB0byBkcmF3IGJlaGluZCB0aGlzIG92ZXJsYXkgYW5kIHRoZSB2ZXJ0ZXggY29sb3Ig
dG8gdXNlLCBwYXNzIG51bGwgZm9yIHBDb2xvciB0byBtYXRjaCB0aGUgb3ZlcmxheXMgdmVydGV4
IGNvbG9yLiAKLSAgICAgICAgICAgICAgICAgICAgIFRoZSBtb2RlbCBpcyBzY2FsZWQgYnkgdGhl
IHNhbWUgYW1vdW50IGFzIHRoZSBvdmVybGF5LCB3aXRoIGEgZGVmYXVsdCBvZiAxbS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSZW5kZXJN
b2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAq
cGNoUmVuZGVyTW9kZWwsIGNvbnN0IEhtZENvbG9yX3QgKnBDb2xvciApID0gMDsKLQotICAgICAg
ICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIHR5cGUgb2YgdGhpcyBvdmVybGF5LiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICpwZVRyYW5zZm9ybVR5cGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHRyYW5zZm9ybSB0byBhYnNvbHV0ZSB0cmFja2luZyBvcmlnaW4uICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlVHJhY2tpbmdPcmlnaW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09y
aWdpblRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgdHJhbnNmb3JtIGlmIGl0IGlzIGFic29sdXRlLiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0
cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKnBlVHJhY2tpbmdP
cmlnaW4sIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9y
bSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0
aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNwZWNpZmllZCB0cmFja2VkIGRldmljZS4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blRyYWNrZWREZXZpY2UsIGNvbnN0IEhtZE1hdHJpeDM0
X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYSB0cmFj
a2VkIGRldmljZS4gUmV0dXJucyBhbiBlcnJvciBpZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3Ro
ZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqcHVuVHJhY2tlZERldmljZSwgSG1k
TWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byBkcmF3IHRoZSBvdmVybGF5
IG9uIGEgcmVuZGVybW9kZWwgY29tcG9uZW50IG1lc2ggaW5zdGVhZCBvZiBhIHF1YWQuIFRoaXMg
d2lsbCBvbmx5IGRyYXcgd2hlbiB0aGUgc3lzdGVtIGlzCi0gICAgICAgICAgICAgICogZHJhd2lu
ZyB0aGUgZGV2aWNlLiBPdmVybGF5cyB3aXRoIHRoaXMgdHJhbnNmb3JtIHR5cGUgY2Fubm90IHJl
Y2VpdmUgbW91c2UgZXZlbnRzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAwOwotCi0gICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaW5mb3JtYXRpb24gd2hlbiB0aGUgb3ZlcmxheSBpcyBy
ZW5kZXJpbmcgb24gYSBjb21wb25lbnQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5E
ZXZpY2VJbmRleCwgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRO
YW1lU2l6ZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlm
IGl0IGlzIHJlbGF0aXZlIHRvIGFub3RoZXIgb3ZlcmxheS4gUmV0dXJucyBhbiBlcnJvciBpZiB0
aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KLSAgICAgICAgICAgICAgdmlydHVh
bCB2cjo6RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnVs
T3ZlcmxheUhhbmRsZVBhcmVudCwgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJsYXlUb092
ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgdHJhbnNmb3JtIHRvIHJlbGF0aXZlIHRvIHRoZSB0cmFuc2Zvcm0gb2YgdGhlIHNw
ZWNpZmllZCBvdmVybGF5LiBUaGlzIG92ZXJsYXlzIHZpc2liaWxpdHkgd2lsbCBhbHNvIHRyYWNr
IHRoZSBwYXJlbnRzIHZpc2liaWxpdHkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2cjo6RVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1PdmVybGF5UmVsYXRpdmUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlUGFyZW50LCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0UGFyZW50T3ZlcmxheVRvT3Zlcmxh
eVRyYW5zZm9ybSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2hvd3MgdGhlIFZSIG92ZXJs
YXkuICBGb3IgZGFzaGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBp
cyBhbGxvd2VkIHRvIGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgU2hvd092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogSGlkZXMgdGhlIFZSIG92ZXJsYXkuICBGb3IgZGFz
aGJvYXJkIG92ZXJsYXlzLCBvbmx5IHRoZSBEYXNoYm9hcmQgTWFuYWdlciBpcyBhbGxvd2VkIHRv
IGNhbGwgdGhpcy4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgSGlk
ZU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBvdmVybGF5IGlzIHZpc2libGUuICov
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc092ZXJsYXlWaXNpYmxlKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0
aGUgdHJhbnNmb3JtIGluIDNkIHNwYWNlIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIDJkIHBv
aW50IGluIHRoZSBvdmVybGF5J3MgY29vcmRpbmF0ZSBzcGFjZSAod2hlcmUgMCwwIGlzIHRoZSBs
b3dlciBsZWZ0KS4gLVogcG9pbnRzIG91dCBvZiB0aGUgb3ZlcmxheSAqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0
ZXMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFuc2Zvcm0gKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAg
ICAgIC8vIE92ZXJsYXkgaW5wdXQgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0
aGUgb3ZlcmxheSdzIGV2ZW50IHF1ZXVlLCBpZiB0aGVyZSBpcyBvbmUuIAotICAgICAgICAgICAg
ICAqIElmIHRoZXJlIGFyZSBubyBldmVudHMgdGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4gdW5j
YlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3Ry
dWN0ICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dE92ZXJsYXlFdmVudCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUkV2ZW50X3QgKnBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhl
IGN1cnJlbnQgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KLSAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUlucHV0TWV0aG9k
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9k
ICpwZUlucHV0TWV0aG9kICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBpbnB1
dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBvdmVybGF5LiAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgZUlucHV0TWV0aG9k
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBtb3VzZSBzY2FsaW5nIGZhY3Rv
ciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0dXJlIG1heSBi
ZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcwotICAgICAgICAgICAgICAqIHR5cGljYWxs
eSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMuICovCi0gICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUg
KSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIG1vdXNlIHNjYWxpbmcgZmFjdG9y
IHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZlbnRzLiBUaGUgYWN0dWFsIHRleHR1cmUgbWF5IGJl
IGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlzIGlzCi0gICAgICAgICAgICAgICogdHlwaWNhbGx5
IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscyAobm90IGluIHdvcmxkIHNw
YWNlKS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eU1vdXNlU2NhbGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgSG1k
VmVjdG9yMl90ICpwdmVjTW91c2VTY2FsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogQ29t
cHV0ZXMgdGhlIG92ZXJsYXktc3BhY2UgcGl4ZWwgY29vcmRpbmF0ZXMgb2Ygd2hlcmUgdGhlIHJh
eSBpbnRlcnNlY3RzIHRoZSBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAgICogc3BlY2lm
aWVkIHNldHRpbmdzLiBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIGludGVyc2VjdGlvbi4g
Ki8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IFZST3ZlcmxheUludGVy
c2VjdGlvblBhcmFtc190ICpwUGFyYW1zLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Qg
KnBSZXN1bHRzICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBQcm9jZXNzZXMgbW91c2UgaW5w
dXQgZnJvbSB0aGUgc3BlY2lmaWVkIGNvbnRyb2xsZXIgYXMgdGhvdWdoIGl0IHdlcmUgYSBtb3Vz
ZSBwb2ludGVkIGF0IGEgY29tcG9zaXRvciBvdmVybGF5IHdpdGggdGhlCi0gICAgICAgICAgICAg
ICogc3BlY2lmaWVkIHNldHRpbmdzLiBUaGUgY29udHJvbGxlciBpcyB0cmVhdGVkIGxpa2UgYSBs
YXNlciBwb2ludGVyIG9uIHRoZSAteiBheGlzLiBUaGUgcG9pbnQgd2hlcmUgdGhlIGxhc2VyIHBv
aW50ZXIgd291bGQKLSAgICAgICAgICAgICAgKiBpbnRlcnNlY3Qgd2l0aCB0aGUgb3ZlcmxheSBp
cyB0aGUgbW91c2UgcG9zaXRpb24sIHRoZSB0cmlnZ2VyIGlzIGxlZnQgbW91c2UsIGFuZCB0aGUg
dHJhY2sgcGFkIGlzIHJpZ2h0IG1vdXNlLiAKLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAg
ICAqIFJldHVybiB0cnVlIGlmIHRoZSBjb250cm9sbGVyIGlzIHBvaW50ZWQgYXQgdGhlIG92ZXJs
YXkgYW5kIGFuIGV2ZW50IHdhcyBnZW5lcmF0ZWQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0LiBBbiBvdmVybGF5IGlz
IHRoZSBob3ZlciB0YXJnZXQgd2hlbiBpdCBpcyB0aGUgbGFzdCBvdmVybGF5ICJtb3VzZWQgb3Zl
ciIgCi0gICAgICAgICAgICAgICogYnkgdGhlIHZpcnR1YWwgbW91c2UgcG9pbnRlciAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJu
cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmly
dHVhbCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpID0gMDsK
LQotICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY3VycmVudCBHYW1lcGFkIGZvY3VzIG92ZXJs
YXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkgKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLyoqIFNldHMgYW4gb3ZlcmxheSdzIG5laWdoYm9yLiBUaGlzIHdpbGwg
YWxzbyBzZXQgdGhlIG5laWdoYm9yIG9mIHRoZSAidG8iIG92ZXJsYXkKLSAgICAgICAgICAgICAg
KiB0byBwb2ludCBiYWNrIHRvIHRoZSAiZnJvbSIgb3ZlcmxheS4gSWYgYW4gb3ZlcmxheSdzIG5l
aWdoYm9yIGlzIHNldCB0byBpbnZhbGlkIGJvdGgKLSAgICAgICAgICAgICAgKiBlbmRzIHdpbGwg
YmUgY2xlYXJlZCAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRP
dmVybGF5TmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhh
bmRsZV90IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogQ2hhbmdlcyB0aGUgR2FtZXBhZCBmb2N1cyBmcm9tIG9uZSBvdmVybGF5IHRvIG9u
ZSBvZiBpdHMgbmVpZ2hib3JzLiBSZXR1cm5zIFZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgaWYg
dGhlcmUgaXMgbm8KLSAgICAgICAgICAgICAgKiBuZWlnaGJvciBpbiB0aGF0IGRpcmVjdGlvbiAq
LwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBNb3ZlR2FtZXBhZEZvY3Vz
VG9OZWlnaGJvciggRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxl
X3QgdWxGcm9tICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBPdmVybGF5IHRleHR1
cmUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogVGV4dHVyZSB0byBkcmF3IGZv
ciB0aGUgb3ZlcmxheS4gVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92
ZXJsYXkncyBjcmVhdG9yIG9yIHJlbmRlcmVyIHByb2Nlc3MgKHNlZSBTZXRPdmVybGF5UmVuZGVy
aW5nUGlkKSAuCi0gICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBPcGVuR0wgZGlydHkg
c3RhdGU6Ci0gICAgICAgICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQotICAgICAgICAgICAg
ICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4
dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBUZXh0dXJlX3Qg
KnBUZXh0dXJlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBVc2UgdGhpcyB0byB0ZWxsIHRo
ZSBvdmVybGF5IHN5c3RlbSB0byByZWxlYXNlIHRoZSB0ZXh0dXJlIHNldCBmb3IgdGhpcyBvdmVy
bGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDbGVhck92ZXJs
YXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7Ci0KLSAg
ICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvdmlkaW5nIHRoZSBkYXRh
IGFzIGEgc3RyZWFtIG9mIGJ5dGVzLCBidXQgdGhlcmUgaXMgYW4gdXBwZXIgYm91bmQgb24gZGF0
YSAKLSAgICAgICAgICAgICAgKiB0aGF0IGNhbiBiZSBzZW50LiBUaGlzIGZ1bmN0aW9uIGNhbiBv
bmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3MuICovCi0gICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSYXcoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lk
dGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50MzJfdCB1bkRlcHRoICkgPSAwOwotCi0gICAgICAg
ICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGluZyB0aGUgaW1hZ2UgdGhy
b3VnaCBhIGZpbGVuYW1lOiBjYW4gYmUgcG5nIG9yIGpwZywgYW5kIHNob3VsZCBub3QgYmUgYmln
Z2VyIHRoYW4gMTkyMHgxMDgwLgotICAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIG9u
bHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgcmVuZGVyZXIgcHJvY2VzcyAqLwotICAgICAg
ICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5RnJvbUZpbGUoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAqcGNoRmlsZVBhdGggKSA9
IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbmF0aXZlIHRleHR1cmUgaGFuZGxlL2Rl
dmljZSBmb3IgYW4gb3ZlcmxheSB5b3UgaGF2ZSBjcmVhdGVkLgotICAgICAgICAgICAgICAqIE9u
IHdpbmRvd3MgdGhpcyBoYW5kbGUgd2lsbCBiZSBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyB3
aXRoIGEgSUQzRDExVGV4dHVyZTJEIGJvdW5kLgotICAgICAgICAgICAgICAqCi0gICAgICAgICAg
ICAgICogVGhlIHRleHR1cmUgd2lsbCBhbHdheXMgYmUgc2l6ZWQgdG8gbWF0Y2ggdGhlIGJhY2tp
bmcgdGV4dHVyZSB5b3Ugc3VwcGxpZWQgaW4gU2V0T3ZlcmxheVRleHR1cmUgYWJvdmUuCi0gICAg
ICAgICAgICAgICoKLSAgICAgICAgICAgICAgKiBZb3UgTVVTVCBjYWxsIFJlbGVhc2VOYXRpdmVP
dmVybGF5SGFuZGxlKCkgd2l0aCBwTmF0aXZlVGV4dHVyZUhhbmRsZSBvbmNlIHlvdSBhcmUgZG9u
ZSB3aXRoIHRoaXMgdGV4dHVyZS4KLSAgICAgICAgICAgICAgKgotICAgICAgICAgICAgICAqIHBO
YXRpdmVUZXh0dXJlSGFuZGxlIGlzIGFuIE9VVFBVVCwgaXQgd2lsbCBiZSBhIHBvaW50ZXIgdG8g
YSBJRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKi4KLSAgICAgICAgICAgICAgKiBwTmF0aXZlVGV4
dHVyZVJlZiBpcyBhbiBJTlBVVCBhbmQgc2hvdWxkIGJlIGEgSUQzRDExUmVzb3VyY2UgKi4gVGhl
IGRldmljZSB1c2VkIGJ5IHBOYXRpdmVUZXh0dXJlUmVmIHdpbGwgYmUgdXNlZCB0byBiaW5kIHBO
YXRpdmVUZXh0dXJlSGFuZGxlLgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB2b2lkICoqcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKnBOYXRp
dmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCwgdWludDMy
X3QgKnBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAqcEFQSVR5cGUsIEVDb2xvclNwYWNlICpw
Q29sb3JTcGFjZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRzICkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBSZWxlYXNlIHRoZSBwTmF0aXZlVGV4dHVyZUhhbmRsZSBwcm92aWRl
ZCBmcm9tIHRoZSBHZXRPdmVybGF5VGV4dHVyZSBjYWxsLCB0aGlzIGFsbG93cyB0aGUgc3lzdGVt
IHRvIGZyZWUgdGhlIHVuZGVybHlpbmcgR1BVIHJlc291cmNlcyBmb3IgdGhpcyBvYmplY3QsCi0g
ICAgICAgICAgICAgICogc28gb25seSBkbyBpdCBvbmNlIHlvdSBzdG9wIHJlbmRlcmluZyB0aGlz
IHRleHR1cmUuCi0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnBOYXRpdmVUZXh0dXJlSGFuZGxlICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBHZXQgdGhlIHNpemUgb2YgdGhlIG92ZXJsYXkgdGV4dHVyZSAqLwotICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZVNpemUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBXaWR0aCwgdWlu
dDMyX3QgKnBIZWlnaHQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAvLyBEYXNoYm9h
cmQgT3ZlcmxheSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogQ3JlYXRlcyBh
IGRhc2hib2FyZCBvdmVybGF5IGFuZCByZXR1cm5zIGl0cyBoYW5kbGUgKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSggY29uc3Qg
Y2hhciAqcGNoT3ZlcmxheUtleSwgY29uc3QgY2hhciAqcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRsZSwgVlJPdmVybGF5SGFuZGxlX3QgKnBUaHVt
Ym5haWxIYW5kbGUgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIElz
RGFzaGJvYXJkVmlzaWJsZSgpID0gMDsKLQotICAgICAgICAgICAgICAvKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSBhbmQgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlz
IHRoZSBhY3RpdmUgc3lzdGVtIE92ZXJsYXkgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBib29s
IElzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBkYXNoYm9hcmQgb3Zlcmxh
eSB0byBvbmx5IGFwcGVhciB3aGVuIHRoZSBzcGVjaWZpZWQgcHJvY2VzcyBJRCBoYXMgc2NlbmUg
Zm9jdXMgKi8KLSAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0RGFzaGJv
YXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCB1aW50MzJfdCB1blByb2Nlc3NJZCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgcHJvY2VzcyBJRCB0aGF0IHRoaXMgZGFzaGJvYXJkIG92ZXJsYXkgcmVxdWlyZXMgdG8gaGF2
ZSBzY2VuZSBmb2N1cyAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBH
ZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Qcm9jZXNzSWQgKSA9IDA7Ci0KLSAgICAgICAgICAgICAg
LyoqIFNob3dzIHRoZSBkYXNoYm9hcmQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBT
aG93RGFzaGJvYXJkKCBjb25zdCBjaGFyICpwY2hPdmVybGF5VG9TaG93ICkgPSAwOwotCi0gICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFja2VkIGRldmljZSB0aGF0IGhhcyB0aGUgbGFz
ZXIgcG9pbnRlciBpbiB0aGUgZGFzaGJvYXJkICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90IEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKSA9IDA7Ci0K
LSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgICAgICAgICAgIC8vIEtleWJvYXJkIG1ldGhvZHMKLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgdmlydHVhbCBrZXlib2FyZCB0byBh
Y2NlcHQgaW5wdXQgKiovCi0gICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNo
b3dLZXlib2FyZCggRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4
dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNvbnN0IGNoYXIgKnBjaERlc2NyaXB0aW9u
LCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNoYXIgKnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBi
VXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFsdWUgKSA9IDA7Ci0KLSAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0
TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY29uc3QgY2hh
ciAqcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3QgY2hhciAqcGNoRXhp
c3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSApID0g
MDsKLQotICAgICAgICAgICAgICAvKiogR2V0IHRoZSB0ZXh0IHRoYXQgd2FzIGVudGVyZWQgaW50
byB0aGUgdGV4dCBpbnB1dCAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRL
ZXlib2FyZFRleHQoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hUZXh0LCB1aW50MzJfdCBjY2hU
ZXh0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBIaWRlIHRoZSB2aXJ0dWFsIGtleWJvYXJk
ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgSGlkZUtleWJvYXJkKCkgPSAwOwotCi0g
ICAgICAgICAgICAgIC8qKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBrZXlib2FyZCBpbiB3b3Js
ZCBzcGFjZSAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJkVHJhbnNm
b3JtQWJzb2x1dGUoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29u
c3QgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9h
cmQgaW4gb3ZlcmxheSBzcGFjZSBieSB0ZWxsaW5nIGl0IHRvIGF2b2lkIGEgcmVjdGFuZ2xlIGlu
IHRoZSBvdmVybGF5LiBSZWN0YW5nbGUgY29vcmRzIGhhdmUgKDAsMCkgaW4gdGhlIGJvdHRvbSBs
ZWZ0ICoqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0S2V5Ym9hcmRQb3NpdGlvbkZv
ck92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBh
dm9pZFJlY3QgKSA9IDA7Ci0KLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIC8vIE92ZXJsYXkgaW5wdXQg
bWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2V0cyBhIGxpc3Qgb2YgcHJpbWl0
aXZlcyB0byBiZSB1c2VkIGZvciBjb250cm9sbGVyIHJheSBpbnRlcnNlY3Rpb24KLSAgICAgICAg
ICAgICAgKiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxz
IChub3QgaW4gd29ybGQgc3BhY2UpLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKnBNYXNr
UHJpbWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5Qcmlt
aXRpdmVTaXplID0gc2l6ZW9mKCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3Qg
KSApID0gMDsKLQotICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5RmxhZ3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnBG
bGFncyApID0gMDsKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gTWVzc2FnZSBib3ggbWV0aG9k
cwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgICAgICAgICAvKiogU2hvdyB0aGUgbWVzc2FnZSBvdmVybGF5LiBU
aGlzIHdpbGwgYmxvY2sgYW5kIHJldHVybiB5b3UgYSByZXN1bHQuICoqLwotICAgICAgICAgICAg
ICB2aXJ0dWFsIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2FnZU92ZXJsYXkoIGNv
bnN0IGNoYXIqIHBjaFRleHQsIGNvbnN0IGNoYXIqIHBjaENhcHRpb24sIGNvbnN0IGNoYXIqIHBj
aEJ1dHRvbjBUZXh0LCBjb25zdCBjaGFyKiBwY2hCdXR0b24xVGV4dCA9IG51bGxwdHIsIGNvbnN0
IGNoYXIqIHBjaEJ1dHRvbjJUZXh0ID0gbnVsbHB0ciwgY29uc3QgY2hhciogcGNoQnV0dG9uM1Rl
eHQgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBJZiB0aGUgY2FsbGluZyBw
cm9jZXNzIG93bnMgdGhlIG92ZXJsYXkgYW5kIGl0J3Mgb3BlbiwgdGhpcyB3aWxsIGNsb3NlIGl0
LiAqKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIENsb3NlTWVzc2FnZU92ZXJsYXkoKSA9
IDA7Ci0gICAgICAgfTsKLQotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE2IjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXZycmVuZGVybW9kZWxzLmgKLW5hbWVzcGFjZSB2cgotewotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7
ICAgLy8gQ2Fub25pY2FsIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZSBnZGMgMjAxNSB3aXJlZCBj
b250cm9sbGVyLCBwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKLXN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNl
IjsgICAgICAgICAvLyBGb3IgY29udHJvbGxlcnMgd2l0aCBhbiB1bmFtYmlndW91cyAnYmFzZScu
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1Rp
cCA9ICJ0aXAiOyAgICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3Vv
dXMgJ3RpcCcgKHVzZWQgZm9yICdsYXNlci1wb2ludGluZycpCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsg
Ly8gTmV1dHJhbCwgYW1iaWRleHRyb3VzIGhhbmQtcG9zZSB3aGVuIGhvbGRpbmcgY29udHJvbGxl
ci4gT24gcGxhbmUgYmV0d2VlbiBuZXV0cmFsbHkgcG9zZWQgaW5kZXggZmluZ2VyIGFuZCB0aHVt
Ygotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9T
dGF0dXMgPSAic3RhdHVzIjsgICAgICAgICAgICAgIC8vIDE6MSBhc3BlY3QgcmF0aW8gc3RhdHVz
IGFyZWEsIHdpdGggY2Fub25pY2FsIFswLDFdIHV2IG1hcHBpbmcKLQotI3ByYWdtYSBwYWNrKCBw
dXNoLCA4ICkKLQotLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3Np
dG9yICovCi1lbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAxMDAs
Ci0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRlZCA9IDIwMCwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZEFyZyA9IDMwMCwKLSAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob1No
YXBlcyA9IDMwMiwKLSAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMgPSAz
MDMsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9IDMwNCwKLSAg
ICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCi0gICAgICAgVlJSZW5kZXJN
b2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgVlJSZW5kZXJNb2RlbEVy
cm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLQotICAgICAgIFZSUmVuZGVyTW9kZWxFcnJv
cl9JbnZhbGlkVGV4dHVyZSA9IDQwMCwKLX07Ci0KLXR5cGVkZWYgdWludDMyX3QgVlJDb21wb25l
bnRQcm9wZXJ0aWVzOwotCi1lbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAgVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyA9ICgxIDw8IDApLAotICAgICAgIFZSQ29tcG9uZW50
UHJvcGVydHlfSXNWaXNpYmxlID0gKDEgPDwgMSksCi0gICAgICAgVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1RvdWNoZWQgPSAoMSA8PCAyKSwKLSAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCA9ICgxIDw8IDMpLAotICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTY3JvbGxlZCA9
ICgxIDw8IDQpLAotfTsKLQotLyoqIERlc2NyaWJlcyBzdGF0ZSBpbmZvcm1hdGlvbiBhYm91dCBh
IHJlbmRlci1tb2RlbCBjb21wb25lbnQsIGluY2x1ZGluZyB0cmFuc2Zvcm1zIGFuZCBvdGhlciBk
eW5hbWljIHByb3BlcnRpZXMgKi8KLXN0cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90
Ci17Ci0gICAgICAgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVs
OyAgLy8gVHJhbnNmb3JtIHJlcXVpcmVkIHdoZW4gZHJhd2luZyB0aGUgY29tcG9uZW50IHJlbmRl
ciBtb2RlbAotICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsg
ICAgICAgIC8vIFRyYW5zZm9ybSBhdmFpbGFibGUgZm9yIGF0dGFjaGluZyB0byBhIGxvY2FsIGNv
bXBvbmVudCBjb29yZGluYXRlIHN5c3RlbSAoLVogb3V0IGZyb20gc3VyZmFjZSApCi0gICAgICAg
VlJDb21wb25lbnRQcm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfTsKLQotLyoqIEEgc2luZ2xlIHZl
cnRleCBpbiBhIHJlbmRlciBtb2RlbCAqLwotc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Ci17
Ci0gICAgICAgSG1kVmVjdG9yM190IHZQb3NpdGlvbjsgICAgICAgICAgICAgIC8vIHBvc2l0aW9u
IGluIG1ldGVycyBpbiBkZXZpY2Ugc3BhY2UKLSAgICAgICBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsK
LSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsKLX07Ci0KLS8qKiBBIHRleHR1cmUgbWFw
IGZvciB1c2Ugb24gYSByZW5kZXIgbW9kZWwgKi8KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwg
ZGVmaW5lZChfX0FQUExFX18pIAotLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVm
aW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0
eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gsIDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QKLXsKLSAgICAgICB1aW50MTZfdCB1bldpZHRoLCB1bkhlaWdodDsgLy8g
d2lkdGggYW5kIGhlaWdodCBvZiB0aGUgdGV4dHVyZSBtYXAgaW4gcGl4ZWxzCi0gICAgICAgY29u
c3QgdWludDhfdCAqcnViVGV4dHVyZU1hcERhdGE7ICAgICAgIC8vIE1hcCB0ZXh0dXJlIGRhdGEu
IEFsbCB0ZXh0dXJlcyBhcmUgUkdCQSB3aXRoIDggYml0cyBwZXIgY2hhbm5lbCBwZXIgcGl4ZWwu
IERhdGEgc2l6ZSBpcyB3aWR0aCAqIGhlaWdodCAqIDR1YgotfTsKLSNpZiBkZWZpbmVkKF9fbGlu
dXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotI3ByYWdtYSBwYWNrKCBwb3AgKQotI2VuZGlm
Ci0KLS8qKiAgU2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBSZW5kZXJtb2RlbHMg
d2hpY2ggc2hhcmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgaWQuCi1JRHMg
PDAgZGVub3RlIHRoZSB0ZXh0dXJlIGlzIG5vdCBwcmVzZW50ICovCi0KLXR5cGVkZWYgaW50MzJf
dCBUZXh0dXJlSURfdDsKLQotY29uc3QgVGV4dHVyZUlEX3QgSU5WQUxJRF9URVhUVVJFX0lEID0g
LTE7Ci0KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAotLy8g
VGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4
LCBwcmVzZXJ2ZWQgZm9yIAotLy8gY29tcGF0aWJpbGl0eS4gCi0jcHJhZ21hIHBhY2soIHB1c2gs
IDQgKQotI2VuZGlmCi0KLXN0cnVjdCBSZW5kZXJNb2RlbF90Ci17Ci0gICAgICAgY29uc3QgUmVu
ZGVyTW9kZWxfVmVydGV4X3QgKnJWZXJ0ZXhEYXRhOyAgICAgICAvLyBWZXJ0ZXggZGF0YSBmb3Ig
dGhlIG1lc2gKLSAgICAgICB1aW50MzJfdCB1blZlcnRleENvdW50OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBvZiB2ZXJ0aWNlcyBpbiB0aGUgdmVy
dGV4IGRhdGEKLSAgICAgICBjb25zdCB1aW50MTZfdCAqckluZGV4RGF0YTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEluZGljZXMgaW50byB0aGUgdmVydGV4IGRhdGEgZm9y
IGVhY2ggdHJpYW5nbGUKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdHJpYW5nbGVzIGluIHRoZSBt
ZXNoLiBJbmRleCBjb3VudCBpcyAzICogVHJpYW5nbGVDb3VudAotICAgICAgIFRleHR1cmVJRF90
IGRpZmZ1c2VUZXh0dXJlSWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlc3Npb24g
dW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVuZGVybW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBz
YW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1lIGlkLiA8MCA9PSB0ZXh0dXJlIG5vdCBwcmVz
ZW50Ci19OwotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCi0j
cHJhZ21hIHBhY2soIHBvcCApCi0jZW5kaWYKLQotCi1zdHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wgYlNjcm9sbFdoZWVsVmlzaWJsZTsgLy8g
aXMgdGhpcyBjb250cm9sbGVyIGN1cnJlbnRseSBzZXQgdG8gYmUgaW4gYSBzY3JvbGwgd2hlZWwg
bW9kZQotfTsKLQotI3ByYWdtYSBwYWNrKCBwb3AgKQotCi1jbGFzcyBJVlJSZW5kZXJNb2RlbHMK
LXsKLXB1YmxpYzoKLQotICAgICAgIC8qKiBMb2FkcyBhbmQgcmV0dXJucyBhIHJlbmRlciBtb2Rl
bCBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4gcGNoUmVuZGVyTW9kZWxOYW1lIHNob3VsZCBi
ZSBhIHJlbmRlciBtb2RlbCBuYW1lCi0gICAgICAgKiBmcm9tIHRoZSBQcm9wX1JlbmRlck1vZGVs
TmFtZV9TdHJpbmcgcHJvcGVydHkgb3IgYW4gYWJzb2x1dGUgcGF0aCBuYW1lIHRvIGEgcmVuZGVy
IG1vZGVsIG9uIGRpc2suIAotICAgICAgICoKLSAgICAgICAqIFRoZSByZXN1bHRpbmcgcmVuZGVy
IG1vZGVsIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3duKCkgaXMgY2FsbGVkIG9yIHVudGlsIEZy
ZWVSZW5kZXJNb2RlbCgpIGlzIGNhbGxlZC4gV2hlbiB0aGUgCi0gICAgICAgKiBhcHBsaWNhdGlv
biBpcyBmaW5pc2hlZCB3aXRoIHRoZSByZW5kZXIgbW9kZWwgaXQgc2hvdWxkIGNhbGwgRnJlZVJl
bmRlck1vZGVsKCkgdG8gZnJlZSB0aGUgbWVtb3J5IGFzc29jaWF0ZWQKLSAgICAgICAqIHdpdGgg
dGhlIG1vZGVsLgotICAgICAgICoKLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRl
ck1vZGVsRXJyb3JfTG9hZGluZyB3aGlsZSB0aGUgcmVuZGVyIG1vZGVsIGlzIHN0aWxsIGJlaW5n
IGxvYWRlZC4KLSAgICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyBWUlJlbmRlck1vZGVsRXJyb3Jf
Tm9uZSBvbmNlIGxvYWRlZCBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSB3aWxsIHJldHVybiBhbiBl
cnJvci4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJlbmRlck1v
ZGVsX0FzeW5jKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFJlbmRlck1vZGVsX3Qg
KipwcFJlbmRlck1vZGVsICkgPSAwOwotCi0gICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSBy
ZXR1cm5lZCByZW5kZXIgbW9kZWwKLSAgICAgICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMg
b24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVJlbmRlck1vZGVsKCBS
ZW5kZXJNb2RlbF90ICpwUmVuZGVyTW9kZWwgKSA9IDA7Ci0KLSAgICAgICAvKiogTG9hZHMgYW5k
IHJldHVybnMgYSB0ZXh0dXJlIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLiAqLwotICAgICAg
IHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkVGV4dHVyZV9Bc3luYyggVGV4dHVyZUlE
X3QgdGV4dHVyZUlkLCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKipwcFRleHR1cmUgKSA9IDA7
Ci0KLSAgICAgICAvKiogRnJlZXMgYSBwcmV2aW91c2x5IHJldHVybmVkIHRleHR1cmUKLSAgICAg
ICAqICAgSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgb24gYSBudWxsIHB0ci4gKi8KLSAgICAgICB2
aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmUoIFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqcFRleHR1
cmUgKSA9IDA7Ci0KLSAgICAgICAvKiogQ3JlYXRlcyBhIEQzRDExIHRleHR1cmUgYW5kIGxvYWRz
IGRhdGEgaW50byBpdC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFRleHR1cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICpwRDNEMTFE
ZXZpY2UsIHZvaWQgKipwcEQzRDExVGV4dHVyZTJEICkgPSAwOwotCi0gICAgICAgLyoqIEhlbHBl
ciBmdW5jdGlvbiB0byBjb3B5IHRoZSBiaXRzIGludG8gYW4gZXhpc3RpbmcgdGV4dHVyZS4gKi8K
LSAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZEludG9UZXh0dXJlRDNEMTFf
QXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqcERzdFRleHR1cmUgKSA9IDA7Ci0K
LSAgICAgICAvKiogVXNlIHRoaXMgdG8gZnJlZSB0ZXh0dXJlcyBjcmVhdGVkIHdpdGggTG9hZFRl
eHR1cmVEM0QxMV9Bc3luYyBpbnN0ZWFkIG9mIGNhbGxpbmcgUmVsZWFzZSBvbiB0aGVtLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZUQzRDExKCB2b2lkICpwRDNEMTFUZXh0dXJl
MkQgKSA9IDA7Ci0KLSAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFp
bGFibGUgcmVuZGVyIG1vZGVscy4gIEluZGV4IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNr
ZWQgZGV2aWNlIGluZGV4LCBidXQKLSAgICAgICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5n
IG92ZXIgYWxsIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBv
ZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgotICAgICAgICogT3RoZXJ3aXNl
LCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUg
bmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsTmFtZSggdWlu
dDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoUmVuZGVy
TW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxlbiApID0gMDsKLQotICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICovCi0g
ICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbENvdW50KCkgPSAwOwotCi0KLSAg
ICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgb2YgdGhlIHNwZWNpZmll
ZCByZW5kZXIgbW9kZWwuCi0gICAgICAgKiAgQ29tcG9uZW50cyBhcmUgdXNlZnVsIHdoZW4gY2xp
ZW50IGFwcGxpY2F0aW9uIHdpc2ggdG8gZHJhdywgbGFiZWwsIG9yIG90aGVyd2lzZSBpbnRlcmFj
dCB3aXRoIGNvbXBvbmVudHMgb2YgdHJhY2tlZCBvYmplY3RzLgotICAgICAgICogIEV4YW1wbGVz
IGNvbnRyb2xsZXIgY29tcG9uZW50czoKLSAgICAgICAqICAgcmVuZGVyYWJsZSB0aGluZ3Mgc3Vj
aCBhcyB0cmlnZ2VycywgYnV0dG9ucwotICAgICAgICogICBub24tcmVuZGVyYWJsZSB0aGluZ3Mg
d2hpY2ggaW5jbHVkZSBjb29yZGluYXRlIHN5c3RlbXMgc3VjaCBhcyAndGlwJywgJ2Jhc2UnLCBh
IG5ldXRyYWwgY29udHJvbGxlciBhZ25vc3RpYyBoYW5kLXBvc2UKLSAgICAgICAqICAgSWYgYWxs
IGNvbnRyb2xsZXIgY29tcG9uZW50cyBhcmUgZW51bWVyYXRlZCBhbmQgcmVuZGVyZWQsIGl0IHdp
bGwgYmUgZXF1aXZhbGVudCB0byBkcmF3aW5nIHRoZSB0cmFkaXRpb25hbCByZW5kZXIgbW9kZWwK
LSAgICAgICAqICAgUmV0dXJucyAwIGlmIGNvbXBvbmVudHMgbm90IHN1cHBvcnRlZCwgPjAgb3Ro
ZXJ3aXNlICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDb21wb25lbnRDb3VudCggY29u
c3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lICkgPSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlz
IHRvIGdldCB0aGUgbmFtZXMgb2YgYXZhaWxhYmxlIGNvbXBvbmVudHMuICBJbmRleCBkb2VzIG5v
dCBjb3JyZWxhdGUgdG8gYSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0Ci0gICAgICAgKiBpcyBv
bmx5IHVzZWQgZm9yIGl0ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgY29tcG9uZW50cy4gIElm
IHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4K
LSAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCi0gICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRD
b21wb25lbnROYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50SW5kZXgsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwg
dWludDMyX3QgdW5Db21wb25lbnROYW1lTGVuICkgPSAwOwotCi0gICAgICAgLyoqIEdldCB0aGUg
YnV0dG9uIG1hc2sgZm9yIGFsbCBidXR0b25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVu
dAotICAgICAgICogICBJZiBubyBidXR0b25zIChvciBheGVzKSBhcmUgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgY29tcG9uZW50LCByZXR1cm4gMAotICAgICAgICogICBOb3RlOiBtdWx0aXBsZSBjb21w
b25lbnRzIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgYnV0dG9uLiBFeDogdHdvIGdy
aXAgYnV0dG9ucyBvbiBhIHNpbmdsZSBjb250cm9sbGVyLgotICAgICAgICogICBOb3RlOiBBIHNp
bmdsZSBjb21wb25lbnQgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBidXR0b25zLiBF
eDogQSB0cmFja3BhZCB3aGljaCBhbHNvIHByb3ZpZGVzICJELXBhZCIgZnVuY3Rpb25hbGl0eSAq
LwotICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0Q29tcG9uZW50QnV0dG9uTWFzayggY29uc3Qg
Y2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkg
PSAwOwotCi0gICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgcmVuZGVyIG1vZGVsIG5hbWUg
Zm9yIHRoZSBzcGVjaWZpZWQgcmVuZGVybW9kZS9jb21wb25lbnQgY29tYmluYXRpb24sIHRvIGJl
IHBhc3NlZCB0byBMb2FkUmVuZGVyTW9kZWwuCi0gICAgICAgKiBJZiB0aGUgY29tcG9uZW50IG5h
bWUgaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCi0gICAgICAg
KiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWly
ZWQgZm9yIHRoZSBuYW1lLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNo
YXIgKnBjaENvbXBvbmVudE5hbWUsIFZSX09VVF9TVFJJTkcoICkgY2hhciAqcGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbiAp
ID0gMDsKLQotICAgICAgIC8qKiBVc2UgdGhpcyB0byBxdWVyeSBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgY29tcG9uZW50LCBhcyBhIGZ1bmN0aW9uIG9mIHRoZSBjb250cm9sbGVyIHN0YXRlLgotICAg
ICAgICoKLSAgICAgICAqIEZvciBkeW5hbWljIGNvbnRyb2xsZXIgY29tcG9uZW50cyAoZXg6IHRy
aWdnZXIpIHZhbHVlcyB3aWxsIHJlZmxlY3QgY29tcG9uZW50IG1vdGlvbnMKLSAgICAgICAqIEZv
ciBzdGF0aWMgY29tcG9uZW50cyB0aGlzIHdpbGwgcmV0dXJuIGEgY29uc2lzdGVudCB2YWx1ZSBp
bmRlcGVuZGVudCBvZiB0aGUgVlJDb250cm9sbGVyU3RhdGVfdAotICAgICAgICoKLSAgICAgICAq
IElmIHRoZSBwY2hSZW5kZXJNb2RlbE5hbWUgb3IgcGNoQ29tcG9uZW50TmFtZSBpcyBpbnZhbGlk
LCB0aGlzIHdpbGwgcmV0dXJuIGZhbHNlIChhbmQgdHJhbnNmb3JtcyB3aWxsIGJlIHNldCB0byBp
ZGVudGl0eSkuCi0gICAgICAgKiBPdGhlcndpc2UsIHJldHVybiB0cnVlCi0gICAgICAgKiBOb3Rl
OiBGb3IgZHluYW1pYyBvYmplY3RzLCB2aXNpYmlsaXR5IG1heSBiZSBkeW5hbWljLiAoSS5lLiwg
dHJ1ZS9mYWxzZSB3aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIGNvbnRyb2xsZXIgc3RhdGUgYW5k
IGNvbnRyb2xsZXIgbW9kZSBzdGF0ZSApICovCi0gICAgICAgdmlydHVhbCBib29sIEdldENvbXBv
bmVudFN0YXRlKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBj
aENvbXBvbmVudE5hbWUsIGNvbnN0IHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxl
clN0YXRlLCBjb25zdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICpwU3RhdGUs
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKnBDb21wb25lbnRTdGF0ZSApID0gMDsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlbmRlciBtb2RlbCBoYXMgYSBjb21wb25l
bnQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgKi8KLSAgICAgICB2aXJ0dWFsIGJvb2wgUmVuZGVy
TW9kZWxIYXNDb21wb25lbnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3Qg
Y2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRoZSBV
Ukwgb2YgdGhlIHRodW1ibmFpbCBpbWFnZSBmb3IgdGhpcyByZW5kZXJtb2RlbCAqLwotICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwoIGNvbnN0IGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFRodW1ibmFpbFVS
TCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICpw
ZUVycm9yICkgPSAwOwotCi0gICAgICAgLyoqIFByb3ZpZGVzIGEgcmVuZGVyIG1vZGVsIHBhdGgg
dGhhdCB3aWxsIGxvYWQgdGhlIHVuc2tpbm5lZCBtb2RlbCBpZiB0aGUgbW9kZWwgbmFtZSBwcm92
aWRlZCBoYXMgYmVlbiByZXBsYWNlIGJ5IHRoZSB1c2VyLiBJZiB0aGUgbW9kZWwKLSAgICAgICAq
IGhhc24ndCBiZWVuIHJlcGxhY2VkIHRoZSBwYXRoIHZhbHVlIHdpbGwgc3RpbGwgYmUgYSB2YWxp
ZCBwYXRoIHRvIGxvYWQgdGhlIG1vZGVsLiBQYXNzIHRoaXMgdG8gTG9hZFJlbmRlck1vZGVsX0Fz
eW5jLCBldGMuIHRvIGxvYWQgdGhlCi0gICAgICAgKiBtb2RlbC4gKi8KLSAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKCBjb25zdCBjaGFyICpwY2hSZW5k
ZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hPcmlnaW5hbFBhdGgsIHVpbnQz
Ml90IHVuT3JpZ2luYWxQYXRoTGVuLCB2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciAqcGVFcnJvciAp
ID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhIHJlbmRlciBtb2RlbCBl
cnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UmVuZGVyTW9kZWxFcnJvck5h
bWVGcm9tRW51bSggdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IgKSA9IDA7Ci19OwotCi1z
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklWUlJl
bmRlck1vZGVsc18wMDUiOwotCi19Ci0KLQotLy8gaXZyZXh0ZW5kZWRkaXNwbGF5LmgKLW5hbWVz
cGFjZSB2cgotewotCi0gICAgICAgLyoqIE5PVEU6IFVzZSBvZiB0aGlzIGludGVyZmFjZSBpcyBu
b3QgcmVjb21tZW5kZWQgaW4gcHJvZHVjdGlvbiBhcHBsaWNhdGlvbnMuIEl0IHdpbGwgbm90IHdv
cmsgZm9yIGRpc3BsYXlzIHdoaWNoIHVzZQotICAgICAgICogZGlyZWN0LXRvLWRpc3BsYXkgbW9k
ZS4gQ3JlYXRpbmcgb3VyIG93biB3aW5kb3cgaXMgYWxzbyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
VlIgY29tcG9zaXRvciBhbmQgaXMgbm90IGF2YWlsYWJsZSB3aGVuIHRoZSBjb21wb3NpdG9yIGlz
IHJ1bm5pbmcuICovCi0gICAgICAgY2xhc3MgSVZSRXh0ZW5kZWREaXNwbGF5Ci0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRpb24gdGhh
dCB0aGUgd2luZG93IG5lZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLwotICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGludDMyX3Qg
KnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKLQotICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBk
cmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50byAqLwotICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAq
cG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0
ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBbRDNEMTAvMTEgT25seV0KLSAgICAgICAgICAg
ICAgKiBSZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IGFuZCBvdXRwdXQgaW5kZXggdGhhdCB0aGUg
dXNlciBzaG91bGQgcGFzcyBpbnRvIEVudW1BZGFwdGVycyBhbmQgRW51bU91dHB1dHMKLSAgICAg
ICAgICAgICAgKiB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbiBpbiBEWDEwIGFu
ZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgYm90aCBpbmRpY2VzIHdpbGwgYmUgc2V0IHRvIC0x
LgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RFhHSU91
dHB1dEluZm8oIGludDMyX3QgKnBuQWRhcHRlckluZGV4LCBpbnQzMl90ICpwbkFkYXB0ZXJPdXRw
dXRJbmRleCApID0gMDsKLQotICAgICAgIH07Ci0KLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8w
MDEiOwotCi19Ci0KLQotLy8gaXZydHJhY2tlZGNhbWVyYS5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVZSVHJhY2tlZENhbWVyYQotewotcHVibGljOgotICAgICAgIC8qKiBSZXR1cm5zIGEg
c3RyaW5nIGZvciBhbiBlcnJvciAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0Q2Ft
ZXJhRXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVy
cm9yICkgPSAwOwotCi0gICAgICAgLyoqIEZvciBjb252ZW5pZW5jZSwgc2FtZSBhcyB0cmFja2Vk
IHByb3BlcnR5IHJlcXVlc3QgUHJvcF9IYXNDYW1lcmFfQm9vbCAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBIYXNDYW1lcmEoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKnBIYXNDYW1lcmEgKSA9IDA7Ci0KLSAgICAgICAvKiog
R2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhRnJhbWVTaXplKCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0LCB1aW50MzJfdCAqcG5G
cmFtZUJ1ZmZlclNpemUgKSA9IDA7Ci0KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdnI6
OkhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3RoLCB2cjo6SG1kVmVjdG9yMl90ICpwQ2VudGVyICkg
PSAwOwotCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVy
YVByb2plY3Rpb24oIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIsIGZsb2F0
IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9qZWN0aW9uICkgPSAwOwotCi0gICAgICAg
LyoqIEFjcXVpcmluZyBzdHJlYW1pbmcgc2VydmljZSBwZXJtaXRzIHZpZGVvIHN0cmVhbWluZyBm
b3IgdGhlIGNhbGxlci4gUmVsZWFzaW5nIGhpbnRzIHRoZSBzeXN0ZW0gdGhhdCB2aWRlbyBzZXJ2
aWNlcyBkbyBub3QgbmVlZCB0byBiZSBtYWludGFpbmVkIGZvciB0aGlzIGNsaWVudC4KLSAgICAg
ICAqIElmIHRoZSBjYW1lcmEgaGFzIG5vdCBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLCBhIG9uZSB0
aW1lIHNwaW4gdXAgbWF5IGluY3VyIHNvbWUgYXV0byBleHBvc3VyZSBhcyB3ZWxsIGFzIGluaXRp
YWwgc3RyZWFtaW5nIGZyYW1lIGRlbGF5cy4KLSAgICAgICAqIFRoZSBjYW1lcmEgc2hvdWxkIGJl
IGNvbnNpZGVyZWQgYSBnbG9iYWwgcmVzb3VyY2UgYWNjZXNzaWJsZSBmb3Igc2hhcmVkIGNvbnN1
bXB0aW9uIGJ1dCBub3QgZXhjbHVzaXZlIHRvIGFueSBjYWxsZXIuCi0gICAgICAgKiBUaGUgY2Ft
ZXJhIG1heSBnbyBpbmFjdGl2ZSBkdWUgdG8gbGFjayBvZiBhY3RpdmUgY29uc3VtZXJzIG9yIGhl
YWRzZXQgaWRsZW5lc3MuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIEFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKnBIYW5kbGUgKSA9IDA7
Ci0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0
cmVhbWluZ1NlcnZpY2UoIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEg
KSA9IDA7Ci0KLSAgICAgICAvKiogQ29waWVzIHRoZSBpbWFnZSBmcmFtZSBpbnRvIGEgY2FsbGVy
J3MgcHJvdmlkZWQgYnVmZmVyLiBUaGUgaW1hZ2UgZGF0YSBpcyBjdXJyZW50bHkgcHJvdmlkZWQg
YXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4KLSAgICAgICAqIEEgY2FsbGVyIGNhbiBw
cm92aWRlIG51bGwgZm9yIHRoZSBmcmFtZWJ1ZmZlciBvciBmcmFtZWhlYWRlciBpZiBub3QgZGVz
aXJlZC4gUmVxdWVzdGluZyB0aGUgZnJhbWUgaGVhZGVyIGZpcnN0LCBmb2xsb3dlZCBieSB0aGUg
ZnJhbWUgYnVmZmVyIGFsbG93cwotICAgICAgICogdGhlIGNhbGxlciB0byBkZXRlcm1pbmUgaWYg
dGhlIGZyYW1lIGFzIGFkdmFuY2VkIHBlciB0aGUgZnJhbWUgaGVhZGVyIHNlcXVlbmNlLiAKLSAg
ICAgICAqIElmIHRoZXJlIGlzIG5vIGZyYW1lIGF2YWlsYWJsZSB5ZXQsIGR1ZSB0byBpbml0aWFs
IGNhbWVyYSBzcGludXAgb3IgcmUtYWN0aXZhdGlvbiwgdGhlIGVycm9yIHdpbGwgYmUgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZS4KLSAgICAgICAqIElkZWFsbHkgYSBjYWxs
ZXIgc2hvdWxkIGJlIHBvbGxpbmcgYXQgfjE2bXMgaW50ZXJ2YWxzICovCi0gICAgICAgdmlydHVh
bCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIoIHZy
OjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBGcmFtZUJ1ZmZlciwgdWludDMyX3QgbkZy
YW1lQnVmZmVyU2l6ZSwgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1l
SGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0gICAgICAgLyoqIEdl
dHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqcFRleHR1cmVCb3VuZHMsIHVpbnQzMl90
ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7IAotCi0gICAgICAgLyoqIEFjY2Vz
cyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRyYWNrZWQgY2FtZXJh
IHN0cmVhbS4KLSAgICAgICAqIFRoZSBjYW1lcmEgZnJhbWUgdHlwZSBWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVW5kaXN0b3J0ZWQgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseSBhcyBhIHNoYXJl
ZCB0ZXh0dXJlLiBJdCBpcyBhbiBpbnRlcmlvciBzdWJyZWdpb24gb2YgdGhlIHNoYXJlZCB0ZXh0
dXJlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQuCi0gICAgICAg
KiBJbnN0ZWFkLCB1c2UgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSgpIHdpdGggVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIHRvIGRldGVybWluZSB0aGUgcHJvcGVyIGludGVy
aW9yIHN1YnJlZ2lvbiBib3VuZHMgYWxvbmcgd2l0aCBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSgpIHdpdGgKLSAgICAgICAqIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0
b3J0ZWQgdG8gcHJvdmlkZSB0aGUgdGV4dHVyZS4gVGhlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZV9NYXhpbXVtVW5kaXN0b3J0ZWQgd2lsbCB5aWVsZCBhbiBpbWFnZSB3aGVyZSB0aGUgaW52YWxp
ZCByZWdpb25zIGFyZSBkZWNvZGVkCi0gICAgICAgKiBieSB0aGUgYWxwaGEgY2hhbm5lbCBoYXZp
bmcgYSB6ZXJvIGNvbXBvbmVudC4gVGhlIHZhbGlkIHJlZ2lvbnMgYWxsIGhhdmUgYSBub24temVy
byBhbHBoYSBjb21wb25lbnQuIFRoZSBzdWJyZWdpb24gYXMgZGVzY3JpYmVkIGJ5IFZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCAKLSAgICAgICAqIGd1YXJhbnRlZXMgYSByZWN0
YW5nbGUgd2hlcmUgYWxsIHBpeGVscyBhcmUgdmFsaWQuICovCi0gICAgICAgdmlydHVhbCB2cjo6
RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKCB2cjo6VHJh
Y2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRDNEMTFEZXZpY2VPclJlc291cmNlLCB2b2lkICoq
cHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFk
ZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLyoqIEFjY2VzcyBhIHNoYXJlZCBHTCB0ZXh0dXJlIGZvciB0aGUgc3BlY2lmaWVkIHRy
YWNrZWQgY2FtZXJhIHN0cmVhbSAqLwotICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1l
cmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSwgdnI6OmdsVUludF90ICpwZ2xUZXh0dXJlSWQsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsK
LSAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3Ry
ZWFtVGV4dHVyZUdMKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2
cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gaXZyc2NyZWVuc2hvdHMuaAotbmFtZXNwYWNl
IHZyCi17Ci0KLS8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRv
ciAqLwotZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBWUlNjcmVlbnNob3RFcnJv
cl9Ob25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfSW5jb21w
YXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSU2NyZWVu
c2hvdEVycm9yX05vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDEsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDIsCi0gICAgICAgVlJTY3JlZW5zaG90RXJyb3JfU2Ny
ZWVuc2hvdEFscmVhZHlJblByb2dyZXNzICAgICAgID0gMTA4LAotfTsKLQotLyoqIEFsbG93cyB0
aGUgYXBwbGljYXRpb24gdG8gZ2VuZXJhdGUgc2NyZWVuc2hvdHMgKi8KLWNsYXNzIElWUlNjcmVl
bnNob3RzCi17Ci1wdWJsaWM6Ci0gICAgICAgLyoqIFJlcXVlc3QgYSBzY3JlZW5zaG90IG9mIHRo
ZSByZXF1ZXN0ZWQgdHlwZS4KLSAgICAgICAgKiAgQSByZXF1ZXN0IG9mIHRoZSBWUlNjcmVlbnNo
b3RUeXBlX1N0ZXJlbyB0eXBlIHdpbGwgYWx3YXlzCi0gICAgICAgICogIHdvcmsuIE90aGVyIHR5
cGVzIHdpbGwgZGVwZW5kIG9uIHRoZSB1bmRlcmx5aW5nIGFwcGxpY2F0aW9uCi0gICAgICAgICog
IHN1cHBvcnQuCi0gICAgICAgICogIFRoZSBmaXJzdCBmaWxlIG5hbWUgaXMgZm9yIHRoZSBwcmV2
aWV3IGltYWdlIGFuZCBzaG91bGQgYmUgYQotICAgICAgICAqICByZWd1bGFyIHNjcmVlbnNob3Qg
KGlkZWFsbHkgZnJvbSB0aGUgbGVmdCBleWUpLiBUaGUgc2Vjb25kCi0gICAgICAgICogIGlzIHRo
ZSBWUiBzY3JlZW5zaG90IGluIHRoZSBjb3JyZWN0IGZvcm1hdC4gVGhleSBzaG91bGQgYmUKLSAg
ICAgICAgKiAgaW4gdGhlIHNhbWUgYXNwZWN0IHJhdGlvLiAgRm9ybWF0cyBwZXIgdHlwZToKLSAg
ICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9Nb25vOiB0aGUgVlIgZmlsZW5hbWUgaXMgaWdub3Jl
ZCAoY2FuIGJlCi0gICAgICAgICogIG51bGxwdHIpLCB0aGlzIGlzIGEgbm9ybWFsIGZsYXQgc2lu
Z2xlIHNob3QuCi0gICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvOiAgVGhlIFZSIGlt
YWdlIHNob3VsZCBiZSBhCi0gICAgICAgICogIHNpZGUtYnktc2lkZSB3aXRoIHRoZSBsZWZ0IGV5
ZSBpbWFnZSBvbiB0aGUgbGVmdC4KLSAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFw
OiBUaGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIHNpeCBzcXVhcmUKLSAgICAgICAgKiAgaW1hZ2VzIGNv
bXBvc2l0ZWQgaG9yaXpvbnRhbGx5LgotICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJl
b1Bhbm9yYW1hOiBhYm92ZS9iZWxvdyB3aXRoIGxlZnQgZXllCi0gICAgICAgICogIHBhbm9yYW1h
IGJlaW5nIHRoZSBhYm92ZSBpbWFnZS4gIEltYWdlIGlzIHR5cGljYWxseSBzcXVhcmUKLSAgICAg
ICAgKiAgd2l0aCB0aGUgcGFub3JhbWEgYmVpbmcgMnggaG9yaXpvbnRhbC4KLSAgICAgICAgKiAg
Ci0gICAgICAgICogIE5vdGUgdGhhdCB0aGUgVlIgZGFzaGJvYXJkIHdpbGwgY2FsbCB0aGlzIGZ1
bmN0aW9uIHdoZW4KLSAgICAgICAgKiAgdGhlIHVzZXIgcHJlc3NlcyB0aGUgc2NyZWVuc2hvdCBi
aW5kaW5nIChjdXJyZW50bHkgU3lzdGVtCi0gICAgICAgICogIEJ1dHRvbiArIFRyaWdnZXIpLiAg
SWYgU3RlYW0gaXMgcnVubmluZywgdGhlIGRlc3RpbmF0aW9uCi0gICAgICAgICogIGZpbGUgbmFt
ZXMgd2lsbCBiZSBpbiAlVEVNUCUgYW5kIHdpbGwgYmUgY29waWVkIGludG8KLSAgICAgICAgKiAg
U3RlYW0ncyBzY3JlZW5zaG90IGxpYnJhcnkgZm9yIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uCi0g
ICAgICAgICogIG9uY2UgU3VibWl0U2NyZWVuc2hvdCgpIGlzIGNhbGxlZC4KLSAgICAgICAgKiAg
SWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRoZSBwYXRocyB3aWxsIGJlIGluIHRoZSB1c2VyJ3MK
LSAgICAgICAgKiAgZG9jdW1lbnRzIGZvbGRlciB1bmRlciBEb2N1bWVudHNcU3RlYW1WUlxTY3Jl
ZW5zaG90cy4KLSAgICAgICAgKiAgT3RoZXIgVlIgYXBwbGljYXRpb25zIGNhbiBjYWxsIHRoaXMg
dG8gaW5pdGlhdGUgYQotICAgICAgICAqICBzY3JlZW5zaG90IG91dHNpZGUgb2YgdXNlciBjb250
cm9sLgotICAgICAgICAqICBUaGUgZGVzdGluYXRpb24gZmlsZSBuYW1lcyBkbyBub3QgbmVlZCBh
biBleHRlbnNpb24sCi0gICAgICAgICogIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgY29ycmVj
dCBvbmUgZm9yIHRoZSBmb3JtYXQKLSAgICAgICAgKiAgd2hpY2ggaXMgY3VycmVudGx5IC5wbmcu
ICovCi0gICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFJlcXVlc3RTY3JlZW5z
aG90KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVW
UlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFByZXZpZXdGaWxlbmFtZSwgY29u
c3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsKLQotICAgICAgIC8qKiBDYWxsZWQgYnkgdGhl
IHJ1bm5pbmcgVlIgYXBwbGljYXRpb24gdG8gaW5kaWNhdGUgdGhhdCBpdAotICAgICAgICAqICB3
aXNoZXMgdG8gYmUgaW4gY2hhcmdlIG9mIHNjcmVlbnNob3RzLiAgSWYgdGhlCi0gICAgICAgICog
IGFwcGxpY2F0aW9uIGRvZXMgbm90IGNhbGwgdGhpcywgdGhlIENvbXBvc2l0b3Igd2lsbCBvbmx5
Ci0gICAgICAgICogIHN1cHBvcnQgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gc2NyZWVuc2hvdHMg
dGhhdCB3aWxsIGJlCi0gICAgICAgICogIGNhcHR1cmVkIHdpdGhvdXQgbm90aWZpY2F0aW9uIHRv
IHRoZSBydW5uaW5nIGFwcC4KLSAgICAgICAgKiAgT25jZSBob29rZWQgeW91ciBhcHBsaWNhdGlv
biB3aWxsIHJlY2VpdmUgYQotICAgICAgICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2
ZW50IHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUKLSAgICAgICAgKiAgYnV0dG9ucyB0byB0YWtl
IGEgc2NyZWVuc2hvdC4gKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3Ig
SG9va1NjcmVlbnNob3QoIFZSX0FSUkFZX0NPVU5UKCBudW1UeXBlcyApIGNvbnN0IHZyOjpFVlJT
Y3JlZW5zaG90VHlwZSAqcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMgKSA9IDA7Ci0KLSAg
ICAgICAvKiogV2hlbiB5b3VyIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGEKLSAgICAgICAgKiAgVlJF
dmVudF9SZXF1ZXN0U2NyZWVuc2hvdCBldmVudCwgY2FsbCB0aGVzZSBmdW5jdGlvbnMgdG8gZ2V0
Ci0gICAgICAgICogIHRoZSBkZXRhaWxzIG9mIHRoZSBzY3JlZW5zaG90IHJlcXVlc3QuICovCi0g
ICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZSU2Ny
ZWVuc2hvdEVycm9yICpwRXJyb3IgKSA9IDA7Ci0KLSAgICAgICAvKiogR2V0IHRoZSBmaWxlbmFt
ZSBmb3IgdGhlIHByZXZpZXcgb3IgdnIgaW1hZ2UgKHNlZQotICAgICAgICAqICB2cjo6RVNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lcykuICBUaGUgcmV0dXJuIHZhbHVlIGlzCi0gICAgICAgICog
IHRoZSBzaXplIG9mIHRoZSBzdHJpbmcuICAgKi8KLSAgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3Jl
ZW5zaG90SGFuZGxlLCB2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1l
VHlwZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxl
bmFtZSwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOwotCi0gICAgICAgLyoq
IENhbGwgdGhpcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgdGFraW5nIHRoZSBzY3JlZW4gc2hvdAot
ICAgICAgICAqICB3aWxsIHRha2UgbW9yZSB0aGFuIGEgZmV3IG1zIHByb2Nlc3NpbmcuIFRoaXMg
d2lsbCByZXN1bHQKLSAgICAgICAgKiAgaW4gYW4gb3ZlcmxheSBiZWluZyBwcmVzZW50ZWQgdGhh
dCBzaG93cyBhIGNvbXBsZXRpb24KLSAgICAgICAgKiAgYmFyLiAqLwotICAgICAgIHZpcnR1YWwg
dnI6OkVWUlNjcmVlbnNob3RFcnJvciBVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MoIHZyOjpTY3Jl
ZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyApID0gMDsK
LQotICAgICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciB0byB0YWtlIGFuIGludGVybmFsIHNj
cmVlbnNob3Qgb2YKLSAgICAgICAgKiAgdHlwZSBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlby4gSXQg
d2lsbCB0YWtlIHRoZSBjdXJyZW50Ci0gICAgICAgICogIHN1Ym1pdHRlZCBzY2VuZSB0ZXh0dXJl
cyBvZiB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBhbmQKLSAgICAgICAgKiAgd3JpdGUgdGhlbSBp
bnRvIHRoZSBwcmV2aWV3IGltYWdlIGFuZCBhIHNpZGUtYnktc2lkZSBmaWxlCi0gICAgICAgICog
IGZvciB0aGUgVlIgaW1hZ2UuCi0gICAgICAgICogIFRoaXMgaXMgc2ltaWxhciB0byByZXF1ZXN0
IHNjcmVlbnNob3QsIGJ1dCBkb2Vzbid0IGV2ZXIKLSAgICAgICAgKiAgdGFsayB0byB0aGUgYXBw
bGljYXRpb24sIGp1c3QgdGFrZXMgdGhlIHNob3QgYW5kIHN1Ym1pdHMuICovCi0gICAgICAgdmly
dHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFRha2VTdGVyZW9TY3JlZW5zaG90KCB2cjo6U2Ny
ZWVuc2hvdEhhbmRsZV90ICpwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY29uc3QgY2hhciAqcGNoUHJl
dmlld0ZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAwOwotCi0gICAgICAg
LyoqIFN1Ym1pdCB0aGUgY29tcGxldGVkIHNjcmVlbnNob3QuICBJZiBTdGVhbSBpcyBydW5uaW5n
Ci0gICAgICAgICogIHRoaXMgd2lsbCBjYWxsIGludG8gdGhlIFN0ZWFtIGNsaWVudCBhbmQgdXBs
b2FkIHRoZQotICAgICAgICAqICBzY3JlZW5zaG90IHRvIHRoZSBzY3JlZW5zaG90cyBzZWN0aW9u
IG9mIHRoZSBsaWJyYXJ5IGZvcgotICAgICAgICAqICB0aGUgcnVubmluZyBhcHBsaWNhdGlvbi4g
IElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGlzCi0gICAgICAgICogIGZ1bmN0aW9uIHdpbGwg
ZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB0byB0aGUgdXNlciB0aGF0IHRoZQotICAgICAgICAqICBz
Y3JlZW5zaG90IHdhcyB0YWtlbi4gVGhlIHBhdGhzIHNob3VsZCBiZSBmdWxsIHBhdGhzIHdpdGgK
LSAgICAgICAgKiAgZXh0ZW5zaW9ucy4KLSAgICAgICAgKiAgRmlsZSBwYXRocyBzaG91bGQgYmUg
YWJzb2x1dGUgaW5jbHVkaW5nIGV4dGVuc2lvbnMuCi0gICAgICAgICogIHNjcmVlbnNob3RIYW5k
bGUgY2FuIGJlIGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCBpZiB0aGlzCi0gICAgICAgICog
IHdhcyBhIG5ldyBzaG90IHRha2luZyBieSB0aGUgYXBwIHRvIGJlIHNhdmVkIGFuZCBub3QKLSAg
ICAgICAgKiAgaW5pdGlhdGVkIGJ5IGEgdXNlciAoYWNoaWV2ZW1lbnQgZWFybmVkIG9yIHNvbWV0
aGluZykgKi8KLSAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgU3VibWl0U2Ny
ZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZS
U2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoU291cmNlUHJldmlld0ZpbGVuYW1l
LCBjb25zdCBjaGFyICpwY2hTb3VyY2VWUkZpbGVuYW1lICkgPSAwOwotfTsKLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3Rz
XzAwMSI7Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotCi0vLyBpdnJyZXNvdXJjZXMuaAotbmFt
ZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUlJlc291cmNlcwotewotcHVibGljOgotCi0gICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gU2hhcmVk
IFJlc291cmNlIE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotICAgICAgIC8qKiBMb2FkcyB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGludG8g
dGhlIHByb3ZpZGVkIGJ1ZmZlciBpZiBsYXJnZSBlbm91Z2guCi0gICAgICAgKiBSZXR1cm5zIHRo
ZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgcmVxdWlyZWQgdG8gaG9sZCB0aGUgc3BlY2lm
aWVkIHJlc291cmNlLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgTG9hZFNoYXJlZFJlc291
cmNlKCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKnBjaEJ1ZmZlciwgdWludDMy
X3QgdW5CdWZmZXJMZW4gKSA9IDA7Ci0KLSAgICAgICAvKiogUHJvdmlkZXMgdGhlIGZ1bGwgcGF0
aCB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlLiBSZXNvdXJjZSBuYW1lcyBjYW4gaW5jbHVkZSBu
YW1lZCBkaXJlY3RvcmllcyBmb3IKLSAgICAgICAqIGRyaXZlcnMgYW5kIG90aGVyIHRoaW5ncywg
YW5kIHRoaXMgcmVzb2x2ZXMgYWxsIG9mIHRob3NlIGFuZCByZXR1cm5zIHRoZSBhY3R1YWwgcGh5
c2ljYWwgcGF0aC4gCi0gICAgICAgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkgaXMgdGhlIHN1
YmRpcmVjdG9yeSBvZiByZXNvdXJjZXMgdG8gbG9vayBpbi4gKi8KLSAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldFJlc291cmNlRnVsbFBhdGgoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlTmFtZSwg
Y29uc3QgY2hhciAqcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFyICpwY2hQYXRoQnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKLX07Ci0KLXN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3QgSVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2VzXzAwMSI7Ci0KLQotfQot
Ly8gaXZyZHJpdmVybWFuYWdlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQotY2xhc3MgSVZSRHJpdmVy
TWFuYWdlcgotewotcHVibGljOgotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyQ291
bnQoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBu
dW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRo
ZSB0cmFpbGluZyBudWxsLiAqLwotICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0RHJpdmVyTmFt
ZSggdnI6OkRyaXZlcklkX3QgbkRyaXZlciwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVl
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiA9ICJJVlJEcml2ZXJNYW5hZ2VyXzAwMSI7
Ci0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLQotLy8gRW5kCi0KLSNlbmRpZiAvLyBfT1BFTlZSX0FQ
SQotCi0KLW5hbWVzcGFjZSB2cgotewotICAgICAgIC8qKiBGaW5kcyB0aGUgYWN0aXZlIGluc3Rh
bGxhdGlvbiBvZiB0aGUgVlIgQVBJIGFuZCBpbml0aWFsaXplcyBpdC4gVGhlIHByb3ZpZGVkIHBh
dGggbXVzdCBiZSBhYnNvbHV0ZQotICAgICAgICogb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkuIFRoZXNlIGFyZSB0aGUgbG9jYWwgaW5zdGFsbCB2ZXJzaW9ucyBv
ZiB0aGUgZXF1aXZhbGVudAotICAgICAgICogZnVuY3Rpb25zIGluIHN0ZWFtdnIuaCBhbmQgd2ls
bCB3b3JrIHdpdGhvdXQgYSBsb2NhbCBTdGVhbSBpbnN0YWxsLgotICAgICAgICoKLSAgICAgICAq
IFRoaXMgcGF0aCBpcyB0byB0aGUgInJvb3QiIG9mIHRoZSBWUiBBUEkgaW5zdGFsbC4gVGhhdCdz
IHRoZSBkaXJlY3Rvcnkgd2l0aAotICAgICAgICogdGhlICJkcml2ZXJzIiBkaXJlY3RvcnkgYW5k
IGEgcGxhdGZvcm0gKGkuZS4gIndpbjMyIikgZGlyZWN0b3J5IGluIGl0LCBub3QgdGhlIGRpcmVj
dG9yeSB3aXRoIHRoZSBETEwgaXRzZWxmLgotICAgICAgICoKLSAgICAgICAqIHBTdGFydHVwSW5m
byBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4KLSAgICAgICAqLwotICAgICAgIGlubGluZSBJ
VlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25U
eXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyA9IG51bGxwdHIg
KTsKLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpOwotCi0gICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBITUQgYXR0YWNoZWQuIFRoaXMgY2hlY2sgaXMg
YXMgbGlnaHR3ZWlnaHQgYXMgcG9zc2libGUgYW5kCi0gICAgICAgKiBjYW4gYmUgY2FsbGVkIG91
dHNpZGUgb2YgVlJfSW5pdC9WUl9TaHV0ZG93bi4gSXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBhbiBh
cHBsaWNhdGlvbiB3YW50cwotICAgICAgICogdG8ga25vdyBpZiBpbml0aWFsaXppbmcgVlIgaXMg
YSBwb3NzaWJpbGl0eSBidXQgaXNuJ3QgcmVhZHkgdG8gdGFrZSB0aGF0IHN0ZXAgeWV0LgotICAg
ICAgICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNIbWRQcmVz
ZW50KCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGltZSBp
cyBpbnN0YWxsZWQuICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJf
SXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB3aGVyZSB0aGUgT3Bl
blZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBj
aGFyICpWUl9DQUxMVFlQRSBWUl9SdW50aW1lUGF0aCgpOwotCi0gICAgICAgLyoqIFJldHVybnMg
dGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUgZm9yIGFuIEVWUkluaXRFcnJvci4gVGhpcyBmdW5j
dGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2YgVlJfSW5pdCgpL1ZSX1NodXRkb3duKCkuICov
Ci0gICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX0dldFZSSW5p
dEVycm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOwotCi0gICAgICAgLyoqIFJldHVy
bnMgYW4gRW5nbGlzaCBzdHJpbmcgZm9yIGFuIEVWUkluaXRFcnJvci4gQXBwbGljYXRpb25zIHNo
b3VsZCBjYWxsIFZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2wgaW5zdGVhZCBhbmQKLSAgICAgICAq
IHVzZSB0aGF0IGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlaXIgb3duIGxvY2FsaXplZCBlcnJvciBt
ZXNzYWdlLiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0KCkv
VlJfU2h1dGRvd24oKS4gKi8KLSAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FM
TFRZUEUgVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9y
IGVycm9yICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVj
aWZpZWQgdmVyc2lvbi4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgVlJfSW5pdC4g
VGhlCi0gICAgICAgKiBwb2ludGVyIHJldHVybmVkIGlzIHZhbGlkIHVudGlsIFZSX1NodXRkb3du
IGlzIGNhbGxlZC4KLSAgICAgICAqLwotICAgICAgIFZSX0lOVEVSRkFDRSB2b2lkICpWUl9DQUxM
VFlQRSBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJz
aW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBSZXR1cm5zIHdoZXRo
ZXIgdGhlIGludGVyZmFjZSBvZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24gZXhpc3RzLgotICAgICAg
ICovCi0gICAgICAgVlJfSU5URVJGQUNFIGJvb2wgVlJfQ0FMTFRZUEUgVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24gKTsKLQotICAgICAg
IC8qKiBSZXR1cm5zIGEgdG9rZW4gdGhhdCByZXByZXNlbnRzIHdoZXRoZXIgdGhlIFZSIGludGVy
ZmFjZSBoYW5kbGVzIG5lZWQgdG8gYmUgcmVsb2FkZWQgKi8KLSAgICAgICBWUl9JTlRFUkZBQ0Ug
dWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfR2V0SW5pdFRva2VuKCk7Ci0KLSAgICAgICAvLyBUaGVz
ZSB0eXBlZGVmcyBhbGxvdyBvbGQgZW51bSBuYW1lcyBmcm9tIFNESyAwLjkuMTEgdG8gYmUgdXNl
ZCBpbiBhcHBsaWNhdGlvbnMuCi0gICAgICAgLy8gVGhleSB3aWxsIGdvIGF3YXkgaW4gdGhlIGZ1
dHVyZS4KLSAgICAgICB0eXBlZGVmIEVWUkluaXRFcnJvciBIbWRFcnJvcjsKLSAgICAgICB0eXBl
ZGVmIEVWUkV5ZSBIbWRfRXllOwotICAgICAgIHR5cGVkZWYgRUNvbG9yU3BhY2UgQ29sb3JTcGFj
ZTsKLSAgICAgICB0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3MgVHJhY2tlZERldmljZUNsYXNzOwotICAg
ICAgIHR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLSAgICAgICB0eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVBy
b3BlcnR5OwotICAgICAgIHR5cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQcm9w
ZXJ0eUVycm9yOwotICAgICAgIHR5cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190
OwotICAgICAgIHR5cGVkZWYgRVZSU3RhdGUgVlJTdGF0ZV90OwotICAgICAgIHR5cGVkZWYgRUNv
bGxpc2lvbkJvdW5kc1N0eWxlIENvbGxpc2lvbkJvdW5kc1N0eWxlX3Q7Ci0gICAgICAgdHlwZWRl
ZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci0gICAgICAgdHlwZWRlZiBFVlJGaXJt
d2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUkNvbXBvc2l0b3JF
cnJvciBWUkNvbXBvc2l0b3JFcnJvcjsKLSAgICAgICB0eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJv
ciBWUlNjcmVlbnNob3RzRXJyb3I7Ci0KLSAgICAgICBpbmxpbmUgdWludDMyX3QgJlZSVG9rZW4o
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RhdGljIHVpbnQzMl90IHRva2VuOwotICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW47Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkNv
bnRleHQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSQ29u
dGV4dCgpIHsgQ2xlYXIoKTsgfQotICAgICAgICAgICAgICB2b2lkIENsZWFyKCk7Ci0KLSAgICAg
ICAgICAgICAgaW5saW5lIHZvaWQgQ2hlY2tDbGVhcigpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIGlmICggVlJUb2tlbigpICE9IFZSX0dldEluaXRUb2tlbigpICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGVhcigp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSVG9rZW4oKSA9IFZSX0dldEluaXRUb2tl
bigpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgSVZSU3lzdGVtICpWUlN5c3RlbSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
eXN0ZW0gPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlN5c3RlbSA9ICggSVZSU3lzdGVtICogKVZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIElWUlN5c3RlbV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgSVZSQ2hhcGVyb25lICpWUkNoYXBlcm9uZSgpCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJDaGFwZXJvbmUgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZSA9ICggSVZSQ2hhcGVy
b25lICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJDaGFwZXJvbmU7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJD
aGFwZXJvbmVTZXR1cCAqVlJDaGFwZXJvbmVTZXR1cCgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSAoIElWUkNoYXBlcm9u
ZVNldHVwICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNoYXBlcm9uZVNldHVwX1ZlcnNp
b24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZVNldHVwOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgSVZSQ29tcG9zaXRvciAqVlJDb21wb3NpdG9yKCkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAg
aWYgKCBtX3BWUkNvbXBvc2l0b3IgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSAoIElWUkNvbXBvc2l0b3Ig
KiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCAmZUVycm9y
ICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9wVlJDb21wb3NpdG9yOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZST3Zl
cmxheSAqVlJPdmVybGF5KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUk92ZXJsYXkgPT0g
bnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3BWUk92ZXJsYXkgPSAoIElWUk92ZXJsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
T3ZlcmxheV9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJPdmVybGF5OwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgSVZSUmVzb3VyY2VzICpWUlJlc291cmNlcygpCi0gICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAg
ICAgIGlmICggbV9wVlJSZXNvdXJjZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IChJVlJSZXNvdXJjZXMg
KilWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJSZXNvdXJjZXNfVmVyc2lvbiwgJmVFcnJvciAp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
cFZSUmVzb3VyY2VzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSU2NyZWVu
c2hvdHMgKlZSU2NyZWVuc2hvdHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2NyZWVu
c2hvdHMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gKCBJVlJTY3JlZW5zaG90cyAqIClWUl9HZXRHZW5l
cmljSW50ZXJmYWNlKCBJVlJTY3JlZW5zaG90c19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTY3JlZW5z
aG90czsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAq
VlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBD
aGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSUmVuZGVyTW9kZWxz
ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJSZW5kZXJNb2RlbHMgPSAoIElWUlJlbmRlck1vZGVscyAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9k
ZWxzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNwbGF5
ICpWUkV4dGVuZGVkRGlzcGxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJFeHRlbmRl
ZERpc3BsYXkgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9ICggSVZSRXh0ZW5kZWREaXNwbGF5ICog
KVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uLCAmZUVy
cm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBJVlJTZXR0aW5ncyAqVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJT
ZXR0aW5ncyA9PSBudWxscHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSAoIElWUlNldHRpbmdzICogKVZSX0dldEdlbmVyaWNJ
bnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdzOwotICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSQXBwbGljYXRpb25zICpWUkFwcGxpY2F0
aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbHB0
ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFw
cGxpY2F0aW9ucyA9ICggSVZSQXBwbGljYXRpb25zICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkFwcGxpY2F0aW9uc19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICpWUlRyYWNrZWRD
YW1lcmEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSVHJhY2tlZENhbWVyYSA9PSBudWxs
cHRyICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgZUVycm9yOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZS
VHJhY2tlZENhbWVyYSA9ICggSVZSVHJhY2tlZENhbWVyYSAqIClWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlRyYWNrZWRDYW1lcmE7
Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBJVlJEcml2ZXJNYW5hZ2VyICpWUkRy
aXZlck1hbmFnZXIoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoICFtX3BWUkRyaXZlck1hbmFnZXIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJNYW5hZ2VyID0gKCBJVlJEcml2ZXJNYW5hZ2VyICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkRyaXZlck1hbmFnZXJfVmVyc2lvbiwgJmVFcnJvciApOwotICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJpdmVyTWFuYWdlcjsKLSAg
ICAgICAgICAgICAgfQotCi0gICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgICAgSVZSU3lzdGVt
ICAgICAgICAgICAgICAgICAgICAgKm1fcFZSU3lzdGVtOwotICAgICAgICAgICAgICBJVlJDaGFw
ZXJvbmUgICAgICAgICAgICAgICptX3BWUkNoYXBlcm9uZTsKLSAgICAgICAgICAgICAgSVZSQ2hh
cGVyb25lU2V0dXAgICAgICAgKm1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIElW
UkNvbXBvc2l0b3IgICAgICAgICAgICAgICptX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAg
IElWUk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICAqbV9wVlJPdmVybGF5OwotICAgICAgICAg
ICAgICBJVlJSZXNvdXJjZXMgICAgICAgICAgICAgICptX3BWUlJlc291cmNlczsKLSAgICAgICAg
ICAgICAgSVZSUmVuZGVyTW9kZWxzICAgICAgICAgICAgICAqbV9wVlJSZW5kZXJNb2RlbHM7Ci0g
ICAgICAgICAgICAgIElWUkV4dGVuZGVkRGlzcGxheSAgICAgICAqbV9wVlJFeHRlbmRlZERpc3Bs
YXk7Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgKm1fcFZS
U2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAgICAgICAgICAgICAgKm1f
cFZSQXBwbGljYXRpb25zOwotICAgICAgICAgICAgICBJVlJUcmFja2VkQ2FtZXJhICAgICAgICpt
X3BWUlRyYWNrZWRDYW1lcmE7Ci0gICAgICAgICAgICAgIElWUlNjcmVlbnNob3RzICAgICAgICAg
ICAgICAqbV9wVlJTY3JlZW5zaG90czsKLSAgICAgICAgICAgICAgSVZSRHJpdmVyTWFuYWdlciAg
ICAgICAqbV9wVlJEcml2ZXJNYW5hZ2VyOwotICAgICAgIH07Ci0KLSAgICAgICBpbmxpbmUgQ09w
ZW5WUkNvbnRleHQgJk9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgc3RhdGljIHZvaWQgKmN0eFsgc2l6ZW9mKCBDT3BlblZSQ29udGV4dCApIC8g
c2l6ZW9mKCB2b2lkICogKSBdOwotICAgICAgICAgICAgICByZXR1cm4gKiggQ09wZW5WUkNvbnRl
eHQgKiApY3R4OyAvLyBieXBhc3MgemVyby1pbml0IGNvbnN0cnVjdG9yCi0gICAgICAgfQotCi0g
ICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfQ0FMTFRZUEUgVlJTeXN0ZW0oKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTeXN0ZW0oKTsgfQotICAgICAgIGlubGlu
ZSBJVlJDaGFwZXJvbmUgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lKCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lKCk7IH0KLSAgICAgICBpbmxpbmUg
SVZSQ2hhcGVyb25lU2V0dXAgKlZSX0NBTExUWVBFIFZSQ2hhcGVyb25lU2V0dXAoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDaGFwZXJvbmVTZXR1cCgpOyB9Ci0g
ICAgICAgaW5saW5lIElWUkNvbXBvc2l0b3IgKlZSX0NBTExUWVBFIFZSQ29tcG9zaXRvcigpIHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNvbXBvc2l0b3IoKTsgfQot
ICAgICAgIGlubGluZSBJVlJPdmVybGF5ICpWUl9DQUxMVFlQRSBWUk92ZXJsYXkoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJPdmVybGF5KCk7IH0KLSAgICAgICBp
bmxpbmUgSVZSU2NyZWVuc2hvdHMgKlZSX0NBTExUWVBFIFZSU2NyZWVuc2hvdHMoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTY3JlZW5zaG90cygpOyB9Ci0gICAg
ICAgaW5saW5lIElWUlJlbmRlck1vZGVscyAqVlJfQ0FMTFRZUEUgVlJSZW5kZXJNb2RlbHMoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZW5kZXJNb2RlbHMoKTsg
fQotICAgICAgIGlubGluZSBJVlJBcHBsaWNhdGlvbnMgKlZSX0NBTExUWVBFIFZSQXBwbGljYXRp
b25zKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQXBwbGljYXRp
b25zKCk7IH0KLSAgICAgICBpbmxpbmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGlu
Z3MoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJTZXR0aW5ncygp
OyB9Ci0gICAgICAgaW5saW5lIElWUlJlc291cmNlcyAqVlJfQ0FMTFRZUEUgVlJSZXNvdXJjZXMo
KSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJSZXNvdXJjZXMoKTsg
fQotICAgICAgIGlubGluZSBJVlJFeHRlbmRlZERpc3BsYXkgKlZSX0NBTExUWVBFIFZSRXh0ZW5k
ZWREaXNwbGF5KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRXh0
ZW5kZWREaXNwbGF5KCk7IH0KLSAgICAgICBpbmxpbmUgSVZSVHJhY2tlZENhbWVyYSAqVlJfQ0FM
TFRZUEUgVlJUcmFja2VkQ2FtZXJhKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29u
dGV4dCgpLlZSVHJhY2tlZENhbWVyYSgpOyB9Ci0gICAgICAgaW5saW5lIElWUkRyaXZlck1hbmFn
ZXIgKlZSX0NBTExUWVBFIFZSRHJpdmVyTWFuYWdlcigpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQoKS5WUkRyaXZlck1hbmFnZXIoKTsgfQotCi0gICAgICAgaW5saW5lIHZv
aWQgQ09wZW5WUkNvbnRleHQ6OkNsZWFyKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIG1fcFZS
U3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJPdmVy
bGF5ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBudWxscHRy
OwotICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG51bGxwdHI7Ci0gICAgICAg
ICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUkFwcGxp
Y2F0aW9ucyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENhbWVyYSA9IG51
bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSUmVzb3VyY2VzID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgIG1fcFZSRHJp
dmVyTWFuYWdlciA9IG51bGxwdHI7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIFZSX0lOVEVS
RkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3Ig
KnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFy
ICpwU3RhcnR1cEluZm8gKTsKLSAgICAgICBWUl9JTlRFUkZBQ0Ugdm9pZCBWUl9DQUxMVFlQRSBW
Ul9TaHV0ZG93bkludGVybmFsKCk7Ci0KLSAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0
YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFuZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIGlu
bGluZSBJVlJTeXN0ZW0gKlZSX0luaXQoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGlj
YXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApCi0g
ICAgICAgewotICAgICAgICAgICAgICBJVlJTeXN0ZW0gKnBWUlN5c3RlbSA9IG51bGxwdHI7Ci0K
LSAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgVlJUb2tl
bigpID0gVlJfSW5pdEludGVybmFsMiggJmVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgcFN0YXJ0
dXBJbmZvICk7Ci0gICAgICAgICAgICAgIENPcGVuVlJDb250ZXh0ICZjdHggPSBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVDb250ZXh0KCk7Ci0gICAgICAgICAgICAgIGN0eC5DbGVhcigpOwotCi0gICAg
ICAgICAgICAgIGlmICggZUVycm9yID09IFZSSW5pdEVycm9yX05vbmUgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KCBJVlJTeXN0ZW1fVmVyc2lvbiApICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwVlJTeXN0ZW0gPSBWUlN5c3RlbSgpOwotICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlRXJyb3IgPSBWUkluaXRFcnJvcl9Jbml0X0lu
dGVyZmFjZU5vdEZvdW5kOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICAgICAgICAgICAgICAgICpw
ZUVycm9yID0gZUVycm9yOwotICAgICAgICAgICAgICByZXR1cm4gcFZSU3lzdGVtOwotICAgICAg
IH0KLQotICAgICAgIC8qKiB1bmxvYWRzIHZyY2xpZW50LmRsbC4gQW55IGludGVyZmFjZSBwb2lu
dGVycyBmcm9tIHRoZSBpbnRlcmZhY2UgYXJlCi0gICAgICAgKiBpbnZhbGlkIGFmdGVyIHRoaXMg
cG9pbnQgKi8KLSAgICAgICBpbmxpbmUgdm9pZCBWUl9TaHV0ZG93bigpCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUl9TaHV0ZG93bkludGVybmFsKCk7Ci0gICAgICAgfQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuY3MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworKysgL2Rldi9udWxsCkBAIC0x
LDQ3ODYgKzAsMCBAQAotLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24s
IEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IFRo
aXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBPcGVuVlIg
aW50ZXJmYWNlcwotLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBp
dC4KLS8vCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXVzaW5nIFN5c3RlbTsKLXVzaW5nIFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKLXVzaW5nIFZhbHZlLlZSOwotCi1uYW1lc3Bh
Y2UgVmFsdmUuVlIKLXsKLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldpZHRoLCBy
ZWYgdWludCBwbkhlaWdodCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXpl
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUgZUV5ZSwg
ZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1hdHJpeCBH
ZXRQcm9qZWN0aW9uTWF0cml4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCByZWYgZmxv
YXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZsb2F0IGZV
LCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRp
bmF0ZXMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9uOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVUb0hlYWRU
cmFuc2Zvcm0oRVZSRXllIGVFeWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9ybSBHZXRF
eWVUb0hlYWRUcmFuc2Zvcm07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMs
IHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxhc3RWc3lu
YyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVySW5kZXgg
R2V0RDNEOUFkYXB0ZXJJbmRleDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzRGlzcGxheU9u
RGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVza3RvcCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1dGVUcmFj
a2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3Rl
ZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtd
IHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERldmljZVRv
QWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Qb3NlIFJl
c2V0U2VhdGVkWmVyb1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1h
dHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3Nl
KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bv
c2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1plcm9Qb3Nl
VG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJz
b2x1dGVUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNz
IGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50IHVuUmVs
YXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tlZERldmlj
ZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzczsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwgX0dldFRy
YWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJh
Y2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWw7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3JtKHJlZiBU
cmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBw
VHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShFVHJh
Y2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERldmlj
ZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxl
clJvbGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29udHJvbGxl
clJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZp
Y2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgg
R2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZpY2VDbGFz
cyh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFzcyBHZXRU
cmFja2VkRGV2aWNlQ2xhc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lz
VHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVy
dHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tlZERldmlj
ZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUlu
ZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgcEVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0VWlu
dDY0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2VkUHJv
cGVydHlFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3Bl
cnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1
bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5
IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Q
b2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCwgcmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Qb2xsTmV4
dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVudFR5
cGUgZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVudFR5cGVO
YW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRlbkFyZWFN
ZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNoOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGUodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRy
b2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbnRy
b2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZlcnNl
T3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXpl
LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVsc2UodWlu
dCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1cmF0aW9u
TWljcm9TZWMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGljUHVsc2U7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9uSWROYW1l
RnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRCdXR0b25JZE5hbWVG
cm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oRVZSQ29u
dHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4aXNUeXBl
TmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZWxlYXNl
SW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1c0NhcHR1
cmVkQnlBbm90aGVyUHJvY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWlu
dCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaFJlcXVl
c3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZpcm13YXJl
VXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJlVXBkYXRl
IFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1aXRf
RXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9BY2tu
b3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsKLQotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElW
UkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
R2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQgcG5XaWR0
aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRXaW5kb3dC
b3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5ZU91dHB1
dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwgcmVmIHVp
bnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1dFZpZXdw
b3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCByZWYgaW50
IHBuQWRhcHRlck91dHB1dEluZGV4KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBHZXREWEdJ
T3V0cHV0SW5mbzsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
Ci1wdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tlZENh
bWVyYUVycm9yIGVDYW1lcmFFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmljZUluZGV4
LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJhOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENh
bWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwgcmVmIHVp
bnQgcG5GcmFtZUJ1ZmZlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBHZXRDYW1l
cmFGcmFtZVNpemU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBGb2NhbExl
bmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJbnRyaW5z
aWNzIEdldENhbWVyYUludHJpbnNpY3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZpY2VJ
bmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFy
LCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVvU3RyZWFt
aW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vydmlj
ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9y
IF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJhKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVhbWluZ1Nl
cnZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVmZmVyLCB1
aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
cEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3Ry
ZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVmIHVpbnQg
cG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4dHVy
ZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDExU2hh
ZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFt
ZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1
cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVhc2VWaWRl
b1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1cmVJZCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0cmVhbVRl
eHR1cmVHTDsKLQotfQotCi1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1w
dWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucwotewotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChzdHJpbmcg
cGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3ZlQXBwbGlj
YXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3Q7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRpb25JbnN0
YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3RhbGxlZCBJ
c0FwcGxpY2F0aW9uSW5zdGFsbGVkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Db3VudCBH
ZXRBcHBsaWNhdGlvbkNvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJB
cHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFwcGxpY2F0
aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLCB1aW50
IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXggR2V0
QXBwbGljYXRpb25LZXlCeUluZGV4OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Q
cm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4p
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRpb25LZXlC
eVByb2Nlc3NJZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24o
c3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4sIE91dF0g
QXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xhdW5jaFRl
bXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRp
b25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWlt
ZVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJy
b3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTGF1
bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJpbmcg
cGNoQXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxBcHBsaWNh
dGlvbkxhdW5jaDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNo
QXBwS2V5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGljYXRpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uUHJv
Y2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvY2Vzc0lk
IEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtIEdl
dEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBwY2hBcHBL
ZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVy
TGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNh
dGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlCb29s
KHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCByZWYg
RVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3Bl
cnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3RyaW5nIHBj
aEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJBcHBsaWNh
dGlvbkVycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQg
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9y
IF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LCBzdHJp
bmcgcGNoTWltZVR5cGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBl
IFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcg
cGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJM
ZW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERlZmF1bHRB
cHBsaWNhdGlvbkZvck1pbWVUeXBlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBwS2V5LCBz
dHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1cHBvcnRl
ZE1pbWVUeXBlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmluZyBw
Y2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZm
ZXIpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0QXBwbGlj
YXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRsZSwgc3Ry
aW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxhdW5jaEFy
Z3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBsaWNhdGlv
bihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIF9H
ZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNp
dGlvblN0YXRlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlv
bkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNoQXBwS2V5
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3JtQXBwbGlj
YXRpb25QcmVsYXVuY2hDaGVjazsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50
UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RyYW5z
aXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1l
RnJvbUVudW07Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzUXVpdFVz
ZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkIElz
UXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNoQmlu
YXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJlY3Rvcnkp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nlc3M7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZVByb2Nl
c3NJZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50U2NlbmVQ
cm9jZXNzSWQ7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQot
cHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUoKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNp
emVYLCByZWYgZmxvYXQgcFNpemVaKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0UGxheUFy
ZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5QXJl
YVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3QgR2V0UGxh
eUFyZWFSZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxvYWRJ
bmZvKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3IpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9y
QXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVE
aXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRC
b3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2libGUgQXJl
Qm91bmRzVmlzaWJsZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9y
Y2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zpc2libGUg
Rm9yY2VCb3VuZHNWaXNpYmxlOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJvbmVDb25m
aWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1pdFdvcmtp
bmdDb3B5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZlcnRXb3Jr
aW5nQ29weSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdDb3B5Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxheUFyZWFT
aXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFdvcmtp
bmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90
IHJlY3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1BsYXlBcmVh
UmVjdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgcmVm
IHVpbnQgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5n
UGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2lu
Z1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4sIE91
dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm87Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Jl
bG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Jl
bG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1k
TWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBU
YWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdz
SW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdDb3VudCk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbzsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVm
ZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91bmRz
SW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5ndGgpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoc3Ry
aW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7Ci0KLX0KLQotW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGljIHN0cnVjdCBJVlJDb21wb3NpdG9yCi17
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1NwYWNlKEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5nU3BhY2Ug
U2V0VHJhY2tpbmdTcGFjZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRUcmFja2lu
Z1NwYWNlIEdldFRyYWNraW5nU3BhY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2VkRGV2aWNl
UG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBb
SW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50IHVuR2Ft
ZVBvc2VBcnJheUNvdW50KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2VzOwotCi0g
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldExhc3RQ
b3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVp
bnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3Rb
XSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
TGFzdFBvc2VzIEdldExhc3RQb3NlczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50
IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYg
VHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldExhc3RQb3Nl
Rm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1N1Ym1p
dChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVyZUJvdW5k
c190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3VibWl0
IFN1Ym1pdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xlYXJMYXN0
U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBDbGVhckxh
c3RTdWJtaXR0ZWRGcmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
UG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBvc3RQcmVz
ZW50SGFuZG9mZjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RnJh
bWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1bkZyYW1l
c0Fnbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRv
cl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGlt
aW5ncyBHZXRGcmFtZVRpbWluZ3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGZs
b2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVSZW1haW5p
bmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRz
IHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxhdGl2ZVN0
YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVl
biwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
RmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywgYm9vbCBi
RmFkZUluKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRDdXJy
ZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0luLCBPdXRd
IFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0
U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DbGVhclNreWJv
eE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Db21wb3NpdG9y
QnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0
b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1aXQgQ29t
cG9zaXRvclF1aXQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzRnVs
bHNjcmVlbigpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vzcygp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2NlbmVGb2N1
c1Byb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldExhc3RG
cmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFzdEZyYW1l
UmVuZGVyZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhblJlbmRl
clNjZW5lKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
LSAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9IaWRlTWlycm9y
V2luZG93IEhpZGVNaXJyb3JXaW5kb3c7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2luZG93Vmlz
aWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckR1bXBJ
bWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG91
bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJj
ZXM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50ZXJsZWF2
ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhib29sIGJT
dXNwZW5kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9y
VGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRNaXJyb3JU
ZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEgUmVs
ZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUsIHJlZiB1
aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwg
X0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRleHR1
cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVNoYXJl
ZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3Mg
TG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyBV
bmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5jZUV4dGVu
c2lvbnNSZXF1aXJlZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZpY2UsIFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVy
bmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2aWNlRXh0
ZW5zaW9uc1JlcXVpcmVkOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQotewotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtl
eSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBGaW5kT3Zl
cmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9D
cmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVu
ZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9DcmVhdGVPdmVybGF5
IENyZWF0ZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9E
ZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1YWxpdHlP
dmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0SGlnaFF1
YWxpdHlPdmVybGF5KCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhpZ2hRdWFs
aXR5T3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3Zl
cmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCBy
ZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUgR2V0T3Zl
cmxheU5hbWU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBwdkJ1
ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWludCBwdW5I
ZWlnaHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdlRGF0YTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5RXJyb3JO
YW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5kZXJpbmdQ
aWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlSZW5kZXJp
bmdQaWQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3Zl
cmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNldE92ZXJs
YXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92
ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFnIEdl
dE92ZXJsYXlGbGFnOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xvciBTZXRP
dmVybGF5Q29sb3I7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBm
UmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmQWxwaGEpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5QWxwaGE7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25n
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVy
bGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcg
dWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5U29y
dE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNvcnRPcmRl
ciBHZXRPdmVybGF5U29ydE9yZGVyOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0aEluTWV0
ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3Rh
bmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5j
ZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFu
Y2VSYW5nZUluTWV0ZXJzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcg
dWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCByZWYgZmxv
YXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRl
cnM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3Bh
Y2UgZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNvbG9yU3Bh
Y2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4
dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJl
Qm91bmRzKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQot
ICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5VGV4dHVy
ZUJvdW5kczsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRy
YW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5n
T3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFu
c2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZTsK
LQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwg
dWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNl
VG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERl
dmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4LCBzdHJp
bmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9H
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAg
ICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7Ci0KLSAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3JtRm9yT3Zl
cmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXM7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3ZlcmxheUV2ZW50
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5jYlZS
RXZlbnQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0g
ICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3ZlcmxheUV2ZW50
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnB1
dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRob2QgR2V0
T3ZlcmxheUlucHV0TWV0aG9kOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUlu
cHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNjYWxlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190
IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3VsdHMpOwot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50
ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVpbnQg
dW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJPdmVybGF5
SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01v
dXNlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVyVGFyZ2V0
T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJnZXRPdmVy
bGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEdhbWVwYWRGb2N1
c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsb25nIHVs
TmV3Rm9jdXNPdmVybGF5KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNldEdhbWVw
YWRGb2N1c092ZXJsYXk7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24s
IHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdoYm9yIFNl
dE92ZXJsYXlOZWlnaGJvcjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNUb05laWdo
Ym9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1
cmUgU2V0T3ZlcmxheVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAg
aW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsKLQotICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
Ci0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5UmF3
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lkdGgsIHVp
bnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBTZXRPdmVy
bGF5UmF3OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBwY2hGaWxl
UGF0aCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmlsZTsKLQot
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5
VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1cmVI
YW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCByZWYgdWlu
dCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBlIHBBUElU
eXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBw
VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3ZlcmxheVRleHR1
cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfUmVs
ZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIgcE5h
dGl2ZVRleHR1cmVIYW5kbGUpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIFJl
bGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVybGF5KHN0
cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVmIHVs
b25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3Jl
YXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OwotCi0gICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9J
c0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQotICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3RpdmVEYXNo
Ym9hcmRPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5l
UHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJZCk7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRPdmVybGF5
U2NlbmVQcm9jZXNzOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TaG93
RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TaG93RGFzaGJvYXJk
IFNob3dEYXNoYm9hcmQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2
aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLCBpbnQg
ZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJNYXgsIHN0
cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1VXNlclZh
bHVlKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAg
ICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRNb2Rl
LCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhpc3Rp
bmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7Ci0gICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBf
U2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OwotCi0gICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEtleWJvYXJk
VGV4dCBHZXRLZXlib2FyZFRleHQ7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX0hpZGVLZXlib2FyZCgpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9hcmQ7Ci0K
LSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJhbnNmb3Jt
QWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYgSG1k
TWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1
dGU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBhdm9pZFJl
Y3QpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAg
ICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1pdGl2
ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7Ci0gICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92ZXJsYXko
c3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9uMFRleHQs
IHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJpbmcgcGNo
QnV0dG9uM1RleHQpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCi0gICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2FnZU92ZXJs
YXk7Ci0KLX0KLQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQotcHVibGlj
IHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVu
ZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0xvYWRSZW5k
ZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1vZGVsKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9Bc3luYyhp
bnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1cmVf
QXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmUg
RnJlZVRleHR1cmU7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1v
ZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50UHRyIHBE
M0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9Mb2FkVGV4
dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVyZUQzRDEx
X0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7Ci0gICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfTG9hZElu
dG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBE
M0QxMVRleHR1cmUyRCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KLSAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVyZUQzRDEx
OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbE5h
bWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKLSAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRS
ZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOwotCi0gICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVy
TW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1l
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKLQotICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0g
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4pOwotICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJu
YWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldENvbXBv
bmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0cmluZyBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVu
dFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1l
IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwg
c3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9s
bGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSwg
cmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKLQotICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1JlbmRlck1v
ZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OwotCi0gICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRodW1ibmFp
bFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVF
cnJvcik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAg
ICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVyTW9kZWxU
aHVtYm5haWxVUkw7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJl
bmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQYXRoTGVu
LCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2Rl
bE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVt
KEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsRXJyb3JO
YW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKLQotfQotCi1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCi1wdWJsaWMgc3RydWN0IElWUk5vdGlm
aWNhdGlvbnMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNhdGlv
bkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1bG9uZyB1
bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4dCwgRVZS
Tm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1hZ2Us
IHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0aW9uIENy
ZWF0ZU5vdGlmaWNhdGlvbjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSTm90
aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlvbklkKTsK
LSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGlu
dGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOwotCi19Ci0KLVtT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSU2V0
dGluZ3MKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0U2V0dGlu
Z3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtOwot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZvcmNlLCBy
ZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7Ci0KLSAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQot
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNlY3Rpb24s
IHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9y
IHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
Ci0gICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKLQotICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hT
ZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfU2V0SW50MzIgU2V0SW50MzI7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Nl
dEZsb2F0IFNldEZsb2F0OwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
ZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgc3RyaW5n
IHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9TZXRTdHJp
bmcgU2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRC
b29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJTZXR0
aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbiwgc3Ry
aW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFs
IF9HZXRJbnQzMiBHZXRJbnQzMjsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgZmxv
YXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJl
ZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZsb2F0Owot
Ci0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3RyaW5nIHBj
aFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAg
IGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOwotCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNlY3Rpb247
Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUluU2VjdGlv
bihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQotICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3ZlS2V5SW5T
ZWN0aW9uOwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1
YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKLXsKLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91dFNj
cmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQcmV2aWV3
RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQotICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2NyZWVuc2hv
dCBSZXF1ZXN0U2NyZWVuc2hvdDsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
U2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVuc2hvdFR5
cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfSG9va1NjcmVlbnNo
b3QgSG9va1NjcmVlbnNob3Q7Ci0KLSAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNj
cmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhh
bmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOwotICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX0dldFNjcmVlbnNo
b3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKLQotICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUodWlu
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5h
bWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50IGNjaEZp
bGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7Ci0gICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0U2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7Ci0KLSAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQotICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBkYXRlU2Ny
ZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7
Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBp
bnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
czsKLQotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9U
YWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgc3RyaW5n
IHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOwotICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCi0gICAgICAgaW50ZXJuYWwgX1Rha2VT
dGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OwotCi0gICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3QodWludCBz
Y3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoU291cmNl
UHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfU3Vi
bWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OwotCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0KLXB1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCi17Ci0gICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
LSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uoc3RyaW5n
IHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0g
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRl
cm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKLQotICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNo
UmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJpbmcgcGNo
UGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7Ci0gICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KLSAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VGdWxsUGF0
aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOwotCi19Ci0KLQotcHVibGljIGNsYXNzIENWUlN5c3RlbQot
ewotICAgICAgIElWUlN5c3RlbSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUlN5c3RlbShJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
U3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlN5c3Rl
bSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRlclRh
cmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJlZiBw
bldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXg0
NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZsb2F0IGZG
YXJaKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQgPSBGblRh
YmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRQcm9qZWN0
aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmlnaHQscmVm
IGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmTGVmdCA9IDA7Ci0gICAgICAgICAgICAgIHBmUmlnaHQgPSAwOwotICAgICAgICAgICAgICBw
ZlRvcCA9IDA7Ci0gICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxyZWYgcGZU
b3AscmVmIHBmQm90dG9tKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQ29tcHV0ZURp
c3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRpb25Db29y
ZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCi0gICAgICAgewotICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxmVixyZWYg
cERpc3RvcnRpb25Db29yZGluYXRlcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5zZm9y
bShFVlJFeWUgZUV5ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFRpbWVTaW5j
ZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVsb25nIHB1
bEZyYW1lQ291bnRlcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmU2Vjb25kc1NpbmNlTGFz
dFZzeW5jID0gMDsKLSAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgcGZT
ZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0RDNEOUFkYXB0
ZXJJbmRleCgpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXREM0Q5QWRhcHRlckluZGV4KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFw
dGVySW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRlckluZGV4
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3BsYXlPbkRl
c2t0b3AoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25EZXNrdG9w
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldERpc3Bs
YXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fic29sdXRl
VHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQgZlByZWRp
Y3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFRyYWNr
ZWREZXZpY2VQb3NlQXJyYXkpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkdldERl
dmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25kc1RvUGhv
dG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2VkRGV2aWNl
UG9zZUFycmF5Lkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0U2Vh
dGVkWmVyb1Bvc2UoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5SZXNldFNlYXRl
ZFplcm9Qb3NlKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldFNl
YXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0ZWRaZXJv
UG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERldmljZUlu
ZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcyx1aW50
IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJhY2tlZERl
dmljZUluZGV4KQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmljZUNsYXNz
LHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNlSW5kZXhB
cnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVEZXZpY2VBY3Rpdml0
eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9IEZuVGFi
bGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIEFwcGx5VHJh
bnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2VkRGV2
aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNmb3Jt
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShyZWYgcE91
dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJS
b2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNv
bnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENvbnRy
b2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUluZGV4KTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVU
cmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZpY2VJbmRl
eCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzVHJhY2tl
ZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKHVuRGV2
aWNlSW5kZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJ
bmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlFcnJv
ciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJv
cik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRG
bG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBp
bnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldEludDMyVHJh
Y2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdl
dFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50NjRUcmFj
a2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgSG1kTWF0cml4
MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgs
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVy
cm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBGblRh
YmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxy
ZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IHBFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0o
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50
UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRfdCBwRXZl
bnQsdWludCB1bmNiVlJFdmVudCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOwotICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBQb2xs
TmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixyZWYgVlJF
dmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBU
cmFja2VkRGV2aWNlUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVuY2JWUkV2
ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVGcm9tRW51
bShFVlJFdmVudFR5cGUgZVR5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOwotICAgICAgICAg
ICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZSRXllIGVF
eWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSGlk
ZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVFeWUsdHlw
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBpcyBh
IHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0
YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNr
aW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgs
cmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBs
aWNpdCldCi0gICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCi0gICAgICAgewot
ICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJT
eXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOwotICAgICAgICAg
ICAgICBbRmllbGRPZmZzZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29udHJvbGxl
clN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRy
b2xsZXJTdGF0ZVNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5FbnZp
cm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NYKSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJz
aW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1OwotICAgICAg
ICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0g
bmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1
LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAg
dS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwodWludClT
eXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9mKFZSQ29u
dHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9w
YWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBwYWNrZWRfcmVzdWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVyRGV2aWNl
SW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0vLyBUaGlzIGlzIGEgdGVycmlibGUg
aGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVfdCB3YXMK
LS8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcgZm9yIExp
bnV4IGFuZCBPU1guCi0gICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KLSAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFj
a2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIFRyYWNr
ZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCi0g
ICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
IHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlUGFj
a2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xs
ZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5
c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
U3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1J
RC5Vbml4KSkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJv
bGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OwotICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9s
bGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkKCk7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVXaXRo
UG9zZVBhY2tlZCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Ci0gICAg
ICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBzdGF0
ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwuU2l6
ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tlZERldmlj
ZVBvc2UpOwotCi0gICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJlZiBw
Q29udHJvbGxlclN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRfcmVz
dWx0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYgcFRyYWNr
ZWREZXZpY2VQb3NlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRv
bklkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0
QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBz
dHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJBeGlz
VHlwZSBlQXhpc1R5cGUpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1cygpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBSZWxlYXNlSW5wdXRGb2N1cygpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJl
bGVhc2VJbnB1dEZvY3VzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzSW5wdXRG
b2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCi0gICAgICAgewotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNz
KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaFJl
cXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNpemUp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJpdmVyRGVi
dWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZlcix1blJl
c3BvbnNlQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1
aW50IHVuRGV2aWNlSW5kZXgpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJGaXJtd2FyZUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNlSW5kZXgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCi0gICAgICAgewotICAgICAgICAgICAgICBG
blRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKLSAgICAgICB9Ci19Ci0K
LQotcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQotewotICAgICAgIElWUkV4dGVuZGVk
RGlzcGxheSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxheShJbnRQ
dHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSRXh0
ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
UkV4dGVuZGVkRGlzcGxheSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBHZXRXaW5k
b3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWlu
dCBwbkhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuWCA9IDA7Ci0gICAgICAgICAg
ICAgIHBuWSA9IDA7Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBw
bkhlaWdodCA9IDA7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRzKHJlZiBw
blgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOwotICAgICAgIH0KLSAgICAgICBw
dWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWludCBwblgs
cmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCi0gICAgICAg
ewotICAgICAgICAgICAgICBwblggPSAwOwotICAgICAgICAgICAgICBwblkgPSAwOwotICAgICAg
ICAgICAgICBwbldpZHRoID0gMDsKLSAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOwotICAgICAg
ICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxyZWYgcG5Z
LHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lk
IEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBwbkFkYXB0
ZXJPdXRwdXRJbmRleCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBuQWRhcHRlckluZGV4ID0g
MDsKLSAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOwotICAgICAgICAgICAg
ICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYgcG5BZGFw
dGVyT3V0cHV0SW5kZXgpOwotICAgICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZSVHJhY2tl
ZENhbWVyYQotewotICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKLSAgICAgICBpbnRl
cm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAg
ICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1
cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgZUNhbWVyYUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSW50UHRyIHJl
c3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKHVp
bnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCi0gICAgICAgewotICAgICAgICAg
ICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBIYXNDYW1l
cmEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJ
bmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcG5XaWR0
aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHBuV2lkdGggPSAwOwotICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7
Ci0gICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVTaXplKG5E
ZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYgcG5GcmFt
ZUJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3ModWlu
dCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBI
bWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBGb2NhbExl
bmd0aCxyZWYgcENlbnRlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVjdGlv
bih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUs
ZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2plY3Rpb24p
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLGZsWk5l
YXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWlyZVZp
ZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhhbmRsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHBIYW5kbGUgPSAwOwotICAgICAgICAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJlYW1pbmdT
ZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVs
ZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLlJl
bGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZmZXIsdWlu
dCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZy
YW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtRnJh
bWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZyYW1lQnVm
ZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4
dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQotICAgICAgIHsK
LSAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7Ci0gICAgICAgICAgICAgIHBuSGVpZ2h0ID0gMDsK
LSAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcFRleHR1
cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3VyY2Us
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscEQz
RDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYgcEZy
YW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXplKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0dXJl
R0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBwRnJhbWVI
ZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVv
U3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJlSWQpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xUZXh0dXJl
SWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLX0KLQotCi1wdWJs
aWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCi17Ci0gICAgICAgSVZSQXBwbGljYXRpb25zIEZuVGFi
bGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJmYWNlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMpTWFyc2hh
bC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25zKSk7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29sIGJUZW1w
b3JhcnkpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlmZXN0
RnVsbFBhdGgsYlRlbXBvcmFyeSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0aW9u
TWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZW1v
dmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHBj
aEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbkluZGV4
LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBLZXlC
dWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRpb25JbmRl
eCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBH
ZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5nIHBjaEFw
cEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5
QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVu
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOwotICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVu
Y2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJpbmcgcGNo
TmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1aW50KSBw
S2V5cy5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1l
VHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBwbGlj
YXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9y
IExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hEYXNo
Ym9hcmRPdmVybGF5KHBjaEFwcEtleSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHN0cmlu
ZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
SWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXkpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRBcHBs
aWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBjaEFwcEtl
eSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1Ymxp
YyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRpb25F
cnJvciBlcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRh
YmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5nIHBjaEFw
cEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVCdWZmZXJM
ZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHBj
aEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5VmFsdWVC
dWZmZXJMZW4scmVmIHBlRXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChzdHJp
bmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQcm9wZXJ0
eSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmluZyBw
Y2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFwcGxpY2F0
aW9uRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVByb3BlcnR5
LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
KHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNhdGlvbkF1
dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoKHN0cmluZyBwY2hBcHBLZXkpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNh
dGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hBcHBL
ZXksc3RyaW5nIHBjaE1pbWVUeXBlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5B
cHBLZXlCdWZmZXJMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXBw
S2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRN
aW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLHVpbnQg
dW5NaW1lVHlwZXNCdWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5LHBjaE1p
bWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uc1RoYXRT
dXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUaGF0U3Vw
cG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcix1bkFw
cEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRz
KHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCi0gICAgICAgewotICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1
bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBHZXRTdGFy
dGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZl
ckxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtl
eUJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9uU3Rh
dGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldEFw
cGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25TdGF0ZSBzdGF0ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEludFB0ciByZXN1bHQg
PSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShzdGF0
ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc1F1aXRV
c2VyUHJvbXB0UmVxdWVzdGVkKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVybmFsUHJv
Y2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmluZyBwY2hX
b3JraW5nRGlyZWN0b3J5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5hcnlQYXRo
LHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5lUHJv
Y2Vzc0lkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQotewotICAgICAgIElW
UkNoYXBlcm9uZSBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hhcGVy
b25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNoYXBlcm9u
ZSkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSBH
ZXRDYWxpYnJhdGlvblN0YXRlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRlKCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29s
IEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVopCi0gICAg
ICAgewotICAgICAgICAgICAgICBwU2l6ZVggPSAwOwotICAgICAgICAgICAgICBwU2l6ZVogPSAw
OwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFTaXplKHJl
ZiBwU2l6ZVgscmVmIHBTaXplWik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90IHJl
Y3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxh
eUFyZWFSZWN0KHJlZiByZWN0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQg
U2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksaW50IG5O
dW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVmIEht
ZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1dENvbG9y
cyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNvbG9yKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCi0gICAgICAg
ewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlzaWJsZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOwotICAgICAgIH0KLX0KLQot
Ci1wdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKLXsKLSAgICAgICBJVlJDaGFwZXJvbmVT
ZXR1cCBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKEludFB0ciBw
SW50ZXJmYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJDaGFwZXJv
bmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJDaGFw
ZXJvbmVTZXR1cCkpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBDb21taXRXb3JraW5n
Q29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZpZ0ZpbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LlJldmVydFdvcmtpbmdDb3B5KCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdv
cmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgcFNpemVYID0gMDsKLSAgICAgICAgICAgICAgcFNpemVaID0g
MDsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJl
YVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVjdChy
ZWYgSG1kUXVhZF90IHJlY3QpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdD
b2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKLSAgICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG51bGws
cmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBIbWRR
dWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0
V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0NvdW50
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVhZHNC
dWZmZXIpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAwOwot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5k
c0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7Ci0gICAgICAgICAgICAgIHBRdWFkc0J1ZmZl
cj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1
YWRzQ291bnQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29y
a2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoZmxvYXQg
c2l6ZVgsZmxvYXQgc2l6ZVopCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldFdv
cmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVm
ZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9u
Qm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1N0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29uZmlnRmls
ZSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIsKHVpbnQp
IHBUYWdzQnVmZmVyLkxlbmd0aCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIEdldExp
dmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOwotICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKG51bGws
cmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBieXRlW3B1
blRhZ0NvdW50XTsKLSAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlz
aW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU2V0V29y
a2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQaHlzaWNh
bEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wg
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7Ci0gICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKG51
bGwscmVmIHB1blF1YWRzQ291bnQpOwotICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBI
bWRRdWFkX3RbcHVuUXVhZHNDb3VudF07Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUu
R2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291bnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
Ym9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwQnVmZmVy
LHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcG5CdWZm
ZXJMZW5ndGggPSAwOwotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuRXhwb3J0
TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSW1wb3J0RnJvbUJ1
ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVmZmVyVG9X
b3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKLXsKLSAgICAg
ICBJVlJDb21wb3NpdG9yIEZuVGFibGU7Ci0gICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9zaXRvcihJ
bnRQdHIgcEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
Q29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
b21wb3NpdG9yKSk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNraW5nU3Bh
Y2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0gRm5UYWJs
ZS5HZXRUcmFja2luZ1NwYWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2VzKFRyYWNr
ZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9zZV90IFtd
IHBHYW1lUG9zZUFycmF5KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXksKHVpbnQp
IHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2FtZVBvc2VB
cnJheS5MZW5ndGgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2VkRGV2aWNl
UG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2FtZVBv
c2VBcnJheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVuZGVy
UG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXkuTGVu
Z3RoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVi
bGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBvc2UscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBvc2VGb3JU
cmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVmIHBPdXRw
dXRHYW1lUG9zZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJlZiBUZXh0
dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3VibWl0Rmxh
Z3MgblN1Ym1pdEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBwQm91bmRz
LG5TdWJtaXRGbGFncyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5nIHBU
aW1pbmcsdWludCB1bkZyYW1lc0FnbykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fnbyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50
IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVpbnQg
bkZyYW1lcykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRpbWVSZW1h
aW5pbmcoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21wb3Np
dG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBwU3RhdHMs
blN0YXRzU2l6ZUluQnl0ZXMpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGYWRlVG9D
b2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1ZSxm
bG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhhLGJCYWNr
Z3JvdW5kKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3VycmVudEZh
ZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQotICAgICAgIHsKLSAgICAgICAgICAgICAgSG1kQ29s
b3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91bmQpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9p
ZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCi0gICAgICAgewotICAgICAg
ICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCi0gICAgICAgewotICAgICAg
ICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEoKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNv
bXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1cmVzKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVuZ3RoKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxl
LkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckJyaW5nVG9Gcm9udCgpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkNv
bXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgQ29t
cG9zaXRvckdvVG9CYWNrKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9z
aXRvckdvVG9CYWNrKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0b3JR
dWl0KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1aXQoKTsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0TGFz
dEZyYW1lUmVuZGVyZXIoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBG
blRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJTY2VuZSgp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dm9pZCBTaG93TWlycm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUu
U2hvd01pcnJvcldpbmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBIaWRlTWly
cm9yV2luZG93KCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1pcnJvcldp
bmRvdygpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRvd1Zpc2li
bGUoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzTWly
cm9yV2luZG93VmlzaWJsZSgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCi0gICAgICAgewot
ICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFwcFJlbmRl
cldpdGhMb3dSZXNvdXJjZXMoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJv
b2wgYk92ZXJyaWRlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUludGVy
bGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZu
VGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2
b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBl
RXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRl
clJlc291cmNlVmlldykKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0QxMURldmlj
ZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNlTWly
cm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCi0gICAgICAg
ewotICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEocEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUkNvbXBvc2l0
b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGdsVGV4dHVy
ZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgcGdsVGV4dHVyZUlkID0gMDsKLSAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1cmVJZCxw
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1aW50IGds
VGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVyZShnbFRl
eHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0dXJlRm9y
QWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAgICAgICAg
ICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0dXJl
SGFuZGxlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFyZWRUZXh0
dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhnbFNoYXJl
ZFRleHR1cmVIYW5kbGUpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5J
bnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZh
bHVlLHVpbnQgdW5CdWZmZXJTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBjaFZhbHVl
LHVuQnVmZmVyU2l6ZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJbnRQ
dHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWlu
dCB1bkJ1ZmZlclNpemUpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERldmljZSxw
Y2hWYWx1ZSx1bkJ1ZmZlclNpemUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLX0KLQotCi1wdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQotewotICAgICAgIElWUk92ZXJs
YXkgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50ZXJmYWNl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1hcnNoYWwu
UHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKLSAgICAgICB9
Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zl
cmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwT3ZlcmxheUhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmlu
ZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVybGF5S2V5
LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3ZlcmxheSh1
bE92ZXJsYXlIYW5kbGUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5SGFuZGxl
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCi0gICAgICAgewotICAgICAgICAgICAgICB1
bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlLZXko
dWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0
T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxJ
bnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgscmVmIHVp
bnQgcHVuSGVpZ2h0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHVuV2lkdGggPSAwOwotICAg
ICAgICAgICAgICBwdW5IZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRsZSxwdkJ1
ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgc3RyaW5nIEdldE92
ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCi0gICAgICAgewot
ICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJyb3JOYW1l
RnJvbUVudW0oZXJyb3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmlu
Z0Fuc2kocmVzdWx0KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUElEKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOwotICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRPdmVy
bGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsT3Zl
cmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5
SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zl
cmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCi0gICAgICAgewotICAgICAgICAgICAg
ICBwYkVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxy
ZWYgcGJFbmFibGVkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zlcmxh
eUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZSZWQscmVm
IGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHBmUmVkID0gMDsKLSAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7Ci0gICAgICAgICAgICAgIHBm
Qmx1ZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdyZWVuLHJl
ZiBwZkJsdWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsZmxvYXQgZkFscGhhKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxmQWxw
aGEpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
cmVmIGZsb2F0IHBmQWxwaGEpCi0gICAgICAgewotICAgICAgICAgICAgICBwZkFscGhhID0gMDsK
LSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxBc3BlY3Qp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVjdCk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBmVGV4ZWxB
c3BlY3QgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVsQXNwZWN0
KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSx1aW50IHVuU29ydE9yZGVyKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlIYW5kbGUs
dW5Tb3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxP
dmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHB1blNvcnRPcmRlciA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5T
b3J0T3JkZXIpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0aEluTWV0
ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZldpZHRo
SW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMgPSAwOwot
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1heERpc3Rh
bmNlSW5NZXRlcnMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKHVs
T3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1ldGVycyk7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYg
ZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGZN
aW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKLSAgICAgICAgICAgICAgcGZNYXhEaXN0YW5jZUluTWV0
ZXJzID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUs
cmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlQ29s
b3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBF
Q29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVDb2xvclNw
YWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUlRl
eHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVyZUJv
dW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFu
c2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBw
bWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNraW5n
T3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdp
blRvT3ZlcmxheVRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bE92ZXJs
YXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRvT3Zl
cmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWRE
ZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWREZXZpY2Us
cmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSx1
blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRNYXRy
aXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNl
UmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJh
Y2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQg
dW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUcmFuc2Zv
cm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUluZGV4LHBj
aENvbXBvbmVudE5hbWUpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2Vk
RGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5EZXZpY2VJ
bmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNpemUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5kZXgscGNo
Q29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTaG93T3Zl
cmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkhpZGVP
dmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRUcmFu
c2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJ
bk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2luLGNvb3Jk
aW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVybGF5RXZl
bnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5jYlZS
RXZlbnQpCi0gICAgICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUG9s
bE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCi0gICAgICAgewotICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW5w
dXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92ZXJsYXlI
YW5kbGUsZUlucHV0TWV0aG9kKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2FsZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2NhbGUodWxP
dmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFy
YW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1bHRz
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVP
dmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYgcFJlc3Vs
dHMpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVyT3Zlcmxh
eUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRhcmdldE92
ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXkoKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1lcGFkRm9j
dXNPdmVybGF5KCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9uZyB1
bE5ld0ZvY3VzT3ZlcmxheSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1c092ZXJs
YXkpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBl
RGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdoYm9yKGVE
aXJlY3Rpb24sdWxGcm9tLHVsVG8pOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNUb05l
aWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOwotICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90IHBUZXh0
dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVyZSk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCi0g
ICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5D
bGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5XaWR0
aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVybGF5SGFu
ZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7Ci0gICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmlsZVBhdGgp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEludFB0
ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVmIHVpbnQg
cFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYgRVRleHR1
cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJUZXh0dXJl
Qm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCi0gICAgICAgewotICAgICAgICAgICAgICBwV2lkdGgg
PSAwOwotICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKLSAgICAgICAgICAgICAgcE5hdGl2ZUZv
cm1hdCA9IDA7Ci0gICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1cmVIYW5k
bGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5hdGl2ZUZv
cm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5kcyk7Ci0g
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVybGF5SGFu
ZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwV2lk
dGgscmVmIHVpbnQgcEhlaWdodCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBXaWR0aCA9IDA7
Ci0gICAgICAgICAgICAgIHBIZWlnaHQgPSAwOwotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5SGFuZGxl
LHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92
ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUs
cmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOwotICAgICAgICAgICAgICBwVGh1bWJu
YWlsSGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlGcmll
bmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNEYXNo
Ym9hcmRWaXNpYmxlKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOwotICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERhc2hib2Fy
ZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blBy
b2Nlc3NJZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7Ci0gICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hib2FyZE92
ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBT
aG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOwotICAgICAgIH0K
LSAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFzaGJvYXJk
RGV2aWNlKCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLGludCBl
TGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3RyaW5n
IHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVlKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRpb24sdW5D
aGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsaW50
IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlvbix1aW50
IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxNb2RlLHVs
b25nIHVVc2VyVmFsdWUpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSxl
SW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hFeGlz
dGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOwotICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2FyZFRleHQo
U3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRleHQocGNo
VGV4dCxjY2hUZXh0KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0g
ICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IEZuVGFibGUuSGlkZUtleWJvYXJkKCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB2b2lkIFNl
dEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNr
aW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRU
cmFuc2Zvcm0pCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJvYXJkVHJh
bnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tl
eWJvYXJkVHJhbnNmb3JtKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0S2V5Ym9h
cmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3QyX3QgYXZv
aWRSZWN0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2FyZFBvc2l0
aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKLSAgICAgICB9Ci0gICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVf
dCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5QcmltaXRp
dmVTaXplKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxlLHJlZiBw
TWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUpOwotICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQg
cEZsYWdzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcEZsYWdzID0gMDsKLSAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdzKHVsT3Zl
cmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICB9Ci0gICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVzc2Fn
ZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBjaEJ1dHRv
bjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQsc3RyaW5n
IHBjaEJ1dHRvbjNUZXh0KQotICAgICAgIHsKLSAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRleHQscGNo
Q2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4dCxwY2hC
dXR0b24zVGV4dCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotfQot
Ci0KLXB1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKLXsKLSAgICAgICBJVlJSZW5kZXJNb2Rl
bHMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRyIHBJbnRl
cmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRlck1vZGVs
cylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5kZXJNb2Rl
bHMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFJl
bmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0ciBwcFJl
bmRlck1vZGVsKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2RlbE5hbWUs
cmVmIHBwUmVuZGVyTW9kZWwpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
IH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJNb2Rl
bCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVsKHBSZW5k
ZXJNb2RlbCk7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExv
YWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUpCi0gICAg
ICAgewotICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZuVGFibGUu
TG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOwotICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVy
ZShJbnRQdHIgcFRleHR1cmUpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLkZyZWVU
ZXh0dXJlKHBUZXh0dXJlKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVs
RXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRDNEMTFE
ZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlRDNEMTFf
QXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7Ci0gICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJSZW5k
ZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsSW50
UHRyIHBEc3RUZXh0dXJlKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxF
cnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1cmVJ
ZCxwRHN0VGV4dHVyZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQot
ICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1cmUy
RCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0QxMShwRDNE
MTFUZXh0dXJlMkQpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2Rl
bE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBw
Y2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5hbWUodW5S
ZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFtZUxlbik7
Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1
aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50Q291
bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2RlbE5hbWUp
OwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMg
dWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1bkNv
bXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSx1
aW50IHVuQ29tcG9uZW50TmFtZUxlbikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1bkNvbXBv
bmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVsb25nIEdldENv
bXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29t
cG9uZW50TmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFi
bGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50
TmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1
YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVyTW9k
ZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5h
bWVMZW4pCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnRO
YW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFt
ZUxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotLy8gVGhpcyBp
cyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxl
clN0YXRlX3Qgd2FzCi0vLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBw
YWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgotICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCi0gICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgcENv
bnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3Rh
dGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKLSAg
ICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQotICAgICAgIHN0cnVjdCBH
ZXRDb21wb25lbnRTdGF0ZVVuaW9uCi0gICAgICAgewotICAgICAgICAgICAgICBbRmllbGRPZmZz
ZXQoMCldCi0gICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENvbXBvbmVu
dFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKLSAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XQotICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBHZXRDb21w
b25lbnRTdGF0ZVBhY2tlZDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgR2V0Q29tcG9u
ZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFt
ZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5kZXJNb2Rl
bF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKFN5
c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQu
TWFjT1NYKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1l
bnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVuaW9uIHU7
Ci0gICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBzdGF0ZV9w
YWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRTdGF0ZTsK
LSAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENvbXBvbmVu
dFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBzdGF0
ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLQotICAgICAgICAgICAg
ICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3RhdGUocGNo
UmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3RhdGUscmVm
IHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21wb25lbnQo
c3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2RlbEhhc0Nv
bXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7Ci0gICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyB1aW50IEdldFJlbmRl
ck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExlbixyZWYg
RVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJlbmRlck1v
ZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJyb3IpOwot
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgdWlu
dCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5PcmlnaW5hbFBh
dGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChw
Y2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVuLHJlZiBw
ZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAg
cHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRlck1v
ZGVsRXJyb3IgZXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKLSAgICAgICAg
ICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Ci0gICAgICAgfQot
fQotCi0KLXB1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCi17Ci0gICAgICAgSVZSTm90aWZp
Y2F0aW9ucyBGblRhYmxlOwotICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMoSW50UHRy
IHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElWUk5vdGlm
aWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSTm90
aWZpY2F0aW9ucykpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0aW9uRXJy
b3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1bFVzZXJW
YWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90aWZpY2F0
aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYgdWludCBw
Tm90aWZpY2F0aW9uSWQpCi0gICAgICAgewotICAgICAgICAgICAgICBwTm90aWZpY2F0aW9uSWQg
PSAwOwotICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxl
LkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlwZSxwY2hU
ZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7Ci0gICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJOb3RpZmljYXRpb25F
cnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVtb3Zl
Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICB9Ci19Ci0KLQotcHVibGljIGNsYXNzIENWUlNldHRpbmdzCi17Ci0gICAgICAg
SVZSU2V0dGluZ3MgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJbnRQdHIg
cEludGVyZmFjZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2V0dGlu
Z3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0dGluZ3Mp
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9yTmFtZUZy
b21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
SW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShlRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxyZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChzdHJpbmcg
cGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUuU2V0Qm9v
bChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBw
Y2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCi0g
ICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24scGNoU2V0
dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZv
aWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGZsb2F0
IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxmbFZhbHVl
LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgU2V0U3RyaW5nKHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFsdWUscmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFi
bGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVmIHBlRXJy
b3IpOwotICAgICAgIH0KLSAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBwY2hTZWN0
aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQot
ICAgICAgIHsKLSAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2wocGNo
U2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7Ci0gICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3RyaW5nIHBj
aFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCi0gICAgICAgewotICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJbnQz
MihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIGZsb2F0IEdldEZsb2F0KHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJv
ciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgR2V0
U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRm5UYWJsZS5HZXRTdHJpbmco
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBwZUVycm9y
KTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJpbmcgcGNo
U2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQotICAgICAgIHsKLSAgICAgICAg
ICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3IpOwotICAg
ICAgIH0KLSAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBjaFNl
Y3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
Ci0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlvbihwY2hT
ZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKLSAgICAgICB9Ci19Ci0KLQotcHVi
bGljIGNsYXNzIENWUlNjcmVlbnNob3RzCi17Ci0gICAgICAgSVZSU2NyZWVuc2hvdHMgRm5UYWJs
ZTsKLSAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFjZSkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFyc2hhbC5Q
dHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsKLSAgICAg
ICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hvdChy
ZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0cmlu
ZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCi0gICAgICAgewotICAg
ICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7Ci0gICAgICAgICAgICAgIEVWUlNj
cmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJlZiBwT3V0
U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsK
LSAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVW
UlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBbXSBwU3Vw
cG9ydGVkVHlwZXMpCi0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGludCkgcFN1
cHBvcnRlZFR5cGVzLkxlbmd0aCk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90UHJvcGVy
dHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJv
cikKLSAgICAgICB7Ci0gICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3VsdCA9IEZu
VGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJlZiBwRXJy
b3IpOwotICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgIH0KLSAgICAgICBwdWJs
aWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNob3RIYW5k
bGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVWUlNjcmVl
bnNob3RFcnJvciBwRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9
IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhhbmRsZSxm
aWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7Ci0gICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgfQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5z
aG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxm
bG9hdCBmbFByb2dyZXNzKQotICAgICAgIHsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVlbnNob3RI
YW5kbGUsZmxQcm9ncmVzcyk7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
fQotICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNob3Qo
cmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFtZSxz
dHJpbmcgcGNoVlJGaWxlbmFtZSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHBPdXRTY3JlZW5z
aG90SGFuZGxlID0gMDsKLSAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9
IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFuZGxlLHBj
aFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBTdWJtaXRT
Y3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0
cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5hbWUp
Ci0gICAgICAgewotICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3VyY2VQcmV2
aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7Ci0gICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMKLXsKLSAg
ICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKLSAgICAgICBpbnRlcm5hbCBDVlJSZXNvdXJjZXMo
SW50UHRyIHBJbnRlcmZhY2UpCi0gICAgICAgewotICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJS
ZXNvdXJjZXMpKTsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJlZFJlc291
cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVuQnVmZmVy
TGVuKQotICAgICAgIHsKLSAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkxvYWRT
aGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVuKTsKLSAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICB9Ci0gICAgICAgcHVibGljIHVpbnQg
R2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hSZXNv
dXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZlckxlbikK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZXNvdXJj
ZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkscGNoUGF0
aEJ1ZmZlcix1bkJ1ZmZlckxlbik7Ci0gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgfQotfQotCi0KLXB1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCi17Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdEludGVybmFs
IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAg
aW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICBb
RGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9TaHV0ZG93
bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCld
Ci0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJuYWwoKTsK
LSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJW
Ul9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNk
ZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVzZW50KCk7
Ci0gICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAi
VlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzUnVudGlt
ZUluc3RhbGxlZCgpOwotICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBF
bnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsKLSAgICAg
ICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5D
ZGVjbCldCi0gICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2VuZXJpY0lu
dGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5nIHBjaElu
dGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7Ci0gICAgICAgW0RsbElt
cG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNkZWNs
KV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9u
VmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBwY2hJbnRl
cmZhY2VWZXJzaW9uKTsKLSAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwg
RW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxp
bmdDb252ZW50aW9uLkNkZWNsKV0KLSAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIHVpbnQg
R2V0SW5pdFRva2VuKCk7Ci19Ci0KLQotcHVibGljIGVudW0gRVZSRXllCi17Ci0gICAgICAgRXll
X0xlZnQgPSAwLAotICAgICAgIEV5ZV9SaWdodCA9IDEsCi19Ci1wdWJsaWMgZW51bSBFVGV4dHVy
ZVR5cGUKLXsKLSAgICAgICBEaXJlY3RYID0gMCwKLSAgICAgICBPcGVuR0wgPSAxLAotICAgICAg
IFZ1bGthbiA9IDIsCi0gICAgICAgSU9TdXJmYWNlID0gMywKLSAgICAgICBEaXJlY3RYMTIgPSA0
LAotfQotcHVibGljIGVudW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBBdXRvID0gMCwKLSAgICAg
ICBHYW1tYSA9IDEsCi0gICAgICAgTGluZWFyID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2lu
Z1Jlc3VsdAotewotICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAotICAgICAgIENhbGlicmF0aW5n
X0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEwMSwK
LSAgICAgICBSdW5uaW5nX09LID0gMjAwLAotICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5nZSA9IDIw
MSwKLX0KLXB1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKLXsKLSAgICAgICBJbnZhbGlk
ID0gMCwKLSAgICAgICBITUQgPSAxLAotICAgICAgIENvbnRyb2xsZXIgPSAyLAotICAgICAgIEdl
bmVyaWNUcmFja2VyID0gMywKLSAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCi19Ci1wdWJs
aWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCi17Ci0gICAgICAgSW52YWxpZCA9IDAsCi0g
ICAgICAgTGVmdEhhbmQgPSAxLAotICAgICAgIFJpZ2h0SGFuZCA9IDIsCi19Ci1wdWJsaWMgZW51
bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgotewotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTZWF0
ZWQgPSAwLAotICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCi0gICAgICAgVHJh
Y2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFVHJh
Y2tlZERldmljZVByb3BlcnR5Ci17Ci0gICAgICAgUHJvcF9JbnZhbGlkID0gMCwKLSAgICAgICBQ
cm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAotICAgICAgIFByb3BfTW9kZWxO
dW1iZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAx
MDAyLAotICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCi0gICAgICAg
UHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nID0gMTAwNSwKLSAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9u
X1N0cmluZyA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyA9IDEw
MDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAx
MDA4LAotICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0gMTAwOSwK
LSAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgUHJvcF9E
ZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAotICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBl
cmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAotICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9y
bV9NYXRyaXgzNCA9IDEwMTMsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVf
Qm9vbCA9IDEwMTQsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEw
MTUsCi0gICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKLSAgICAgICBQcm9w
X0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAotICAgICAgIFByb3BfRlBHQVZlcnNpb25f
VWludDY0ID0gMTAxOSwKLSAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKLSAg
ICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAotICAgICAgIFByb3BfRG9uZ2xl
VmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9C
b29sID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCA9IDEwMjQsCi0gICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0g
MTAyNSwKLSAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAy
NiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAotICAgICAgIFBy
b3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBQcm9w
X0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKLSAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29sID0g
MTAzMCwKLSAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAgICBQ
cm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCi0gICAgICAgUHJv
cF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCi0gICAgICAgUHJvcF9Q
YXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2luY2VW
U3luY19Cb29sID0gMjAwMCwKLSAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNf
RmxvYXQgPSAyMDAxLAotICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIs
Ci0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKLSAgICAgICBQcm9wX0N1
cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCi0gICAgICAgUHJvcF9QcmV2aW91c1VuaXZl
cnNlSWRfVWludDY0ID0gMjAwNSwKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25f
VWludDY0ID0gMjAwNiwKLSAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAotICAg
ICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQg
PSAyMDEwLAotICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAgICAgICBQ
cm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAotICAgICAgIFByb3BfRGlzcGxh
eU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAotICAgICAgIFByb3BfRGlzcGxheUdDQmxhY2tD
bGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAx
NSwKLSAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKLSAgICAgICBQcm9wX0Rpc3Bs
YXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCi0gICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9h
dCA9IDIwMTksCi0gICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0g
ICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAotICAgICAgIFByb3BfTGVu
c0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9G
bG9hdCA9IDIwMjMsCi0gICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAyNCwK
LSAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAotICAgICAgIFByb3Bf
VXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdh
cmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAotICAgICAgIFByb3BfRGlzcGxheUZQR0FWZXJz
aW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25f
VWludDY0ID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0
ID0gMjAzMSwKLSAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIs
Ci0gICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCi0gICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIwMzYsCi0g
ICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlN
Q0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVt
Q2hhbm5lbHNfSW50MzIgPSAyMDQwLAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0Jp
bmFyeSA9IDIwNDEsCi0gICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0
MiwKLSAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKLSAgICAgICBQ
cm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlw
ZV9JbnQzMiA9IDMwMDIsCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAotICAg
ICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKLSAgICAgICBQcm9wX0F4aXMzVHlwZV9J
bnQzMiA9IDMwMDUsCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAotICAgICAg
IFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBQcm9wX0ZpZWxk
T2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdS
aWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdy
ZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19G
bG9hdCA9IDQwMDMsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9h
dCA9IDQwMDQsCi0gICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCA9
IDQwMDUsCi0gICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKLSAgICAgICBQcm9w
X0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ19TdHJpbmcgPSA1MDAyLAotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNl
YXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
Tm90UmVhZHlfU3RyaW5nID0gNTAwNiwKLSAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyA9IDUwMDcsCi0gICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxl
cnRMb3dfU3RyaW5nID0gNTAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9TdGFydCA9IDUxMDAsCi0gICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5k
ID0gNTE1MCwKLSAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCi0gICAg
ICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAotICAgICAgIFByb3BfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCA9IDEwOTk5LAotfQotcHVibGljIGVudW0gRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCi0gICAgICAgVHJhY2tlZFBy
b3BfV3JvbmdEYXRhVHlwZSA9IDEsCi0gICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFz
cyA9IDIsCi0gICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIFRy
YWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCi0gICAgICAgVHJhY2tlZFByb3BfSW52YWxp
ZERldmljZSA9IDUsCi0gICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0g
NiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAotICAg
ICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKLSAgICAgICBU
cmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIFRyYWNrZWRQcm9wX1Blcm1p
c3Npb25EZW5pZWQgPSAxMCwKLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0g
MTEsCi19Ci1wdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncwotewotICAgICAgIFN1Ym1pdF9EZWZh
dWx0ID0gMCwKLSAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDEs
Ci0gICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKLSAgICAgICBTdWJtaXRfUmVzZXJ2
ZWQgPSA0LAotfQotcHVibGljIGVudW0gRVZSU3RhdGUKLXsKLSAgICAgICBVbmRlZmluZWQgPSAt
MSwKLSAgICAgICBPZmYgPSAwLAotICAgICAgIFNlYXJjaGluZyA9IDEsCi0gICAgICAgU2VhcmNo
aW5nX0FsZXJ0ID0gMiwKLSAgICAgICBSZWFkeSA9IDMsCi0gICAgICAgUmVhZHlfQWxlcnQgPSA0
LAotICAgICAgIE5vdFJlYWR5ID0gNSwKLSAgICAgICBTdGFuZGJ5ID0gNiwKLSAgICAgICBSZWFk
eV9BbGVydF9Mb3cgPSA3LAotfQotcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAg
VlJFdmVudF9Ob25lID0gMCwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
PSAxMDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAxMDEsCi0g
ICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKLSAgICAgICBWUkV2ZW50
X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIFZSRXZl
bnRfSXBkQ2hhbmdlZCA9IDEwNSwKLSAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgPSAx
MDYsCi0gICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAotICAgICAgIFZSRXZlbnRfV2F0Y2hk
b2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCi0gICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNo
YW5nZWQgPSAxMTAsCi0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCi0gICAg
ICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKLSAgICAgICBWUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKLSAgICAgICBWUkV2
ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCi0gICAgICAgVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAs
Ci0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCi0gICAgICAgVlJFdmVudF9N
b3VzZUJ1dHRvblVwID0gMzAyLAotICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMwMywKLSAg
ICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCi0gICAgICAgVlJFdmVudF9TY3JvbGwgPSAz
MDUsCi0gICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1
cmVkID0gNDAwLAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAg
ICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCi0gICAgICAgVlJFdmVudF9TY2VuZUZv
Y3VzR2FpbmVkID0gNDAzLAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQg
PSA0MDQsCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKLSAgICAgICBW
UkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAotICAgICAgIFZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgVlJFdmVudF9I
aWRlUmVuZGVyTW9kZWxzID0gNDEwLAotICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9
IDQxMSwKLSAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBWUkV2ZW50
X092ZXJsYXlIaWRkZW4gPSA1MDEsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQg
PSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAg
ICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCi0gICAgICAgVlJFdmVudF9E
YXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCi0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCA9
IDUwNiwKLSAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAotICAgICAgIFZSRXZlbnRf
SW1hZ2VMb2FkZWQgPSA1MDgsCi0gICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0g
ICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5
R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRG
b2N1c0xvc3QgPSA1MTIsCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5n
ZWQgPSA1MTMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQs
Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAotICAgICAgIFZS
RXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKLSAgICAgICBWUkV2ZW50X0ltYWdlRmFp
bGVkID0gNTE3LAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgs
Ci0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKLSAgICAgICBWUkV2ZW50
X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQg
PSA1MjIsCi0gICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1MjMs
Ci0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKLSAg
ICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAotICAgICAg
IFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAotICAgICAgIFZSRXZlbnRfTm90aWZp
Y2F0aW9uX0hpZGRlbiA9IDYwMSwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbklu
dGVyYWN0aW9uID0gNjAyLAotICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCA9
IDYwMywKLSAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCi0gICAgICAgVlJFdmVudF9Qcm9jZXNz
UXVpdCA9IDcwMSwKLSAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3MDIs
Ci0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAotICAgICAgIFZSRXZlbnRf
RHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFI
YXNDaGFuZ2VkID0gODAwLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgwMywK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgVlJFdmVudF9CYWNrZ3Jv
dW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCi0gICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5n
c0hhdmVDaGFuZ2VkID0gODUxLAotICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hh
c0NoYW5nZWQgPSA4NTIsCi0gICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODUzLAotICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2Vk
ID0gODU0LAotICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1LAot
ICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAotICAgICAgIFZSRXZlbnRfTUNJbWFn
ZVVwZGF0ZWQgPSAxMDAwLAotICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0g
MTEwMCwKLSAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAotICAg
ICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9h
cmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwK
LSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAotICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKLSAgICAg
ICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAotICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRp
b25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAotICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCi0gICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0
b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKLSAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9S
ZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCi0gICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX0Vk
aXRpbmdTdXJmYWNlID0gMTU1MCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFi
bGVDYXB0dXJlID0gMTYwMCwKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxl
Q2FwdHVyZSA9IDE2MDEsCi0gICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlM
ZXZlbCA9IDE2MDIsCi0gICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUw
LAotICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwK
LSAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAotfQot
cHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lk
bGUgPSAwLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0g
MSwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1lb3V0
ID0gMiwKLSAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfQotcHVi
bGljIGVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtID0gMCwKLSAg
ICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKLSAgICAgICBrX0VCdXR0b25fR3Jp
cCA9IDIsCi0gICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCi0gICAgICAga19FQnV0dG9u
X0RQYWRfVXAgPSA0LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKLSAgICAgICBr
X0VCdXR0b25fRFBhZF9Eb3duID0gNiwKLSAgICAgICBrX0VCdXR0b25fQSA9IDcsCi0gICAgICAg
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMCA9
IDMyLAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9BeGlz
MiA9IDM0LAotICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAotICAgICAgIGtfRUJ1dHRvbl9B
eGlzNCA9IDM2LAotICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIsCi0gICAg
ICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayA9IDIsCi0gICAgICAga19FQnV0dG9uX01heCA9IDY0LAotfQotcHVibGljIGVu
dW0gRVZSTW91c2VCdXR0b24KLXsKLSAgICAgICBMZWZ0ID0gMSwKLSAgICAgICBSaWdodCA9IDIs
Ci0gICAgICAgTWlkZGxlID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUK
LXsKLSAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlk
ZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCi19Ci1wdWJsaWMgZW51
bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLXsKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25l
ID0gMCwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCi0gICAgICAga19l
Q29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1Ry
aWdnZXIgPSAzLAotfQotcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQot
ewotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCi0gICAgICAgQ29u
dHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0KLXB1YmxpYyBlbnVtIEVDb2xsaXNp
b25Cb3VuZHNTdHlsZQotewotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIg
PSAwLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwKLSAg
ICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAotICAgICAgIENPTExJU0lP
Tl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZ
TEVfTk9ORSA9IDQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19
Ci1wdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAg
ICBVbmtub3duT3ZlcmxheSA9IDEwLAotICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwKLSAgICAg
ICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgT3ZlcmxheUxpbWl0RXhjZWVkZWQgPSAx
MywKLSAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCi0gICAgICAgS2V5VG9vTG9uZyA9
IDE1LAotICAgICAgIE5hbWVUb29Mb25nID0gMTYsCi0gICAgICAgS2V5SW5Vc2UgPSAxNywKLSAg
ICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKLSAgICAgICBJbnZhbGlkVHJhY2tlZERldmlj
ZSA9IDE5LAotICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKLSAgICAgICBUaHVtYm5haWxD
YW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDIzLAotICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAg
VW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAotICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNlID0gMjYs
Ci0gICAgICAgTm9OZWlnaGJvciA9IDI3LAotICAgICAgIFRvb01hbnlNYXNrUHJpbWl0aXZlcyA9
IDI5LAotICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkFw
cGxpY2F0aW9uVHlwZQotewotICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAotICAgICAg
IFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAotICAgICAgIFZSQXBwbGljYXRpb25fT3ZlcmxheSA9
IDIsCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKLSAgICAgICBWUkFwcGxp
Y2F0aW9uX1V0aWxpdHkgPSA0LAotICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwK
LSAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAotICAgICAgIFZSQXBwbGlj
YXRpb25fTWF4ID0gNywKLX0KLXB1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKLXsKLSAgICAg
ICBOb25lID0gMCwKLSAgICAgICBTdWNjZXNzID0gMSwKLSAgICAgICBGYWlsID0gMiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCi17Ci0gICAgICAgT0sgPSAwLAotICAgICAg
IEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAgICBOb3RpZmljYXRpb25RdWV1ZUZ1
bGwgPSAxMDEsCi0gICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCi0gICAgICAgU3lz
dGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCi19Ci1wdWJsaWMgZW51bSBFVlJJ
bml0RXJyb3IKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBVbmtub3duID0gMSwKLSAgICAg
ICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAotICAgICAgIEluaXRfSW5zdGFsbGF0
aW9uQ29ycnVwdCA9IDEwMSwKLSAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgPSAxMDIs
Ci0gICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCi0gICAgICAgSW5pdF9GYWN0b3J5Tm90
Rm91bmQgPSAxMDQsCi0gICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAg
ICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCi0gICAgICAgSW5pdF9Vc2VyQ29uZmlnRGly
ZWN0b3J5SW52YWxpZCA9IDEwNywKLSAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAg
ICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCi0gICAgICAgSW5pdF9QYXRoUmVnaXN0cnlO
b3RGb3VuZCA9IDExMCwKLSAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKLSAgICAgICBJ
bml0X05vTG9nUGF0aCA9IDExMiwKLSAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxl
ID0gMTEzLAotICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgSW5p
dF9SZXRyeSA9IDExNSwKLSAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwKLSAg
ICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgSW5pdF9TZXR0aW5n
c0luaXRGYWlsZWQgPSAxMTgsCi0gICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCi0gICAg
ICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBJbml0X05vU2VydmVyRm9yQmFj
a2dyb3VuZEFwcCA9IDEyMSwKLSAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9y
ID0gMTIyLAotICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAg
ICAgICBJbml0X0ludGVybmFsID0gMTI0LAotICAgICAgIEluaXRfSG1kRHJpdmVySWRJc05vbmUg
PSAxMjUsCi0gICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAg
ICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCi0gICAgICAgSW5pdF9WUk1vbml0b3JT
dGFydHVwRmFpbGVkID0gMTI4LAotICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBv
cnRlZCA9IDEyOSwKLSAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCi0g
ICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKLSAgICAgICBJbml0
X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAotICAgICAgIEluaXRfVlJEYXNoYm9h
cmROb3RGb3VuZCA9IDEzMywKLSAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCA9
IDEzNCwKLSAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIERyaXZlcl9Vbmtub3du
ID0gMjAxLAotICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAotICAgICAgIERyaXZlcl9O
b3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCi0g
ICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAotICAgICAgIERyaXZlcl9Ob3RDYWxpYnJhdGVk
ID0gMjA2LAotICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCi0gICAgICAg
RHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKLSAgICAgICBEcml2ZXJfVHJhY2tlZERl
dmljZUludGVyZmFjZVVua25vd24gPSAyMDksCi0gICAgICAgRHJpdmVyX0htZERyaXZlcklkT3V0
T2ZCb3VuZHMgPSAyMTEsCi0gICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwK
LSAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBJUENfQ29ubmVjdEZh
aWxlZCA9IDMwMSwKLSAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAotICAg
ICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKLSAgICAgICBJUENfTXV0ZXhJbml0
RmFpbGVkID0gMzA0LAotICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCi0gICAgICAgSVBDX0NvbXBv
c2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAotICAgICAgIElQQ19Db21wb3NpdG9ySW52YWxpZENv
bm5lY3RSZXNwb25zZSA9IDMwNywKLSAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlw
bGVBdHRlbXB0cyA9IDMwOCwKLSAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKLSAgICAgICBDb21wb3Np
dG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCi0gICAgICAgQ29tcG9zaXRvcl9PdmVy
bGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZh
aWxlZCA9IDQwNCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1
c1J1bnRpbWUgPSAxMDAwLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVu
RGV2aWNlID0gMTEwMSwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1Jl
cXVlc3RDb25maWdTdGFydCA9IDExMDIsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Tm9TdG9yZWRDb25maWcgPSAxMTAzLAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb0JpZyA9IDExMDQsCi0gICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vU21hbGwgPSAxMTA1LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
SW5pdFpMaWIgPSAxMTA2LAotICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFk
RmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKLSAgICAgICBWZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAotICAgICAgIFZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBW
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCi0gICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCi0gICAgICAg
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAot
ICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAotfQotcHVibGlj
IGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKLXsKLSAgICAgICBOb25lID0gMCwKLSAgICAgICBNb25v
ID0gMSwKLSAgICAgICBTdGVyZW8gPSAyLAotICAgICAgIEN1YmVtYXAgPSAzLAotICAgICAgIE1v
bm9QYW5vcmFtYSA9IDQsCi0gICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAotfQotcHVibGljIGVu
dW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCi17Ci0gICAgICAgUHJldmlldyA9IDAs
Ci0gICAgICAgVlIgPSAxLAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17
Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAotICAgICAg
IEludmFsaWRIYW5kbGUgPSAxMDEsCi0gICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9
IDEwMiwKLSAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCi0gICAgICAgSVBDRmFpbHVyZSA9IDEw
NCwKLSAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIFNoYXJl
ZE1lbW9yeUZhaWx1cmUgPSAxMDYsCi0gICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJlID0gMTA3
LAotICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBJbnZhbGlkR0xUZXh0
dXJlSWQgPSAxMDksCi0gICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCi0g
ICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAgICBTaGFyZWRUZXh0dXJl
RmFpbHVyZSA9IDExMiwKLSAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAotICAgICAgIElu
dmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXplID0gMTE1
LAotfQotcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIERp
c3RvcnRlZCA9IDAsCi0gICAgICAgVW5kaXN0b3J0ZWQgPSAxLAotICAgICAgIE1heGltdW1VbmRp
c3RvcnRlZCA9IDIsCi0gICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCi19Ci1wdWJs
aWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
QXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKLSAgICAgICBOb01hbmlmZXN0ID0gMTAxLAotICAg
ICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCi0gICAgICAgSW52YWxpZEluZGV4ID0gMTAzLAotICAg
ICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKLSAgICAgICBJUENGYWlsZWQgPSAxMDUsCi0g
ICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKLSAgICAgICBJbnZhbGlkTWFu
aWZlc3QgPSAxMDcsCi0gICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAotICAgICAgIExh
dW5jaEZhaWxlZCA9IDEwOSwKLSAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDEx
MCwKLSAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAotICAgICAgIE9sZEFwcGxpY2F0aW9u
UXVpdHRpbmcgPSAxMTIsCi0gICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCi0gICAgICAg
SXNUZW1wbGF0ZSA9IDExNCwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKLSAgICAgICBQ
cm9wZXJ0eU5vdFNldCA9IDIwMSwKLSAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIsCi0gICAg
ICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKLX0KLXB1YmxpYyBlbnVtIEVWUkFwcGxpY2F0aW9u
UHJvcGVydHkKLXsKLSAgICAgICBOYW1lX1N0cmluZyA9IDAsCi0gICAgICAgTGF1bmNoVHlwZV9T
dHJpbmcgPSAxMSwKLSAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAotICAgICAg
IEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCi0gICAgICAgQXJndW1lbnRzX1N0cmluZyA9IDE0LAot
ICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKLSAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwK
LSAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAotICAgICAgIEltYWdlUGF0aF9TdHJpbmcgPSA1
MiwKLSAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCi0gICAgICAgSXNEYXNoYm9hcmRPdmVybGF5
X0Jvb2wgPSA2MCwKLSAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKLSAgICAgICBJc0luc3Rh
bmNlZF9Cb29sID0gNjIsCi0gICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCi0gICAgICAgTGFz
dExhdW5jaFRpbWVfVWludDY0ID0gNzAsCi19Ci1wdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25TdGF0ZQotewotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAw
LAotICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCi0g
ICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0g
MTEsCi0gICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwK
LX0KLXB1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBPSyA9
IDEsCi0gICAgICAgV2FybmluZyA9IDEwMCwKLSAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9uTWF5
SGF2ZU1vdmVkID0gMTAxLAotICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0gMTAy
LAotICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKLSAgICAgICBFcnJv
ciA9IDIwMCwKLSAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCi0g
ICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKLSAgICAgICBFcnJvcl9QbGF5
QXJlYUludmFsaWQgPSAyMDMsCi0gICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9
IDIwNCwKLX0KLXB1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCi17Ci0gICAgICAgTGl2
ZSA9IDEsCi0gICAgICAgVGVtcCA9IDIsCi19Ci1wdWJsaWMgZW51bSBFQ2hhcGVyb25lSW1wb3J0
RmxhZ3MKLXsKLSAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAotfQotcHVi
bGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAg
UmVxdWVzdEZhaWxlZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAg
ICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKLSAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDEwMiwK
LSAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCi0gICAgICAgVGV4dHVyZUlzT25X
cm9uZ0RldmljZSA9IDEwNCwKLSAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0g
MTA1LAotICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAotICAgICAgIElu
ZGV4T3V0T2ZSYW5nZSA9IDEwNywKLSAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4LAotfQot
cHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKLXsKLSAgICAgICBOb25lID0gMCwKLSAg
ICAgICBNb3VzZSA9IDEsCi19Ci1wdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlCi17
Ci0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKLSAgICAgICBWUk92ZXJs
YXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBWUk92ZXJsYXlU
cmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1Ry
YWNrZWRDb21wb25lbnQgPSAzLAotfQotcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MKLXsKLSAg
ICAgICBOb25lID0gMCwKLSAgICAgICBDdXJ2ZWQgPSAxLAotICAgICAgIFJHU1M0WCA9IDIsCi0g
ICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAotICAgICAgIEFjY2VwdHNHYW1lcGFkRXZlbnRzID0g
NCwKLSAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKLSAgICAgICBTZW5kVlJTY3JvbGxFdmVu
dHMgPSA2LAotICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKLSAgICAgICBTaG93VG91
Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCi0gICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0ludGVybmFs
UHJvY2VzcyA9IDksCi0gICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAotICAgICAgIFNp
ZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAotICAgICAgIFBhbm9yYW1hID0gMTIsCi0gICAgICAgU3Rl
cmVvUGFub3JhbWEgPSAxMywKLSAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwK
LSAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKLX0KLXB1YmxpYyBlbnVtIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZQotewotICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAotICAgICAgIEJ1
dHRvblByZXNzXzEgPSAxLAotICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAotICAgICAgIEJ1dHRv
blByZXNzXzMgPSAzLAotICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQsCi0gICAg
ICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAotICAgICAgIEFwcGxpY2F0
aW9uUXVpdCA9IDYsCi19Ci1wdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKLXsKLSAg
ICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAga19FR2FtZXBh
ZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCi0gICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1v
ZGVTdWJtaXQgPSAyLAotfQotcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQot
ewotICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAg
ICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAotfQotcHVi
bGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KLXsKLSAgICAgICBVcCA9IDAsCi0gICAgICAgRG93
biA9IDEsCi0gICAgICAgTGVmdCA9IDIsCi0gICAgICAgUmlnaHQgPSAzLAotICAgICAgIENvdW50
ID0gNCwKLX0KLXB1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
VHlwZQotewotICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rhbmds
ZSA9IDAsCi0gICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0g
MSwKLX0KLXB1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKLXsKLSAgICAgICBOb25lID0g
MCwKLSAgICAgICBMb2FkaW5nID0gMTAwLAotICAgICAgIE5vdFN1cHBvcnRlZCA9IDIwMCwKLSAg
ICAgICBJbnZhbGlkQXJnID0gMzAwLAotICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwKLSAgICAg
ICBOb1NoYXBlcyA9IDMwMiwKLSAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKLSAgICAgICBU
b29NYW55VmVydGljZXMgPSAzMDQsCi0gICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKLSAg
ICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKLSAgICAgICBOb3RFbm91Z2hOb3JtYWxzID0gMzA3
LAotICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKLSAgICAgICBJbnZhbGlkVGV4dHVy
ZSA9IDQwMCwKLX0KLXB1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Ci17Ci0gICAgICAg
SXNTdGF0aWMgPSAxLAotICAgICAgIElzVmlzaWJsZSA9IDIsCi0gICAgICAgSXNUb3VjaGVkID0g
NCwKLSAgICAgICBJc1ByZXNzZWQgPSA4LAotICAgICAgIElzU2Nyb2xsZWQgPSAxNiwKLX0KLXB1
YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKLXsKLSAgICAgICBUcmFuc2llbnQgPSAwLAot
ICAgICAgIFBlcnNpc3RlbnQgPSAxLAotICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZh
bHVlID0gMiwKLX0KLXB1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCi17Ci0gICAgICAg
Tm9uZSA9IDAsCi0gICAgICAgQXBwbGljYXRpb24gPSAxMDAsCi0gICAgICAgQ29udGFjdF9EaXNh
YmxlZCA9IDIwMCwKLSAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCi0gICAgICAgQ29udGFj
dF9BY3RpdmUgPSAyMDIsCi19Ci1wdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCi17Ci0gICAg
ICAgTm9uZSA9IDAsCi0gICAgICAgSVBDRmFpbGVkID0gMSwKLSAgICAgICBXcml0ZUZhaWxlZCA9
IDIsCi0gICAgICAgUmVhZEZhaWxlZCA9IDMsCi0gICAgICAgSnNvblBhcnNlRmFpbGVkID0gNCwK
LSAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAotfQotcHVibGljIGVudW0gRVZS
U2NyZWVuc2hvdEVycm9yCi17Ci0gICAgICAgTm9uZSA9IDAsCi0gICAgICAgUmVxdWVzdEZhaWxl
ZCA9IDEsCi0gICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBOb3RGb3Vu
ZCA9IDEwMSwKLSAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKLSAgICAgICBTY3JlZW5zaG90
QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCi19Ci0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5F
eHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092ZXJsYXlf
dCBvdmVybGF5OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU3RhdHVz
X3Qgc3RhdHVzOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfSXBkX3Qg
aXBkOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVyb25lX3Qg
Y2hhcGVyb25lOwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUGVyZm9y
bWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OwotICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVi
bGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOwotICAgICAgIFtGaWVsZE9m
ZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Q
b3NlUmVzZXQ7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JlZW5z
aG90X3Qgc2NyZWVuc2hvdDsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKLSAgICAgICBbRmllbGRP
ZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRpb25M
YXVuY2g7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0aW5nQ2Ft
ZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7Ci0gICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJs
aWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OwotICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8gVGhpcyBo
YXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZwotfQotCi0KLVtTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKLXsKLSAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1Ymxp
YyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7Ci0gICAgICAgW0ZpZWxk
T2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOwotfQot
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1k
TWF0cml4MzRfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0XQotICAg
ICAgIHB1YmxpYyBmbG9hdCBtMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTI7Ci0gICAgICAgcHVi
bGljIGZsb2F0IG0zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKLSAgICAgICBwdWJsaWMgZmxv
YXQgbTU7Ci0gICAgICAgcHVibGljIGZsb2F0IG02OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNzsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbTg7Ci0gICAgICAgcHVibGljIGZsb2F0IG05OwotICAgICAg
IHB1YmxpYyBmbG9hdCBtMTA7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMTsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRyaXg0NF90
Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCi0gICAgICAgcHVibGlj
IGZsb2F0IG0xOwotICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bTM7Ci0gICAgICAgcHVibGljIGZsb2F0IG00OwotICAgICAgIHB1YmxpYyBmbG9hdCBtNTsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbTY7Ci0gICAgICAgcHVibGljIGZsb2F0IG03OwotICAgICAgIHB1
YmxpYyBmbG9hdCBtODsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTk7Ci0gICAgICAgcHVibGljIGZs
b2F0IG0xMDsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTExOwotICAgICAgIHB1YmxpYyBmbG9hdCBt
MTI7Ci0gICAgICAgcHVibGljIGZsb2F0IG0xMzsKLSAgICAgICBwdWJsaWMgZmxvYXQgbTE0Owot
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Ci17Ci0gICAgICAgcHVibGljIGZs
b2F0IHYwOyAvL2Zsb2F0WzNdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotICAgICAgIHB1Ymxp
YyBmbG9hdCB2MjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgdjA7IC8vZmxv
YXRbNF0KLSAgICAgICBwdWJsaWMgZmxvYXQgdjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHYyOwot
ICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Ci17Ci0gICAgICAgcHVibGljIGRv
dWJsZSB2MDsgLy9kb3VibGVbM10KLSAgICAgICBwdWJsaWMgZG91YmxlIHYxOwotICAgICAgIHB1
YmxpYyBkb3VibGUgdjI7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHYwOyAv
L2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0IHYxOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAotewotICAg
ICAgIHB1YmxpYyBkb3VibGUgdzsKLSAgICAgICBwdWJsaWMgZG91YmxlIHg7Ci0gICAgICAgcHVi
bGljIGRvdWJsZSB5OwotICAgICAgIHB1YmxpYyBkb3VibGUgejsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAg
ICAgcHVibGljIGZsb2F0IHI7Ci0gICAgICAgcHVibGljIGZsb2F0IGc7Ci0gICAgICAgcHVibGlj
IGZsb2F0IGI7Ci0gICAgICAgcHVibGljIGZsb2F0IGE7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Ci17Ci0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCi0gICAgICAgcHVi
bGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2
Q29ybmVyczI7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUmVjdDJf
dAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7Ci0gICAgICAgcHVibGlj
IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGljIGZsb2F0
IHJmUmVkMTsKLSAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0KLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7Ci0gICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTA7IC8v
ZmxvYXRbMl0KLSAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKLX0KLVtTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAg
ICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCi0gICAgICAgcHVibGljIEVUZXh0dXJl
VHlwZSBlVHlwZTsKLSAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVHJhY2tl
ZERldmljZVBvc2VfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmc7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7Ci0g
ICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OwotICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOwotICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wgYkRldmlj
ZUlzQ29ubmVjdGVkOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHVN
aW47Ci0gICAgICAgcHVibGljIGZsb2F0IHZNaW47Ci0gICAgICAgcHVibGljIGZsb2F0IHVNYXg7
Ci0gICAgICAgcHVibGljIGZsb2F0IHZNYXg7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAg
ICAgcHVibGljIHVsb25nIG1fbkltYWdlOwotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wRGV2aWNl
OyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BQaHlzaWNh
bERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAgICAgcHVibGlj
IEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCi0gICAgICAgcHVibGljIHVp
bnQgbV9uUXVldWVGYW1pbHlJbmRleDsKLSAgICAgICBwdWJsaWMgdWludCBtX25XaWR0aDsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uRm9ybWF0
OwotICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAot
ewotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNv
dXJjZSAqCi0gICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWUgKgotICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNrOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ29udHJvbGxlcl90Ci17Ci0gICAgICAgcHVibGljIHVpbnQgYnV0dG9uOwotfQotW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfTW91
c2VfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCB4OwotICAgICAgIHB1YmxpYyBmbG9hdCB5Owot
ICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0gICAgICAgcHVi
bGljIGZsb2F0IHhkZWx0YTsKLSAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOwotICAgICAgIHB1
YmxpYyB1aW50IHJlcGVhdENvdW50OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKLXsKLSAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJGaW5nZXJE
b3duOwotICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotICAgICAgIHB1
YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlGaXJz
dDsKLSAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBwdWJsaWMgZmxvYXQg
ZlZhbHVlWVJhdzsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgcHVibGljIHVsb25n
IHVsVXNlclZhbHVlOwotICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOwotfQotW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
UHJvY2Vzc190Ci17Ci0gICAgICAgcHVibGljIHVpbnQgcGlkOwotICAgICAgIHB1YmxpYyB1aW50
IG9sZFBpZDsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1
YmxpYyBib29sIGJGb3JjZWQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKLXsKLSAgICAgICBwdWJsaWMgdWxv
bmcgb3ZlcmxheUhhbmRsZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgcHVibGljIHVpbnQg
c3RhdHVzU3RhdGU7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgcHVibGljIGJ5dGUgY05l
d0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0LGNOZXdJ
bnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OwotICAgICAgIHB1YmxpYyB1bG9uZyB1VXNlclZh
bHVlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IFZSRXZlbnRfSXBkX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJzOwotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNVbml2ZXJz
ZTsKLSAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUmVzZXJ2
ZWRfdAotewotICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7Ci0gICAgICAgcHVibGljIHVs
b25nIHJlc2VydmVkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewot
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCi0gICAgICAgcHVibGljIGJvb2wg
YlJlc2V0QnlTeXN0ZW1NZW51OwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Ci17Ci0gICAgICAgcHVibGlj
IHVpbnQgaGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Ci19Ci1bU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NfdAotewotICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKLX0KLVtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBwaWQ7Ci0gICAgICAgcHVibGlj
IHVpbnQgdW5BcmdzSGFuZGxlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAotewotICAg
ICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOwotICAgICAgIHB1YmxpYyB1aW50IG5WaXN1
YWxNb2RlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHB1YmxpYyB1aW50IHVu
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOwotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIHB1
YmxpYyB1bG9uZyBjb250YWluZXI7Ci0gICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBWUkV2ZW50X3QKLXsKLSAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7Ci0gICAg
ICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OwotICAgICAgIHB1YmxpYyBmbG9hdCBl
dmVudEFnZVNlY29uZHM7Ci0gICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7Ci19Ci1b
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSGlkZGVu
QXJlYU1lc2hfdAotewotICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8vIGNvbnN0
IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xl
Q291bnQ7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBz
dHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Ci17Ci0gICAgICAgcHVibGljIGZsb2F0IHg7Ci0gICAg
ICAgcHVibGljIGZsb2F0IHk7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAotewotICAgICAgIHB1YmxpYyB1
aW50IHVuUGFja2V0TnVtOwotICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7Ci0g
ICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBwdWJsaWMgVlJDb250
cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KLSAgICAgICBwdWJs
aWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVy
QXhpc190IHJBeGlzMjsKLSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMzsK
LSAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKLX0KLS8vIFRoaXMgc3Ry
dWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5k
IE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQp
XSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCi17Ci0gICAgICAgcHVi
bGljIHVpbnQgdW5QYWNrZXROdW07Ci0gICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOwotICAgICAgIHB1YmxpYyBW
UkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQotICAgICAg
IHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOwotICAgICAgIHB1YmxpYyBWUkNvbnRy
b2xsZXJBeGlzX3QgckF4aXMyOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4
aXMzOwotICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OwotICAgICAgIHB1
YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBhY2tldE51
bTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51bEJ1dHRv
blByZXNzZWQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9IHRoaXMu
dWxCdXR0b25Ub3VjaGVkOwotICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0aGlzLnJB
eGlzMDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7Ci0gICAg
ICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOwotICAgICAgICAgICAgICB1
bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKLSAgICAgICAgICAgICAgdW5wYWNrZWQuckF4
aXM0ID0gdGhpcy5yQXhpczQ7Ci0gICAgICAgfQotfQotW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCi17
Ci0gICAgICAgcHVibGljIHVpbnQgc2l6ZTsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKLSAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKLSAgICAgICBw
dWJsaWMgZmxvYXQgc2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOwotICAgICAg
IHB1YmxpYyBmbG9hdCBhbHBoYTsKLSAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKLSAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxlOwotICAg
ICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWREaXZzOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7Ci0gICAgICAgcHVibGljIGZsb2F0IGdyaWRT
Y2FsZTsKLSAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Ci19Ci1bU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJhVmlkZW9T
dHJlYW1GcmFtZUhlYWRlcl90Ci17Ci0gICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKLSAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7Ci0gICAgICAgcHVi
bGljIHVpbnQgbkhlaWdodDsKLSAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhlbDsKLSAg
ICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKLSAgICAgICBwdWJsaWMgVHJhY2tlZERl
dmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOwotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Ci17
Ci0gICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgotICAgICAgIHB1
YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgotfQotW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1p
bmcKLXsKLSAgICAgICBwdWJsaWMgdWludCBtX25TaXplOwotICAgICAgIHB1YmxpYyB1aW50IG1f
bkZyYW1lSW5kZXg7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7Ci0gICAgICAgcHVibGljIHVpbnQg
bV9uTnVtRHJvcHBlZEZyYW1lczsKLSAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2plY3Rpb25G
bGFnczsKLSAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwotICAg
ICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0
IG1fZmxQb3N0U3VibWl0R3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3RhbFJlbmRl
ckdwdU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1zOwot
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOwotICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKLSAgICAgICBwdWJsaWMgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZXNl
bnRDYWxsQ3B1TXM7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBwdWJsaWMg
ZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2Zs
TmV3UG9zZXNSZWFkeU1zOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVSZWFkeU1z
OwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Ci0gICAg
ICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7Ci0gICAgICAgcHVibGlj
IGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBwdWJsaWMgVHJhY2tl
ZERldmljZVBvc2VfdCBtX0htZFBvc2U7Ci19Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAg
ICAgICBwdWJsaWMgdWludCBtX25QaWQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQ
cmVzZW50czsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVt
RHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2pl
Y3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2FkaW5nOwot
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAgICAgIHB1
YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICBwdWJsaWMgdWludCBtX25O
dW1UaW1lZE91dDsKLSAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRP
dXQ7Ci0gICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5
SW50ZXJzZWN0aW9uUGFyYW1zX3QKLXsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZTb3Vy
Y2U7Ci0gICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOwotICAgICAgIHB1Ymxp
YyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOwotfQotW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJl
c3VsdHNfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OwotICAgICAgIHB1
YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90IHZV
VnM7Ci0gICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFu
Z2xlX3QKLXsKLSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOwotICAgICAgIHB1Ymxp
YyBmbG9hdCBtX2ZsVG9wTGVmdFk7Ci0gICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0aDsKLSAg
ICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsK
LSAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7Ci0gICAgICAgcHVibGljIGZsb2F0IG1f
ZmxDZW50ZXJZOwotICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOwotfQotW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdAotewotICAgICAgIHB1YmxpYyBFVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBwdWJsaWMg
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVu
ZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAotewotICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90
IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7Ci0gICAgICAgcHVibGljIEhtZE1hdHJp
eDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKLSAgICAgICBwdWJsaWMgdWludCB1UHJv
cGVydGllczsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHB1YmxpYyBIbWRWZWN0b3Iz
X3QgdlBvc2l0aW9uOwotICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKLSAgICAg
ICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCi0gICAgICAgcHVibGlj
IGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKLX0KLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKLXsKLSAgICAg
ICBwdWJsaWMgY2hhciB1bldpZHRoOwotICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0OwotICAg
ICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fQotLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0aWJpbGl0
eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKLVtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90X1Bh
Y2tlZAotewotICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7Ci0gICAgICAgcHVibGljIGNoYXIg
dW5IZWlnaHQ7Ci0gICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsgLy8gY29u
c3QgdWludDhfdCAqCi0gICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJNb2RlbF9U
ZXh0dXJlTWFwX3QgdW5wYWNrZWQpCi0gICAgICAgewotICAgICAgICAgICAgICB1bnBhY2tlZC51
bldpZHRoID0gdGhpcy51bldpZHRoOwotICAgICAgICAgICAgICB1bnBhY2tlZC51bkhlaWdodCA9
IHRoaXMudW5IZWlnaHQ7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVNYXBEYXRh
ID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKLSAgICAgICB9Ci19Ci1bU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAotewotICAg
ICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVy
TW9kZWxfVmVydGV4X3QgKgotICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7Ci0gICAg
ICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCi0gICAgICAg
cHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OwotICAgICAgIHB1YmxpYyBpbnQgZGlmZnVzZVRl
eHR1cmVJZDsKLX0KLS8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNv
bXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5Ci1bU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3RfUGFj
a2VkCi17Ci0gICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qgc3RydWN0
IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgcHVibGljIHVpbnQgdW5WZXJ0ZXhD
b3VudDsKLSAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVpbnQxNl90
ICoKLSAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgcHVibGljIGlu
dCBkaWZmdXNlVGV4dHVyZUlkOwotICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVuZGVy
TW9kZWxfdCB1bnBhY2tlZCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHVucGFja2VkLnJWZXJ0
ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5WZXJ0
ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKLSAgICAgICAgICAgICAgdW5wYWNrZWQucklu
ZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKLSAgICAgICAgICAgICAgdW5wYWNrZWQudW5Ucmlh
bmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgICAgICAgIHVucGFja2Vk
LmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7Ci0gICAgICAgfQotfQot
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRl
ck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKLXsKLSAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuSTEpXQotICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7Ci19
Ci1bU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgTm90
aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdlRGF0YTsg
Ly8gdm9pZCAqCi0gICAgICAgcHVibGljIGludCBtX25XaWR0aDsKLSAgICAgICBwdWJsaWMgaW50
IG1fbkhlaWdodDsKLSAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Ci19Ci1bU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09wZW5WUkNv
bnRleHQKLXsKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6
SVZSU3lzdGVtICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFz
cyB2cjo6SVZSQ2hhcGVyb25lICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25l
U2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCi0gICAgICAgcHVibGljIElu
dFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgot
ICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJSZXNv
dXJjZXMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNsYXNz
IHZyOjpJVlJSZW5kZXJNb2RlbHMgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJFeHRlbmRl
ZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgotICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKLSAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGlj
YXRpb25zICoKLSAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xh
c3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJTY3Jl
ZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKLX0KLQotcHVibGljIGNsYXNz
IE9wZW5WUgotewotCi0gICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5hbChyZWYg
RVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBl
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5pdEludGVy
bmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKLSAgICAgICB9Ci0KLSAgICAgICBw
dWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCi0gICAgICAgewotICAgICAgICAg
ICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLSAgICAg
ICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOwotICAgICAgIH0KLQotICAg
ICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci0g
ICAgICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9ySG1kRXJy
b3IoRVZSSW5pdEVycm9yIGVycm9yKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIE1h
cnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1kRXJyb3Io
ZXJyb3IpKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBHZXRHZW5l
cmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IpCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9yKTsKLSAg
ICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9uVmFs
aWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCi0gICAgICAgewotICAgICAgICAgICAgICBy
ZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZhY2VW
ZXJzaW9uKTsKLSAgICAgICB9Ci0KLSAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0SW5pdFRv
a2VuKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkdldElu
aXRUb2tlbigpOwotICAgICAgIH0KLQotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhE
cml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50
IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKLSAgICAgICBwdWJsaWMgY29uc3QgdWlu
dCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7Ci0gICAgICAgcHVibGljIGNvbnN0IHVp
bnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7
Ci0gICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIg
PSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAw
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKLSAg
ICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKLSAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1
aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7Ci0gICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKLSAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOwotICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLSAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAw
MDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9
IDMyNzY4OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlz
Q291bnQgPSA1OwotICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhhbmRsZUlu
dmFsaWQgPSAwOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCA9IDA7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1fVmVyc2lv
biA9ICJJVlJTeXN0ZW1fMDE1IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkV4dGVu
ZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRD
YW1lcmFfMDAzIjsKLSAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGljYXRpb25L
ZXlMZW5ndGggPSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9NaW1lVHlw
ZV9Ib21lQXBwID0gInZyL2hvbWUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18w
MDYiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lXzAwMyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDaGFwZXJv
bmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAi
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggPSAx
Mjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGgg
PSAxMjg7Ci0gICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0
OwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZXNDb3VudCA9IDMyOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZST3Zl
cmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0g
ImJhc2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfVGlwID0gInRpcCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250
cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3RhdHVzIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0gIklW
UlJlbmRlck1vZGVsc18wMDUiOwotICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Ob3RpZmlj
YXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUk5v
dGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0
ZWFtdnIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXF1aXJl
SG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3RyaW5n
ID0gImZvcmNlZEhtZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJv
Y2Vzc1BpcGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFi
bGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7Ci0gICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURl
YnVnWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlE
ZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lz
dGVtQnV0dG9uVG9BbGxBcHBzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VE
b21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tn
cm91bmREb21lUmFkaXVzIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9y
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jv
b2wgPSAic2hvd1N0YWdlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVy
cyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVf
Qm9vbCA9ICJkaXJlY3RNb2RlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9J
bnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zm
c2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKLSAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1h
bmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0g
Im5ldmVyS2lsbFByb2Nlc3NlcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVsdGlw
bGllciI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93QXN5
bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCA9
ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVj
dGlvbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFk
ZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIg
PSAiZGVmYXVsdE1pcnJvclZpZXciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmlu
ZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZyb21B
cHBMYXVuY2giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFy
dENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0RGFz
aGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCI7
Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3ZlcmxheUFw
cHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQiOwot
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0g
ImVuYWJsZUhvbWVBcHAiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIjsK
LSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5k
SW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJy
ZXRhaWxEZW1vIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSXBk
T2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlz
YWJsZWltdSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX1Vz
ZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50
MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0
YXRpb24iOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EQkhp
c3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAi
bW9kZWxOdW1iZXIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5k
b3dYX0ludDMyID0gIndpbmRvd1giOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5k
b3dIZWlnaHQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5kZXJX
aWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zs
b2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwotICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVu
Y3kiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TZWN0
aW9uID0gInVzZXJpbnRlcmZhY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
VXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9w
IjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1p
emVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5z
aG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOwotICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9v
bCA9ICJEb05vdERpc3R1cmIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5
Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMi
OwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNj
YWxlWCI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09m
ZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOwotICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLSAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhp
bmciOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9uID0gInBl
cmZjaGVjayI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hldXJpc3Rp
Y0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJu
T25seU9uY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9BbGxvd1Rp
bWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NP
bkV4aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0RGF0YV9G
bG9hdCA9ICJwZXJmVGVzdERhdGEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKLSAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNTdHlsZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91
bmRQZXJpbWV0ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJr
ZXJPbiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
UGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zs
b2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlz
aW9uQm91bmRzQ29sb3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFHIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFf
SW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKLSAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFibGVDYW1l
cmEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVy
YUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJv
dW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7Ci0gICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9v
bCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYVIiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9
ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUEiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc1N0
cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOwotICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5
YmFja0RldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19PblJl
Y29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja01pcnJvckRldmljZSI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9h
dWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmlu
ZyA9ICJvZmZSZWNvcmREZXZpY2UiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
YXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7Ci0gICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLSAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZlNjcmVl
bnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7Ci0gICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0
ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9X
YXRjaGRvZ1RpbWVvdXQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJf
QXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfU2Vj
dGlvbiA9ICJkYXNoYm9hcmQiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFz
aGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7Ci0gICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFy
Y2FkZU1vZGUiOwotICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxza2luX1Nl
Y3Rpb24gPSAibW9kZWxza2lucyI7Ci0gICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9E
cml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLSAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKLSAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18w
MDEiOwotCi0gICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9Ci0KLSAgICAg
ICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOwotCi0gICAgICAgY2xh
c3MgQ09wZW5WUkNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHB1YmxpYyBDT3BlblZS
Q29udGV4dCgpIHsgQ2xlYXIoKTsgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyB2b2lkIENsZWFy
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSBu
dWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOwotICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgbV9w
VlJPdmVybGF5ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxz
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gbnVs
bDsKLSAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOwotICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICBtX3BWUlRy
YWNrZWRDYW1lcmEgPSBudWxsOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgdm9p
ZCBDaGVja0NsZWFyKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYg
KFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZSU3lzdGVt
KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOwot
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCi0gICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVW
UkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJm
YWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lW
UlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0g
bmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKLSAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9y
Lk5vbmU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVu
VlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVyb25l
X1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
SW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBuZXcg
Q1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25lU2V0dXAo
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxsKQotICAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJy
b3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1By
ZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3Ig
PT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVyZmFjZSk7
Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9w
VlJDaGFwZXJvbmVTZXR1cDsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1Ymxp
YyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BW
UkNvbXBvc2l0b3IgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21wb3NpdG9y
KHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUk92ZXJsYXkgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCByZWYgZUVy
cm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQ
dHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJbnRlcmZh
Y2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1fcFZST3ZlcmxheTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHB1YmxpYyBD
VlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAobV9w
VlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24s
IHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNl
ICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcgQ1ZSUmVu
ZGVyTW9kZWxzKHBJbnRlcmZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVkRGlzcGxh
eSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsK
LSAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxsKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVy
cm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXkocEludGVy
ZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCi0gICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUlNldHRpbmdzID09IG51bGwpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRH
ZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24sIHJlZiBl
RXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IElu
dFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5ncyhwSW50
ZXJmYWNlKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVi
bGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCi0gICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVy
b3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlvbnNfVmVy
c2lvbiwgcmVmIGVFcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRl
cmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9IG5ldyBD
VlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5zaG90cygp
Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKLSAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCi0gICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJ
bml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJT
Y3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKLSAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNob3Rz
OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNrZWRDYW1l
cmEgVlJUcmFja2VkQ2FtZXJhKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgQ2hlY2tDbGVhcigpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJhY2tlZENh
bWVyYSA9PSBudWxsKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0lu
dGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJlZiBlRXJy
b3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0
ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNrZWRDYW1l
cmEocEludGVyZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOwotICAgICAgICAgICAgICBwcml2YXRl
IENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7Ci0gICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7Ci0gICAgICAgICAgICAgIHByaXZh
dGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7Ci0gICAgICAgICAgICAgIHByaXZhdGUgQ1ZSUmVu
ZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkV4
dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKLSAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUkFw
cGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKLSAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJT
Y3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOwotICAgICAgICAgICAgICBwcml2YXRlIENWUlRy
YWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOwotICAgICAgIH07Ci0KLSAgICAgICBwcml2
YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCA9
IG51bGw7Ci0gICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFsX01vZHVs
ZUNvbnRleHQKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGdldAotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQgPT0g
bnVsbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxfTW9kdWxl
Q29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOwotICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgfQotCi0gICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9Ci0gICAgICAg
cHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0YXRp
YyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVy
bmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9Ci0gICAgICAgcHVibGljIHN0
YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9Ci0gICAg
ICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9Ci0gICAgICAgcHVibGlj
IHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9Ci0gICAgICAgcHVi
bGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9Ci0KLSAg
ICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQuZGxsIGFu
ZCBpbml0aWFsaXplcyBpdCAqLwotICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIEluaXQo
cmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9u
VHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQotICAgICAgIHsK
LSAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSk7Ci0gICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQu
Q2xlYXIoKTsKLQotICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJyb3IuTm9u
ZSkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgICAgICAgIGJv
b2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lzdGVtX1Zl
cnNpb24pOwotICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKLSAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOwotICAgICAgICAg
ICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKLSAgICAgICB9Ci0KLSAgICAgICAv
KiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUg
aW50ZXJmYWNlIGFyZQotICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCi0gICAg
ICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IFNodXRkb3duSW50ZXJuYWwoKTsKLSAgICAgICB9Ci0KLX0KLQotCi0KLX0KLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2MGY3YTQx
OGQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorKysgL2Rldi9udWxs
CkBAIC0xLDM3ODkgKzAsMCBAQAoteyJ0eXBlZGVmcyI6W3sidHlwZWRlZiI6ICJ2cjo6Z2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9Ci0seyJ0eXBlZGVmIjogInZyOjpn
bEludF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OmdsVUludF90Iiwi
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpQ
cm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3QifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZlbnRfRGF0YV90In0KLSx7InR5cGVk
ZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBlIjogInN0cnVjdCB2cjo6VlJDb250
cm9sbGVyU3RhdGUwMDFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIs
InR5cGUiOiAidWludDY0X3QifQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRs
ZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpTY3JlZW5zaG90SGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlwZSI6ICJ1bmlvbiBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUkNv
bXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6
OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OlZSTm90
aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KLSx7InR5cGVkZWYiOiAidnI6OkhtZEVy
cm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6
SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0KLSx7InR5cGVkZWYiOiAidnI6OkNv
bG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn0KLSx7InR5cGVkZWYiOiAi
dnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQi
fQotLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNsYXNzIiwidHlwZSI6ICJlbnVtIHZy
OjpFVHJhY2tlZERldmljZUNsYXNzIn0KLSx7InR5cGVkZWYiOiAidnI6OlRyYWNraW5nVW5pdmVy
c2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0KLSx7
InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsInR5cGUiOiAiZW51bSB2cjo6
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpUcmFja2VkUHJvcGVy
dHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KLSx7InR5
cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUiOiAiZW51bSB2cjo6RVZSU3VibWl0
RmxhZ3MifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90IiwidHlwZSI6ICJlbnVtIHZyOjpF
VlJTdGF0ZSJ9Ci0seyJ0eXBlZGVmIjogInZyOjpDb2xsaXNpb25Cb3VuZHNTdHlsZV90IiwidHlw
ZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUifQotLHsidHlwZWRlZiI6ICJ2cjo6
VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUk92ZXJsYXlFcnJvciJ9Ci0seyJ0
eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkZpcm13
YXJlRXJyb3IifQotLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21wb3NpdG9yRXJyb3IiLCJ0eXBlIjog
ImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9Ci0seyJ0eXBlZGVmIjogInZyOjpWUlNjcmVl
bnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNjcmVlbnNob3RFcnJvciJ9Ci1dLAot
ImVudW1zIjpbCi0gICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXllIiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1l
IjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVGV4dHVyZVR5
cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVf
T3BlbkdMIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9WdWxr
YW4iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX0lPU3VyZmFj
ZSIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0WDEy
IiwidmFsdWUiOiAiNCJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sb3JTcGFj
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkNvbG9yU3BhY2VfQXV0byIsInZhbHVl
IjogIjAifQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9HYW1tYSIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5lYXIiLCJ2YWx1ZSI6ICIyIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1Jlc3VsdCIsInZhbHVlcyI6IFsg
Ci0gICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQiLCJ2YWx1ZSI6
ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX0luUHJv
Z3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRf
Q2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUiOiAiMjAwIn0KLSAgICAgICAseyJu
YW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjIwMSJ9
Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwidmFs
dWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19ITUQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyIiwidmFsdWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRE
ZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSIsInZhbHVlcyI6IFsgCi0g
ICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkIiwidmFsdWUiOiAi
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQiLCJ2
YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9SaWdo
dEhhbmQiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFsdWUiOiAiMiJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5IiwidmFsdWVzIjogWyAK
LSAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAwIn0K
LSAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJfU3RyaW5nIiwidmFsdWUiOiAiMTAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6
ICIxMDAyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyIs
InZhbHVlIjogIjEwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sIiwidmFsdWUiOiAiMTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Ry
YWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDYifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDcifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmciLCJ2YWx1ZSI6ICIxMDA4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjogIjEwMTAifQotICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2YWx1ZSI6ICIxMDExIn0KLSAgICAg
ICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQiLCJ2YWx1ZSI6
ICIxMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9N
YXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2Fy
ZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIsInZhbHVlIjogIjEwMTUifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIiwidmFs
dWUiOiAiMTAxNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWlu
dDY0IiwidmFsdWUiOiAiMTAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRlBH
QVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIxIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sIiwidmFsdWUiOiAiMTAyMyJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCIsInZhbHVlIjogIjEwMjQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sIiwidmFsdWUiOiAiMTAyNiJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wiLCJ2YWx1ZSI6ICIx
MDI3In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRf
U3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNs
YXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0hhc0Nh
bWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0RyaXZl
clZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9w
X0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzIifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCIsInZh
bHVlIjogIjEwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
IiwidmFsdWUiOiAiMTAzNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1Nl
Y29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsInZhbHVlIjogIjIwMDIifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAw
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCIsInZh
bHVlIjogIjIwMDQifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRf
VWludDY0IiwidmFsdWUiOiAiMjAwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlG
aXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAwNiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIyMDA3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVlIjogIjIwMDgifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQiLCJ2YWx1ZSI6ICIyMDA5In0KLSAg
ICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDEw
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRvcklEX0ludDMyIiwidmFsdWUiOiAi
MjAxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmci
LCJ2YWx1ZSI6ICIyMDEyIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VS
aWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIwMTQifQotICAgICAgICx7Im5hbWUi
OiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUiOiAiMjAxNSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjogIjIw
MTYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyIiwidmFsdWUi
OiAiMjAxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCIs
InZhbHVlIjogIjIwMTgifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCIsInZhbHVlIjogIjIwMTkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NQ
cmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIxIn0KLSAgICAgICAseyJuYW1lIjog
IlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUiOiAiMjAyMiJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjMifQotICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0IiwidmFsdWUiOiAiMjAy
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQiLCJ2YWx1
ZSI6ICIyMDI1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDI3In0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmciLCJ2YWx1ZSI6ICIyMDI4
In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCIsInZh
bHVlIjogIjIwMjkifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMzIi
fQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiIs
InZhbHVlIjogIjIwMzMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90SG9yaXpv
bnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzQifQotICAgICAgICx7
Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQi
LCJ2YWx1ZSI6ICIyMDM1In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzcifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFsdWUiOiAiMjAzOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyIiwidmFsdWUiOiAiMjAz
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50
MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjA0MiJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwidmFsdWUiOiAiMzAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0IiwidmFsdWUiOiAiMzAw
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDIifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDAzIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMzVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDUifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzNFR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDA2In0KLSAgICAgICAseyJuYW1lIjogIlByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
IiwidmFsdWUiOiAiMzAwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3Bf
RmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiNDAw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9h
dCIsInZhbHVlIjogIjQwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1Jhbmdl
TWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQifQotICAgICAgICx7Im5hbWUiOiAi
UHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDUifQot
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3RyaW5nIiwidmFsdWUiOiAiNDAwNiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICI1
MDAwIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJp
bmciLCJ2YWx1ZSI6ICI1MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0
aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1MDAyIn0KLSAgICAgICAseyJuYW1l
IjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyIsInZhbHVl
IjogIjUwMDMifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVh
ZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDUifQotICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nIiwidmFs
dWUiOiAiNTAwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwidmFsdWUiOiAiNTAwOCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCIsInZhbHVl
IjogIjUxMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQotICAgICAgICx7Im5hbWUiOiAiUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0KLSAgICAgICAseyJuYW1lIjogIlBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjog
IjEwOTk5In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlRyYWNrZWRQcm9wX1N1Y2Nlc3Mi
LCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGF0YVR5
cGUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGV2
aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0J1
ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJv
cF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlIiwidmFsdWUiOiAi
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxl
bmd0aCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfTm90WWV0
QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Q
ZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQotICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjExIn0KLV19Ci0sICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlN1Ym1p
dF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQifQotXX0KLSwgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlN0
YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVf
T2ZmIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZyIs
InZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQi
LCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHkiLCJ2YWx1ZSI6
ICIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHlfQWxlcnQiLCJ2YWx1ZSI6ICI0
In0KLSAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVhZHkiLCJ2YWx1ZSI6ICI1In0KLSAg
ICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZhbHVlIjogIjYifQotICAgICAgICx7
Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2YWx1ZSI6ICI3In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkIiwidmFsdWUiOiAiMTAx
In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQiLCJ2YWx1
ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCIsInZhbHVlIjogIjEwNCJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA2In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSIsInZhbHVlIjogIjEw
NyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCIs
InZhbHVlIjogIjEwOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1dhdGNoZG9nV2FrZVVw
UmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAxIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMwMiJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
VG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjogIjQwMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZhbHVlIjogIjQwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0IiwidmFsdWUiOiAiNDAyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCIsInZhbHVlIjogIjQwMyJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkIiwidmFsdWUi
OiAiNDA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQiLCJ2
YWx1ZSI6ICI0MDUifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdl
ZCIsInZhbHVlIjogIjQwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFsdWUiOiAiNDA3In0KLSAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMiLCJ2YWx1ZSI6ICI0MTEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hvd24iLCJ2YWx1ZSI6ICI1MDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlkZGVuIiwidmFsdWUiOiAiNTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkIiwidmFsdWUiOiAi
NTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQiLCJ2
YWx1ZSI6ICI1MDMifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkIiwidmFsdWUiOiAiNTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
U2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjogIjUxMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0IiwidmFsdWUiOiAiNTEyIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkIiwidmFs
dWUiOiAiNTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0
b25Eb3duIiwidmFsdWUiOiAiNTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1MTYifQotICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUxNyJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwidmFsdWUiOiAiNTE4In0KLSAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QiLCJ2YWx1ZSI6ICI1MjAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90VGFrZW4iLCJ2YWx1ZSI6ICI1MjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkIiwidmFsdWUiOiAi
NTIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJv
YXJkIiwidmFsdWUiOiAiNTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCIsInZhbHVlIjogIjUyNSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biIsInZhbHVlIjogIjYw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4iLCJ2YWx1
ZSI6ICI2MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5J
bnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05v
dGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9R
dWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjogIjcwMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2YWx1ZSI6ICI3MDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdl
ZCIsInZhbHVlIjogIjgwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVRl
bXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MDMifQotICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0IiwidmFsdWUiOiAiODA0In0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFs
dWUiOiAiODIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdI
YXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2Ft
ZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUyIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCIs
InZhbHVlIjogIjg1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Vudmlyb25tZW50U2V0
dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NSJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVlIjogIjkwMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFsdWUiOiAiMTAwMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCIsInZhbHVlIjogIjExMDAi
fQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIiwidmFs
dWUiOiAiMTEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2xvc2VkIiwi
dmFsdWUiOiAiMTIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2hhcklu
cHV0IiwidmFsdWUiOiAiMTIwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJk
RG9uZSIsInZhbHVlIjogIjEyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMzAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCIsInZhbHVlIjogIjEzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUiOiAiMTMwNCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRl
IiwidmFsdWUiOiAiMTMwNSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3Jf
TWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4iLCJ2YWx1ZSI6ICIxNDAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biIs
InZhbHVlIjogIjE0MTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEifQotICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAwIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0i
LCJ2YWx1ZSI6ICIxNTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVy
YV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAzIn0K
LSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSIs
InZhbHVlIjogIjE1NTAifQotICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQotICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUiLCJ2YWx1ZSI6ICIxNjAxIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwiLCJ2
YWx1ZSI6ICIxNjAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlf
Q2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAiMTAwMDAifQotICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQiLCJ2YWx1ZSI6ICIxOTk5
OSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZlbCIs
InZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5r
bm93biIsInZhbHVlIjogIi0xIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQiLCJ2YWx1
ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRi
eSIsInZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQnV0dG9u
SWQiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX0VCdXR0b25fU3lzdGVtIiwidmFs
dWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQXBwbGljYXRpb25NZW51Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fR3JpcCIsInZhbHVlIjog
IjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfTGVmdCIsInZhbHVlIjogIjMi
fQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfVXAiLCJ2YWx1ZSI6ICI0In0KLSAg
ICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0IiwidmFsdWUiOiAiNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjcifQotICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjogIjMxIn0KLSAgICAgICAseyJuYW1l
IjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRv
bl9BeGlzMiIsInZhbHVlIjogIjM0In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlz
MyIsInZhbHVlIjogIjM1In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzNCIsInZh
bHVlIjogIjM2In0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFk
IiwidmFsdWUiOiAiMzIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVHJp
Z2dlciIsInZhbHVlIjogIjMzIn0KLSAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EYXNoYm9h
cmRfQmFjayIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX01heCIs
InZhbHVlIjogIjY0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk1vdXNlQnV0
dG9uIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJNb3VzZUJ1dHRvbl9MZWZ0Iiwi
dmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX1JpZ2h0IiwidmFs
dWUiOiAiMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX01pZGRsZSIsInZhbHVl
IjogIjQifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUhpZGRlbkFyZWFNZXNoVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX1N0YW5k
YXJkIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9J
bnZlcnNlIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVz
aF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAia19lSGlkZGVuQXJl
YU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1ZSI6ICIzIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUiLCJ2YWx1ZXMi
OiBbIAotICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2
ZW50cyIsInZhbHVlIjogIjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNvbGxp
c2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAi
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyIsInZhbHVlIjogIjIi
fQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCIsInZh
bHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05F
IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxF
X0NPVU5UIiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9V
bmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTIifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQiLCJ2YWx1ZSI6ICIx
MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBl
IiwidmFsdWUiOiAiMTQifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5VG9v
TG9uZyIsInZhbHVlIjogIjE1In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJy
b3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIxOCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSIsInZhbHVlIjogIjE5In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIiLCJ2YWx1ZSI6
ICIyMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50QmVE
ZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIzIn0KLSAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMjQifQotICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSIsInZhbHVlIjogIjI1In0K
LSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlIiwi
dmFsdWUiOiAiMjYifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJv
ciIsInZhbHVlIjogIjI3In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Rvb01h
bnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6ICIzMCJ9Ci1dfQotLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAg
IHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVlIjogIjUifQotICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwidmFsdWUiOiAiNiJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVlIjogIjcifQotXX0KLSwgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAg
eyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZhbHVlIjogIjEifQotICAgICAgICx7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAKLSAg
ICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9PSyIsInZhbHVlIjogIjAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQi
LCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9O
b3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEifQotICAgICAgICx7Im5hbWUiOiAi
VlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSIsInZhbHVlIjogIjEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFs
dWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSSW5p
dEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0IiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCIs
InZhbHVlIjogIjEwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwidmFsdWUiOiAiMTA1In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJl
Y3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kIiwidmFsdWUi
OiAiMTEwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRo
IiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9M
b2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCIsInZhbHVlIjogIjExNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1JldHJ5IiwidmFsdWUiOiAiMTE1
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2Vy
IiwidmFsdWUiOiAiMTE2In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfQW5v
dGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZhbHVlIjogIjExOCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biIsInZhbHVlIjogIjExOSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzIiwidmFs
dWUiOiAiMTIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJG
b3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IiLCJ2YWx1ZSI6ICIxMjIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlB
cHBzIiwidmFsdWUiOiAiMTIzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
SW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEyNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQiLCJ2YWx1ZSI6ICIx
MjYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3Vu
ZCIsInZhbHVlIjogIjEyNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZS
TW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgifQotICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkIiwidmFsdWUiOiAi
MTI5In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFsdWUiOiAiMTMxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MiLCJ2
YWx1ZSI6ICIxMzIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwidmFsdWUiOiAiMTM0In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQiLCJ2YWx1ZSI6ICIyMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24iLCJ2YWx1ZSI6ICIy
MDEifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24iLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdExv
YWRlZCIsInZhbHVlIjogIjIwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6ICIyMDUifQotICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyMDYifQot
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCIs
InZhbHVlIjogIjIwNyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biIsInZhbHVlIjogIjIw
OSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRP
ZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAiMjEyIn0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAwIn0KLSAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkIiwidmFsdWUiOiAi
MzAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIsInZhbHVlIjogIjMwNSJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0
b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzIiwi
dmFsdWUiOiAiMzA4In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFsdWUiOiAiNDAxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSIs
InZhbHVlIjogIjQwMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Db21wb3NpdG9y
X092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkIiwidmFsdWUiOiAiNDA0
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEwMDAifQotICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UiLCJ2
YWx1ZSI6ICIxMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0IiwidmFsdWUiOiAiMTEwMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9O
b1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnIiwidmFsdWUiOiAiMTEw
NCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiIsInZhbHVl
IjogIjExMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMTA3In0KLSAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
U2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFy
dCIsInZhbHVlIjogIjExMDkifQotICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQiLCJ2YWx1ZSI6ICIxMTEw
In0KLSAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTExMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yIiwidmFs
dWUiOiAiMTExMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIsInZhbHVlIjogIjExMTMifQotICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZCIsInZhbHVlIjogIjIwMDAifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTW9ubyIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6ICI1In0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZp
ZXciLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJW
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQiLCJ2YWx1ZSI6ICIxMDAifQot
ICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSIsInZh
bHVlIjogIjEwMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZh
bGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIsInZhbHVlIjogIjEwMyJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlIiwidmFsdWUiOiAi
MTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRl
ZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIsInZhbHVlIjogIjEwNiJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUi
LCJ2YWx1ZSI6ICIxMDcifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCIsInZhbHVlIjogIjEwOSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1l
cmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTExIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlIiwidmFs
dWUiOiAiMTEyIn0KLSAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJh
bWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQotICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJu
YW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUiLCJ2YWx1
ZSI6ICIxMTUifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIsInZhbHVlIjogIjEifQotICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCIs
InZhbHVlIjogIjIifQotICAgICAgICx7Im5hbWUiOiAiTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyIs
InZhbHVlIjogIjMifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25FcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJy
b3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEwMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZhbHVlIjogIjEwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4Iiwi
dmFsdWUiOiAiMTAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Vbmtu
b3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEwNSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyIsInZhbHVlIjog
IjEwNiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlm
ZXN0IiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZhbHVlIjogIjEwOSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmci
LCJ2YWx1ZSI6ICIxMTAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0xh
dW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmciLCJ2YWx1ZSI6ICIxMTIifQotICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkIiwidmFs
dWUiOiAiMTEzIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBs
YXRlIiwidmFsdWUiOiAiMTE0In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjIw
MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFtZXRl
ciIsInZhbHVlIjogIjIwMyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBs
aWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9y
eV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICIxMyJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyIsInZhbHVlIjogIjE0
In0KLSAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nIiwi
dmFsdWUiOiAiMTUifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rl
c2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZhbHVlIjogIjUxIn0KLSAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nIiwidmFsdWUi
OiAiNTIifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9T
dHJpbmciLCJ2YWx1ZSI6ICI1MyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1ZSI6ICI2MCJ9Ci0gICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sIiwidmFsdWUiOiAi
NjEifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2Vk
X0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMifQotICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCIsInZhbHVlIjogIjcw
In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25fTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6ICIxMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2giLCJ2
YWx1ZSI6ICIxMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9O
ZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmciLCJ2YWx1ZSI6ICIx
MDAifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5n
X0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92ZWQi
LCJ2YWx1ZSI6ICIxMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIxMDMifQotICAgICAg
ICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvciIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jh
c2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIwMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QiLCJ2
YWx1ZSI6ICIyMDIifQotICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIyMDMifQotICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlk
IiwidmFsdWUiOiAiMjA0In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUi
OiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFsdWUiOiAiMSJ9Ci1dfQotLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAg
ICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAi
MSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVWZXJz
aW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9y
X0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMTAyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiIsInZhbHVlIjog
IjEwMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRv
ckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQiLCJ2YWx1ZSI6ICIxMDUifQotICAg
ICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0
ZWQiLCJ2YWx1ZSI6ICIxMDYifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KLSAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1ZSI6ICIxMDgifQotXX0KLSwgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QiLCJ2YWx1ZXMiOiBbIAot
ICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lIiwidmFsdWUiOiAiMCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSIsInZhbHVlIjog
IjEifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlw
ZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAs
eyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50IiwidmFsdWUiOiAi
MyJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlGbGFncyIsInZhbHVl
cyI6IFsgCi0gICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vbmUiLCJ2YWx1ZSI6ICIw
In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX0N1cnZlZCIsInZhbHVlIjogIjEi
fQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUkdTUzRYIiwidmFsdWUiOiAiMiJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiIsInZhbHVl
IjogIjMifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRF
dmVudHMiLCJ2YWx1ZSI6ICI0In0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1No
b3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjogIjYifQotICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMiLCJ2YWx1ZSI6ICI3In0KLSAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsIiwi
dmFsdWUiOiAiOCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93
bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAiOSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsIiwidmFsdWUiOiAiMTAifQotICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkIiwidmFsdWUi
OiAiMTEifQotICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEiLCJ2YWx1
ZSI6ICIxMiJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFt
YSIsInZhbHVlIjogIjEzIn0KLSAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NvcnRX
aXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0KLSAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZhbHVlIjogIjE1In0KLV19Ci0sICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsInZhbHVlcyI6
IFsgCi0gICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQotICAgICAgICx7Im5hbWUiOiAiVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIiLCJ2YWx1ZSI6ICIyIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zIiwidmFs
dWUiOiAiMyJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291
bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXki
LCJ2YWx1ZSI6ICI1In0KLSAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1l
IjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAg
LHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkIiwidmFsdWUiOiAiMSJ9
Ci0gICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCIsInZhbHVl
IjogIjIifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5w
dXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogImtf
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMiLCJ2YWx1ZSI6ICIxIn0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIiwidmFsdWVzIjog
WyAKLSAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9VcCIsInZhbHVlIjogIjAifQot
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Eb3duIiwidmFsdWUiOiAiMSJ9Ci0g
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xlZnQiLCJ2YWx1ZSI6ICIyIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmlnaHQiLCJ2YWx1ZSI6ICIzIn0KLSAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291bnQiLCJ2YWx1ZSI6ICI0In0KLV19
Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIk92ZXJsYXlJbnRlcnNl
Y3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5h
bWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlIiwidmFsdWUiOiAi
MSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwi
dmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vbmUiLCJ2
YWx1ZSI6ICIwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
IiwidmFsdWUiOiAiMTAwIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9O
b3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAifQotICAgICAgICx7Im5hbWUiOiAi
VlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZhbHVlIjogIjMwMSJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMiLCJ2YWx1ZSI6ICIzMDIifQot
ICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzIiwidmFs
dWUiOiAiMzAzIn0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55
VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2Rl
bEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIzMDUifQotICAgICAgICx7Im5hbWUi
OiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMzA2In0KLSAg
ICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzIiwidmFs
dWUiOiAiMzA3In0KLSAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91
Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQotICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiNDAwIn0KLV19Ci0sICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5IiwidmFsdWVzIjogWyAKLSAgICAg
ICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyIsInZhbHVlIjogIjEifQot
ICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUiLCJ2YWx1ZSI6
ICIyIn0KLSAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkIiwi
dmFsdWUiOiAiNCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCIsInZhbHVlIjogIjgifQotICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQotXX0KLSwgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjogIkVW
Uk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQiLCJ2YWx1ZSI6ICIxIn0KLSAgICAg
ICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2Vy
VmFsdWUiLCJ2YWx1ZSI6ICIyIn0KLV19Ci0sICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5v
dGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKLSAgICAgICB7Im5hbWUiOiAiRVZSTm90aWZp
Y2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90
aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDAifQotICAgICAgICx7Im5h
bWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCIsInZhbHVlIjogIjIw
MCJ9Ci0gICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJs
ZWQiLCJ2YWx1ZSI6ICIyMDEifQotICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5
bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQotXX0KLSwgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6IFsgCi0gICAgICAgeyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJW
UlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6
ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1ZSI6ICIyIn0KLSAgICAgICAseyJu
YW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwidmFsdWUiOiAiMyJ9Ci0gICAgICAg
LHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkIiwidmFsdWUiOiAiNCJ9
Ci0gICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZh
dWx0IiwidmFsdWUiOiAiNSJ9Ci1dfQotLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAotICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9Ci0gICAgICAgLHsibmFtZSI6ICJWUlNj
cmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KLSAgICAg
ICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kIiwidmFsdWUiOiAiMTAxIn0K
LSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFs
dWUiOiAiMTAyIn0KLSAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX1NjcmVlbnNo
b3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9Ci1dfQotXSwKLSJjb25zdHMiOlt7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAg
ICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kIiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5U
cmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVHJh
Y2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VsSW52
YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVU
YWdfdCIsICJjb25zdHZhbCI6ICIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuRmxv
YXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJj
b25zdHZhbCI6ICIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSW50MzJQcm9wZXJ0
eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6
ICIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVWludDY0UHJvcGVydHlUYWciLCJj
b25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMyJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI0In0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
SGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjMwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuT3Bl
blZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMy
X3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5D
b250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAi
Y29uc3R2YWwiOiAiNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191bE92ZXJsYXlIYW5k
bGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3ZlcmxheUhhbmRsZV90IiwgImNvbnN0
dmFsIjogIjAifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIwIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1fVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTeXN0ZW1fMDE1In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJFeHRlbmRlZERpc3BsYXlf
MDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSVHJhY2tl
ZENhbWVyYV8wMDMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhBcHBsaWNhdGlv
bktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIx
MjgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX01pbWVUeXBlX0hvbWVBcHAiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvaG9tZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvZ2FtZV90aGVhdGVy
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJBcHBsaWNhdGlv
bnNfMDA2In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJDaGFwZXJv
bmVfMDAzIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVTZXR1cF9WZXJz
aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNo
YXBlcm9uZVNldHVwXzAwNSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAiSVZSQ29tcG9zaXRv
cl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IklWUkNvbXBvc2l0b3JfMDIwIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVy
bGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFs
IjogIjEyOCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4In0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUNvdW50IiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0In0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzIifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5XzAxNCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJnZGMyMDE1In0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2UifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0aXAifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhhbmRncmlwIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhdHVzIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZW5kZXJNb2RlbHNfMDA1
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMjU2In0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSTm90aWZpY2F0aW9uc18wMDIi
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGluZ3NfMDAyIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9Ci0sewotICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJlSG1kIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmciLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkRHJpdmVyIn0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkSG1k
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3Bs
YXlEZWJ1ZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EZWJ1Z1By
b2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0aW9uIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVnWCJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3BsYXlEZWJ1
Z1kifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRVc2VEb21l
UHJvamVjdGlvbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWlnaHQifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZERvbWVS
YWRpdXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfR3JpZENvbG9y
X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJn
cmlkQ29sb3IifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAicGxheUFyZWFDb2xvciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzaG93U3RhZ2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlyZWN0TW9kZSJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJl
Y3RNb2RlRWRpZFZpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVha2VycyJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVz
X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYXNlc3RhdGlvblBvd2VyTWFu
YWdlbWVudCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9OZXZlcktp
bGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2pl
Y3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiJ9Ci0s
ewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZvcmNl
UmVwcm9qZWN0aW9uIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Zv
cmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlZmF1bHRNaXJyb3JWaWV3
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2hv
d01pcnJvclZpZXcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTWly
cm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQotLHsKLSAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9z
aXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIn0KLSx7Ci0gICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFz
aGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJsZUhv
bWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5h
YmxlSG9tZUFwcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZXRJ
bml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIn0KLSx7Ci0gICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInJldGFpbERlbW8ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImlwZE9mZnNldCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2VkaXNhbWJpZ3VhdGlvbiJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlv
bkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImRpc2FtYmlndWF0aW9uZGVidWcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnliYXNlc3RhdGlvbiJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYmhpc3RvcnkifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2ZXJfbnVsbCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlcmlhbE51bWJlciJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmciLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxOdW1iZXIifQot
LHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dYIn0KLSx7Ci0g
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93WSJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dXaWR0aCJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93SGVpZ2h0In0KLSx7
Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlcldpZHRoIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJIZWln
aHQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3lu
Y1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheUZyZXF1ZW5jeSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZXJpbnRlcmZhY2UifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25U
b3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJT
dGF0dXNBbHdheXNPblRvcCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlcklu
dGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdHMifQotLHsKLSAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNjcmVlbnNob3RU
eXBlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibm90aWZp
Y2F0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTm90aWZpY2F0aW9uc19E
b05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJEb05vdERpc3R1cmIifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tl
eWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAia2V5Ym9hcmQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
S2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIlNjYWxlWSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0TGVmdFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRSaWdodFgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0WSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU21v
b3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNt
b290aGluZyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TZWN0aW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZjaGVjayJ9
Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9v
bCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJoZXVyaXN0
aWNBY3RpdmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5SW5I
TURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
YXJuSW5ITUQifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ3YXJuT25seU9uY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfQWxs
b3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09uRXhpdCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVzdERhdGEifQotLHsKLSAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNvbGxpc2lvbkJvdW5kcyJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJv
dW5kc1N0eWxlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiJ9Ci0sewot
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9u
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29s
bGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3Rh
bmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFS
In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
QiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJjYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIn0K
LSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29s
bGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIn0KLSx7Ci0gICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmFG
b3JSb29tVmlldyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUci
fQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1h
Ql9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIn0KLSx7Ci0gICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzU3Ry
ZW5ndGgifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXVkaW8ifQotLHsK
LSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUGxheWJh
Y2tEZXZpY2UifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUmVjb3Jk
RGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJvblJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01pcnJvckRldmljZSJ9Ci0sewotICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlBsYXliYWNr
RGV2aWNlIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZSZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9mZlJlY29yZERldmljZSJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInZpdmVIRE1JR2FpbiJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93
ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlciJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfUG93ZXJPZmZP
bkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlck9mZk9uRXhpdCJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJf
VHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGltZW91dCJ9Ci0sewotICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0In0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCJ9Ci0sewotICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNz
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImF1dG9MYXVu
Y2hTdGVhbVZST25CdXR0b25QcmVzcyJ9Ci0sewotICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
RGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9EYXNo
Ym9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1vZGUifQotLHsKLSAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMifQotLHsKLSAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQotLHsKLSAgICAgICAiY29uc3RuYW1lIjog
IklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0KLSx7Ci0gICAgICAgImNvbnN0bmFt
ZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0KLV0sCi0ic3RydWN0cyI6W3sic3Ry
dWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm0i
LCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kTWF0
cml4NDRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCBbNF1bNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNfdCIsImZpZWxkcyI6
IFsKLXsgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbM10ifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ2
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3Rv
cjNkX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZG91
YmxlIFszXSJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yMl90IiwiZmllbGRzIjogWwot
eyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInci
LCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBl
IjogImRvdWJsZSJ9LAoteyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9
LAoteyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImciLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZp
ZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
SG1kUXVhZF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInZDb3JuZXJzIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6
OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlRvcExlZnQiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCi17ICJmaWVsZG5hbWUiOiAidkJv
dHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9XX0KLSx7
InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRu
YW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoteyAiZmllbGRuYW1l
IjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQotLHsic3RydWN0IjogInZy
OjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJlVHlwZSIsICJmaWVsZHR5cGUiOiAi
ZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCi17ICJmaWVsZG5hbWUiOiAiZUNvbG9yU3BhY2UiLCAi
ZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1dfQotLHsic3RydWN0IjogInZyOjpU
cmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRf
dCJ9LAoteyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZy
OjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2QW5ndWxhclZlbG9jaXR5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVU
cmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nUmVzdWx0In0s
Ci17ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAot
eyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5kc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUi
OiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ1TWF4Iiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInZNYXgiLCAiZmllbGR0eXBl
IjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpWUlZ1bGthblRleHR1cmVEYXRhX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
VmtEZXZpY2VfVCAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wUGh5c2ljYWxEZXZpY2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoteyAiZmllbGRuYW1lIjog
Im1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtJbnN0YW5jZV9UICoifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUXVldWVfVCAq
In0sCi17ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJbmRleCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0dXJlRGF0YV90IiwiZmllbGRzIjog
WwoteyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgSUQz
RDEyUmVzb3VyY2UgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcENvbW1hbmRRdWV1ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAi
bV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJidXR0
b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50
X01vdXNlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1
Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAi
eGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogInlkZWx0YSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJyZXBlYXRDb3VudCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYkZpbmdlckRvd24iLCAiZmll
bGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAiZmxTZWNvbmRzRmluZ2VyRG93biIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJmVmFsdWVYRmlyc3QiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWUZpcnN0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImZWYWx1ZVhSYXciLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZlZhbHVlWVJhdyIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFsdWUiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCi17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uSWQiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Byb2Nlc3NfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17
ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmll
bGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQotLHsic3RydWN0Ijog
InZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJvdmVy
bGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJzdGF0dXNTdGF0
ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
S2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjTmV3SW5wdXQiLCAiZmll
bGR0eXBlIjogImNoYXIgWzhdIn0sCi17ICJmaWVsZG5hbWUiOiAidVVzZXJWYWx1ZSIsICJmaWVs
ZHR5cGUiOiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfSXBkX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFwZXJvbmVfdCIsImZpZWxkcyI6IFsK
LXsgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRVbml2ZXJzZSIsICJmaWVsZHR5cGUi
OiAidWludDY0X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCIsImZp
ZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCi17ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxldmVsIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiYlJlc2V0QnlTeXN0ZW1NZW51IiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JlZW5zaG90
X3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogInR5cGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQotLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IiwiZmll
bGRzIjogWwoteyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQot
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCIsImZpZWxk
cyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvcGVydHlf
dCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJjb250YWluZXIiLCAiZmllbGR0eXBlIjog
IlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKLXsgImZpZWxkbmFtZSI6ICJwcm9wIiwgImZp
ZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In1dfQotLHsic3RydWN0
IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJyZXNlcnZl
ZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1Jlc2VydmVkX3QifSwKLXsgImZp
ZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
Q29udHJvbGxlcl90In0sCi17ICJmaWVsZG5hbWUiOiAibW91c2UiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCi17ICJmaWVsZG5hbWUiOiAic2Nyb2xsIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xsX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvY2Vzc190In0s
Ci17ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKLXsgImZpZWxkbmFtZSI6ICJvdmVybGF5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3ZlcmxheV90In0sCi17ICJmaWVsZG5hbWUi
OiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU3RhdHVzX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X0tleWJvYXJkX3QifSwKLXsgImZpZWxkbmFtZSI6ICJpcGQiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoteyAiZmllbGRuYW1lIjogImNoYXBlcm9uZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBlcm9uZV90In0sCi17ICJmaWVsZG5h
bWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0b3VjaFBhZE1vdmUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCJ9LAoteyAiZmllbGRu
YW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdF90In0sCi17ICJm
aWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJhcHBsaWNh
dGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QifSwKLXsgImZpZWxkbmFtZSI6ICJjYW1lcmFTdXJmYWNlIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCJ9LAoteyAiZmllbGRu
YW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
TWVzc2FnZU92ZXJsYXlfdCJ9LAoteyAiZmllbGRuYW1lIjogInByb3BlcnR5IiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogImV2ZW50VHlwZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFja2VkRGV2aWNlSW5kZXgi
LCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICJmaWVsZG5hbWUiOiAi
ZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjog
ImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90In1dfQotLHsic3RydWN0IjogInZy
OjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBWZXJ0ZXhE
YXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0sCi17
ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhpc190IiwiZmllbGRzIjogWwoteyAi
ZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAi
eSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlZSQ29udHJvbGxl
clN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidW5QYWNrZXROdW0iLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAidWxCdXR0b25QcmVzc2Vk
IiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVsQnV0dG9uVG91
Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKLXsgImZpZWxkbmFtZSI6ICJyQXhpcyIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3QgWzVdIn1dfQotLHsi
c3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncyIsImZpZWxkcyI6IFsKLXsg
ImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRu
YW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKLXsgImZpZWxkbmFtZSI6ICJh
bnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCi17ICJmaWVsZG5hbWUiOiAic2NhbGUi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZGlzdGFuY2UiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiYWxwaGEiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAidU9mZnNldCIsICJmaWVsZHR5cGUiOiAiZmxvYXQi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFt
ZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3Jp
ZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAiZ3JpZFdpZHRo
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogImdyaWRTY2FsZSIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJ0cmFuc2Zvcm0iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q2Ft
ZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjog
ImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUifSwKLXsgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCi17ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QifV19Ci0seyJzdHJ1Y3QiOiAi
dnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogInBjaEtl
eSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICJmaWVsZG5hbWUiOiAicGNoVmFs
dWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Q29t
cG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX25TaXpl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkZyYW1lSW5k
ZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJh
bWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJt
X25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGltZUluU2Vjb25kcyIsICJmaWVsZHR5
cGUiOiAiZG91YmxlIn0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZVN1Ym1pdEdwdU1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxQb3N0U3VibWl0R3B1TXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvdGFsUmVuZGVy
R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBv
c2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6
ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFtZUludGVydmFsTXMiLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFByZXNlbnRDYWxsQ3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRGb3JQcmVzZW50
Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFN1Ym1p
dEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbFdh
aXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsg
ImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXMiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRl
clN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9IbWRQ
b3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KLSx7InN0cnVj
dCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMiLCJmaWVsZHMiOiBbCi17ICJmaWVs
ZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1l
IjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJm
aWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lcyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURy
b3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVs
ZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtTG9hZGluZyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzTG9hZGlu
ZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9w
cGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmciLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCi17ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbk51bURyb3BwZWRG
cmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKLXsgImZpZWxkbmFtZSI6
ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QiLCJm
aWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRWZWN0b3IzX3QifSwKLXsgImZpZWxkbmFtZSI6ICJ2RGlyZWN0aW9uIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogImVPcmln
aW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn1dfQot
LHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCi17ICJmaWVsZG5hbWUiOiAidlVWcyIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKLXsgImZpZWxkbmFtZSI6ICJmRGlzdGFu
Y2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQotLHsic3RydWN0IjogInZyOjpJbnRlcnNlY3Rp
b25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9mbFRvcExl
ZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fZmxUb3BMZWZ0
WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsV2lkdGgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCi17ICJmaWVsZG5hbWUiOiAibV9mbEhlaWdodCIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlvbk1hc2tDaXJj
bGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWCIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWSIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKLXsgImZpZWxkbmFtZSI6ICJtX2ZsUmFkaXVzIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91cykiLCJmaWVsZHMiOiBbCi17ICJm
aWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJz
ZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCi17ICJmaWVsZG5hbWUiOiAibV9DaXJjbGUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNsZV90In1dfQotLHsic3Ry
dWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QiLCJmaWVsZHMi
OiBbCi17ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51
bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIn0sCi17ICJmaWVs
ZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjogIlZST3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQotLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9D
b21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWwoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1Rv
Q29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoteyAiZmllbGRuYW1lIjogInVQ
cm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVudFByb3BlcnRpZXMifV19Ci0seyJz
dHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90IiwiZmllbGRzIjogWwoteyAiZmllbGRu
YW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3Qi
fSwKLXsgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoteyAiZmllbGRuYW1lIjogInJmVGV4dHVyZUNvb3JkIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCBbMl0ifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1RleHR1cmVN
YXBfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJ1bldpZHRoIiwgImZpZWxkdHlwZSI6
ICJ1aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInVuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1
aW50MTZfdCJ9LAoteyAiZmllbGRuYW1lIjogInJ1YlRleHR1cmVNYXBEYXRhIiwgImZpZWxkdHlw
ZSI6ICJjb25zdCB1aW50OF90ICoifV19Ci0seyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX3Qi
LCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAiclZlcnRleERhdGEiLCAiZmllbGR0eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKiJ9LAoteyAiZmllbGRuYW1l
IjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCi17ICJmaWVsZG5h
bWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29uc3QgdWludDE2X3QgKiJ9LAoteyAi
ZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
LXsgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwgImZpZWxkdHlwZSI6ICJUZXh0dXJl
SURfdCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCIsImZpZWxkcyI6IFsKLXsgImZpZWxkbmFtZSI6ICJiU2Nyb2xsV2hlZWxWaXNpYmxlIiwg
ImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KLSx7InN0cnVjdCI6ICJ2cjo6Tm90aWZpY2F0aW9uQml0
bWFwX3QiLCJmaWVsZHMiOiBbCi17ICJmaWVsZG5hbWUiOiAibV9wSW1hZ2VEYXRhIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAi
aW50MzJfdCJ9LAoteyAiZmllbGRuYW1lIjogIm1fbkJ5dGVzUGVyUGl4ZWwiLCAiZmllbGR0eXBl
IjogImludDMyX3QifV19Ci0seyJzdHJ1Y3QiOiAidnI6OkNPcGVuVlJDb250ZXh0IiwiZmllbGRz
IjogWwoteyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSU3lzdGVtICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZSIsICJmaWVs
ZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9w
VlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZVNl
dHVwICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBvc2l0b3IiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUk92ZXJs
YXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVybGF5ICoifSwKLXsgImZpZWxkbmFt
ZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlc291cmNl
cyAqIn0sCi17ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJNb2RlbHMiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSRXh0
ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5
ICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdzIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoteyAiZmllbGRuYW1lIjogIm1fcFZSQXBwbGljYXRpb25z
IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoifSwKLXsgImZpZWxk
bmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJU
cmFja2VkQ2FtZXJhICoifSwKLXsgImZpZWxkbmFtZSI6ICJtX3BWUlNjcmVlbnNob3RzIiwgImZp
ZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKiJ9XX0KLV0sCi0ibWV0aG9kcyI6
W3sKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4NDRfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewot
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UHJvamVjdGlvblJhdyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmTGVmdCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmlnaHQiICwicGFyYW10
eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZlRvcCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQm90dG9tIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVEaXN0b3J0aW9u
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5
ZVRvSGVhZFRyYW5zZm9ybSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFRpbWVTaW5jZUxhc3RWc3luYyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZTZWNvbmRzU2luY2VMYXN0
VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
dWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2NF90ICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiaW50
MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5B
ZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImJJc1Zpc2li
bGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU9yaWdp
biIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9z
ZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXNldFNlYXRlZFplcm9Qb3Nl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFNlYXRlZFplcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5k
aWNlc09mQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tlZERldmljZUNsYXNzIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFzcyJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJh
Y2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blRyYWNrZWREZXZpY2VJbmRl
eEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERl
dmljZUFjdGl2aXR5TGV2ZWwiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFRGV2aWNlQWN0
aXZpdHlMZXZlbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERldmljZUlu
ZGV4Rm9yQ29udHJvbGxlclJvbGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZp
Y2VJbmRleCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkQ29udHJvbGxlclJv
bGUiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzJUcmFja2VkRGV2aWNl
UHJvcGVydHkiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBy
b3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VWludDY0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmlu
Z1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50V2l0aFBvc2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpWUkV2ZW50X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2Vk
RGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0iLAotICAgICAgICJy
ZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJFdmVudFR5cGUifQot
ICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1lc2giLAotICAgICAgICJyZXR1cm50
eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFSGlkZGVu
QXJlYU1lc2hUeXBlIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBDb250
cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJTdGF0ZVNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29u
dHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
VHJhY2tlZERldmljZVBvc2VfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTeXN0ZW0iLAotICAgICAgICJtZXRob2RuYW1lIjogIlRyaWdnZXJIYXB0
aWNQdWxzZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5cGUiOiAidW5zaWduZWQgc2hvcnQi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWROYW1lRnJvbUVudW0iLAotICAgICAg
ICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQnV0dG9u
SWQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21F
bnVtIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVBeGlzVHlwZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYXB0dXJl
SW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxl
YXNlSW5wdXRGb2N1cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogImJvb2wiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1ZXN0IiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVxdWVzdCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzcG9uc2VCdWZmZXIi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVzcG9u
c2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJGaXJtd2FyZUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmciLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0V2luZG93Qm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogImlu
dDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuWSIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5ZU91
dHB1dFZpZXdwb3J0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5YIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERYR0lP
dXRwdXRJbmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUi
OiAiaW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVyT3V0cHV0SW5k
ZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNv
bnN0IGNoYXIgKiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1lcmEiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhc0NhbWVyYSIg
LCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRD
YW1lcmFGcmFtZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogIm5E
ZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWln
aHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
bkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2ljcyIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3RvcjJf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRlciIgLCJwYXJhbXR5cGUiOiAidnI6
OkhtZFZlY3RvcjJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFQ
cm9qZWN0aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxaTmVhciIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmbFpGYXIiICwicGFyYW10
eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFByb2plY3Rpb24iICwicGFy
YW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWRDYW1lcmFIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Vmlk
ZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBG
cmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhl
YWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInZyOjpWUlRleHR1cmVCb3Vu
ZHNfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
aFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3Qi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0Qx
MURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZvaWQg
KioifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjog
InZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJl
RnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6
OmdsVUludF90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFy
YW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2Vk
Q2FtZXJhIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJl
R0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJh
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNhdGlvbk1hbmlmZXN0IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQ
YXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FwcGxpY2F0
aW9uSW5zdGFsbGVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bkNvdW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVuIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBs
aWNhdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwS2V5cyIgLCJhcnJheV9jb3VudCI6
ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6QXBwT3ZlcnJpZGVLZXlz
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFw
cGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlw
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBsaWNhdGlvbiIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRp
b25zRXJyb3JOYW1lRnJvbUVudW0iLAotICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIg
KiIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIn0KLSAgICAgICAgXQotfQotLHsK
LSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmciLAotICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
UHJvcGVydHkifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQcm9wZXJ0eVZhbHVlQnVmZmVy
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3Bl
cnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9w
ZXJ0eVVpbnQ2NCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiQXV0b0xhdW5jaCIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBs
aWNhdGlvbkF1dG9MYXVuY2giLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBhcmFt
dHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZlckxl
biIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAotICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFw
cEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRN
aW1lVHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50
cyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3MiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZm
ZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1l
IjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1BcHBsaWNh
dGlvblByZWxhdW5jaENoZWNrIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1bWVudHMiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFdvcmtpbmdEaXJlY3Rv
cnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9uU3RhdGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIgotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFBsYXlBcmVhU2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmUiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhUmVjdCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZvIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29sb3IiLAotICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
ImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRD
b2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMiICwicGFyYW10eXBlIjogImludCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIiAs
InBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRDYW1l
cmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRDb2xvcl90ICoifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zpc2libGUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjb25maWdGaWxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAi
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVNpemUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJlY3QiLAotICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJwdW5RdWFkc0Nv
dW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1
YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BsYXlBcmVh
U2l6ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8iLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJheV9jb3VudCI6ICJ1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMi
OiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsb2FkRnJvbURpc2si
LAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVy
b25lQ29uZmlnRmlsZSJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8iLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsImFy
cmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAg
ICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJ
bmZvIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAi
cHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIiwKLSAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291bnQi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRvQnVmZmVyIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5ndGgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJJbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJuSW1wb3J0RmxhZ3MiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRUcmFja2luZ1Nw
YWNlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4ifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNraW5n
U3BhY2UiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVyUG9z
ZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBvc2VB
cnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUi
OiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1blJlbmRl
clBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQ
b3NlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEdhbWVQ
b3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dEdhbWVQb3NlIiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU3VibWl0IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29t
cG9zaXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBz
dHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJu
U3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJTdWJtaXRGbGFncyJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQcmVzZW50SGFuZG9mZiIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RnJhbWVUaW1pbmciLAot
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29tcG9z
aXRvcl9GcmFtZVRpbWluZyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5GcmFtZXNBZ28i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRG
cmFtZVRpbWluZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGltaW5nIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAotICAgICAgICJyZXR1cm50eXBlIjog
ImZsb2F0IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZlU3RhdHMiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiblN0YXRzU2l6ZUluQnl0ZXMiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlVG9D
b2xvciIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMi
ICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZhZGVJbiIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVu
dEdyaWRBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlNldFNreWJveE92ZXJyaWRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9z
aXRvckVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
VGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJlQ291bnQiICwicGFyYW10eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JHb1RvQmFjayIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvclF1aXQiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIklzRnVsbHNjcmVlbiIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVudFNj
ZW5lRm9jdXNQcm9jZXNzIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2VuZSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJvcldpbmRvdyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU1pcnJvcldpbmRvdyIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNNaXJyb3JXaW5kb3dWaXNp
YmxlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3Np
dG9yRHVtcEltYWdlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJvY2VzcyIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVuZFJlbmRlcmluZyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJvb2wifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwi
cGFyYW10eXBlIjogInZvaWQgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VN
aXJyb3JUZXh0dXJlRDNEMTEiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMVNoYWRlclJlc291cmNl
VmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRNaXJyb3JUZXh0dXJlR0wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
Z2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6Omds
U2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VTaGFyZWRHTFRleHR1cmUiLAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImdsVGV4dHVyZUlkIiAsInBhcmFt
dHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIlVu
bG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Qi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKLSAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQiLAotICAgICAgICJyZXR1cm50eXBl
IjogInVpbnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNl
X1QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZm
ZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
RmluZE92ZXJsYXkiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJsYXlL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEhpZ2hR
dWFsaXR5T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90IgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1
aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheU5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5
SW1hZ2VEYXRhIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
LSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJiRW5hYmxlZCIgLCJw
YXJhbXR5cGUiOiAiYm9vbCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUZsYWci
LAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
ZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10eXBlIjogImJvb2wgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZSZWQiICwicGFyYW10eXBlIjogImZs
b2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNvbG9yIiwKLSAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmUmVkIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGZHcmVlbiIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBmQmx1ZSIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUFscGhhIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImZB
bHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92
ZXJsYXlBbHBoYSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZlRleGVsQXNwZWN0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRleGVsQXNwZWN0
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3JkZXIiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5U29ydE9yZGVyIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1blNv
cnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0g
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjog
ImZsb2F0In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5V2lkdGhJbk1ldGVycyIs
Ci0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0ICoifQotICAgICAgICBdCi19Ci0s
ewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZk1pbkRpc3Rh
bmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBm
TWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQg
KiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVU
ZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUZXh0dXJlQ29s
b3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifQotICAgICAgICBdCi19
Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKLSAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVyZUJvdW5kcyIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheVRleHR1
cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9
Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFuc2Zv
cm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZVRyYWNraW5n
T3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFja2luZ09y
aWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICoifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1z
IjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVHJh
Y2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjog
InB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlU
cmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAg
ICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVPdmVybGF5IiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSXNPdmVybGF5VmlzaWJs
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNvb3JkaW5h
dGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dE92
ZXJsYXlFdmVudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwRXZl
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAg
ICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhvZCIsCi0gICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUlucHV0TWV0aG9kIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1ldGhvZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVy
bGF5TW91c2VTY2FsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRWZWN0b3IyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU1vdXNlU2Nh
bGUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVj
dG9yMl90ICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBQYXJhbXMiICwi
cGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1z
X3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1bHRzIiAsInBhcmFtdHlwZSI6ICJz
dHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0
aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAi
bWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092ZXJsYXkiLAotICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxOZXdGb2N1c092
ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24i
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVsVG8iICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVy
bGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogImVE
aXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9Ci0gICAgICAgIF0K
LX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlSYXciLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAot
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5IZWlnaHQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXB0
aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIlNldE92
ZXJsYXlGcm9tRmlsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVyZUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBO
YXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRl
eHR1cmVUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwQ29sb3JTcGFjZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4
dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSIsCi0g
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0
aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAotICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEhlaWdodCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlRGFzaGJvYXJkT3Zlcmxh
eSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAg
InBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicFRodW1ibmFpbEhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQotICAgICAgICBdCi19Ci0sewotICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjog
IklzRGFzaGJvYXJkVmlzaWJsZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKLX0KLSx7
Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5h
bWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Ci0gICAgICAg
IF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsg
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJ
ZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93RGFzaGJvYXJkIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAotICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIKLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
U2hvd0tleWJvYXJkIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJlSW5wdXRNb2Rl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIn0sCi17ICAgICAgICJw
YXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRl
eHRJbnB1dExpbmVNb2RlIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRGVzY3JpcHRpb24i
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVu
Q2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAot
eyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmRGb3JPdmVybGF5IiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKLSAgICAgICAicGFyYW1zIjog
WyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1v
ZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKLXsgICAgICAg
InBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFk
VGV4dElucHV0TGluZU1vZGUifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAg
ICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJvYXJkVGV4dCIsCi0gICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFy
YW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtleWJvYXJkIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRl
IiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFj
a2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUmVjdDJfdCJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCi0g
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2siLAotICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE1hc2tQcmlt
aXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5OdW1NYXNrUHJpbWl0
aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1
blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQot
LHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKLSAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2FnZU92ZXJsYXkiLAotICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENhcHRpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjBU
ZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjNUZXh0IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFJlbmRlck1v
ZGVsX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJv
ciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVy
TW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1v
ZGVsX3QgKioifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVJlbmRlck1vZGVsIiwK
LSAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfdCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
X0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIs
Ci0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVyZUlkIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
cFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90ICoqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJS
ZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkZyZWVUZXh0dXJlIiwKLSAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkVGV4dHVy
ZUQzRDExX0FzeW5jIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVy
ZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKLXsgICAgICAgInBhcmFtbmFt
ZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKioifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMiLAotICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKLSAgICAgICAicGFy
YW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjog
InZyOjpUZXh0dXJlSURfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBEc3RUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRl
eHR1cmVEM0QxMSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBhcmFt
cyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExVGV4dHVyZTJEIiAsInBhcmFtdHlw
ZSI6ICJ2b2lkICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxO
YW1lIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCi0gICAgICAgInBhcmFtcyI6
IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbEluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVy
TW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbENvdW50IiwKLSAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21wb25l
bnRDb3VudCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldENv
bXBvbmVudE5hbWUiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29t
cG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZUxlbiIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50QnV0dG9uTWFzayIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAotICAg
ICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAg
ICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENvbXBvbmVudFN0YXRlIiwKLSAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKLSAgICAgICAi
cGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaENv
bXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFy
YW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHZyOjpWUkNv
bnRyb2xsZXJTdGF0ZV90ICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwU3RhdGUiICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicENvbXBvbmVudFN0YXRlIiAsInBhcmFt
dHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiJ9Ci0gICAg
ICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkwiLAotICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKLSAgICAg
ICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBj
aFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWlsVVJMTGVuIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAotICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hS
ZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInVuT3JpZ2luYWxQYXRoTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQotICAgICAgICBd
Ci19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsg
ICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1v
ZGVsRXJyb3IifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk5vdGlmaWNhdGlvbnMiLAotICAgICAgICJtZXRob2RuYW1lIjogIkNyZWF0ZU5vdGlmaWNhdGlv
biIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRfdCJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25UeXBl
In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAic3R5bGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBJbWFnZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3RpZmljYXRpb25CaXRtYXBfdCAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlvbklkIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJSZW1v
dmVOb3RpZmljYXRpb24iLAotICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJOb3RpZmljYXRp
b25FcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAibm90
aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkIn0KLSAgICAg
ICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSIsCi0gICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKLSAgICAgICAicGFyYW1zIjogWyAKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0
aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIsCi0gICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAiYkZv
cmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0K
LSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRo
b2RuYW1lIjogIlNldEJvb2wiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAotICAgICAg
ICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdz
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJw
ZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAot
ICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
dHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMyX3QifSwKLXsgICAgICAgInBhcmFt
bmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0K
LSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIs
Ci0gICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
Y3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAg
ICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yICoifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRTdHJpbmciLAotICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjogIkdldEJvb2wi
LAotICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0SW50MzIiLAotICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAotICAgICAgICJwYXJh
bXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQot
fQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RmxvYXQiLAotICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0
aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0g
ICAgICAgIF0KLX0KLSx7Ci0gICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCi0gICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUi
OiAiY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAidW5WYWx1ZUxlbiIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAgICAgInBh
cmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Ci0gICAgICAgIF0KLX0KLSx7Ci0gICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAotICAgICAgICJtZXRob2RuYW1lIjog
IlJlbW92ZUtleUluU2VjdGlvbiIsCi0gICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCi0gICAg
ICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGlu
Z3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1l
IjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQotICAg
ICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwK
LSAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Ci17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiSG9va1NjcmVlbnNob3QiLAot
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAotICAgICAgICJw
YXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1uYW1lIjogInBTdXBwb3J0ZWRUeXBlcyIgLCJhcnJh
eV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OkVWUlNjcmVlbnNo
b3RUeXBlICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUi
OiAiaW50In0KLSAgICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
Y3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIiwKLSAg
ICAgICAicGFyYW1zIjogWyAKLXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJh
bW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoi
fQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNo
b3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZSIsCi0gICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBb
IAoteyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJmaWxlbmFt
ZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMi
fSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFtZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogImNjaEZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciAqIn0KLSAgICAgICAg
XQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAg
ICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIiwKLSAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKLSAgICAgICAicGFyYW1zIjogWyAK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAiZmxQcm9ncmVz
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKLSAgICAgICAibWV0aG9kbmFtZSI6ICJUYWtl
U3RlcmVvU2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNo
b3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAicE91
dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
KiJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAgICAgICAgXQotfQotLHsKLSAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCi0gICAgICAgIm1ldGhvZG5hbWUi
OiAiU3VibWl0U2NyZWVuc2hvdCIsCi0gICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsCi0gICAgICAgInBhcmFtcyI6IFsgCi17ICAgICAgICJwYXJhbW5hbWUiOiAi
c2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9
LAoteyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSJ9LAoteyAgICAgICAicGFyYW1uYW1lIjogInBjaFNvdXJjZVByZXZpZXdGaWxl
bmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KLSAg
ICAgICAgXQotfQotLHsKLSAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZXNvdXJjZXMiLAot
ICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNvdXJjZSIsCi0gICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAgICAicGFyYW1u
YW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCi17
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
LXsgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQotICAgICAgICBdCi19Ci0sewotICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291
cmNlcyIsCi0gICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVzb3VyY2VGdWxsUGF0aCIsCi0gICAg
ICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAotICAgICAgICJwYXJhbXMiOiBbIAoteyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCi17ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQ
YXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKLXsgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQotICAgICAgICBdCi19Ci1d
Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNhMTBmOTUxZGM1NjM5M2RjYWM5YmI4MGU4MzQyMGJjNGE5MTUzYjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4NjkgKzAsMCBAQAot
Ly89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRpb24sIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuID09PT09PT09PT09PT09PQotLy8KLS8vIFB1cnBvc2U6IEhlYWRlciBmb3IgZmxhdHRl
ZCBTdGVhbUFQSS4gVXNlIHRoaXMgZm9yIGJpbmRpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzLgotLy8g
VGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRpdCBpdC4KLS8vCi0vLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLSNpZm5kZWYgX19PUEVOVlJfQVBJX0ZMQVRfSF9fCi0jZGVmaW5l
IF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotI2lmIGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQo
IF9fY2xhbmdfXyApCi0jcHJhZ21hIG9uY2UKLSNlbmRpZgotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LSNkZWZpbmUgRVhURVJOX0MgZXh0ZXJuICJDIgotI2Vsc2UKLSNkZWZpbmUgRVhURVJOX0MKLSNl
bmRpZgotCi0jZGVmaW5lIE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFIF9fc3RkY2FsbAotCi0vLyBP
UEVOVlIgQVBJIGV4cG9ydCBtYWNybwotI2lmIGRlZmluZWQoIF9XSU4zMiApICYmICFkZWZpbmVk
KCBfWDM2MCApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCi0gICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2RlY2xzcGVjKCBkbGxleHBvcnQgKQotICAgICAg
ICNlbGlmIGRlZmluZWQoIE9QRU5WUl9BUElfTk9ETEwgKQotICAgICAgICNkZWZpbmUgU19BUEkg
RVhURVJOX0MKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZpbmUgU19BUEkgZXh0ZXJuICJDIiBf
X2RlY2xzcGVjKCBkbGxpbXBvcnQgKSAKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBP
UlRTCi0jZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApCi0gICAgICAgI2lmIGRlZmluZWQoIE9QRU5W
Ul9BUElfRVhQT1JUUyApCi0gICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQyBfX2F0dHJpYnV0
ZV9fICgodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLSAgICAgICAjZWxzZQotICAgICAgICNkZWZp
bmUgU19BUEkgRVhURVJOX0MKLSAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBPUlRTCi0j
ZWxzZSAvLyAhV0lOMzIKLSAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkK
LSAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2Vsc2UKLSAgICAgICAjZGVm
aW5lIFNfQVBJIEVYVEVSTl9DCi0gICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUwot
I2VuZGlmCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2lmIGRlZmluZWQoIF9fV0lOMzIgKQot
dHlwZWRlZiBjaGFyIGJvb2w7Ci0jZWxzZQotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbmRpZgot
Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVp
bnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotCi0KLS8vIE9wZW5WUiBDb25zdGFudHMKLQotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAz
Mjc2ODsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRleF9I
bWQgPSAwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4VHJhY2tlZERldmljZUNv
dW50ID0gMTY7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5k
ZXhPdGhlciA9IDQyOTQ5NjcyOTQ7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFj
a2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gNDI5NDk2NzI5NTsKLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOwotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuSW52YWxpZFByb3BlcnR5VGFnID0gMDsKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50
IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU3Ry
aW5nUHJvcGVydHlUYWcgPSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1kTWF0
cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1k
TWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
SG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyA9IDMwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOwotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplID0gMzI3Njg7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQg
PSA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcga191bE92ZXJsYXlIYW5kbGVJbnZhbGlk
ID0gMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blNjcmVlbnNob3RIYW5kbGVJbnZh
bGlkID0gMDsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lz
dGVtXzAxNSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9u
ID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJUcmFj
a2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENhbWVyYV8wMDMiOwotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGludCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0hvbWVBcHAgPSAidnIvaG9tZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVfdGhlYXRl
ciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFw
cGxpY2F0aW9uc18wMDYiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJDaGFwZXJvbmVfVmVyc2lv
biA9ICJJVlJDaGFwZXJvbmVfMDAzIjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25l
U2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8wMjAiOwotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVlJPdmVybGF5TWF4TmFtZUxlbmd0aCA9IDEyODsK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlDb3VudCA9IDY0Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVzQ291bnQgPSAzMjsKLXN0YXRpYyBjb25zdCBjaGFyICogSVZST3ZlcmxheV9WZXJzaW9u
ID0gIklWUk92ZXJsYXlfMDE0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxl
cl9Db21wb25lbnRfR0RDMjAxNSA9ICJnZGMyMDE1IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNlIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwID0gInRpcCI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwID0gImhhbmRncmlwIjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0g
InN0YXR1cyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0g
IklWUlJlbmRlck1vZGVsc18wMDUiOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTm90
aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7Ci1zdGF0aWMgY29uc3QgY2hhciAqIElWUk5vdGlm
aWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7Ci1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKLXN0YXRpYyBjb25z
dCBjaGFyICogSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUht
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0
cmluZyA9ICJmb3JjZWREcml2ZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZS
X0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRl
YnVnUHJvY2Vzc1BpcGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJs
ZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVEaXN0b3J0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0gImRpc3BsYXlEZWJ1Z1giOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAi
ZGlzcGxheURlYnVnWSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VuZFN5
c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sID0gInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xl
dmVsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBk
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9
ICJiYWNrZ3JvdW5kIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24i
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWln
aHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERv
bWVSYWRpdXMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9T
dHJpbmcgPSAiZ3JpZENvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Q
bGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNvbG9yIjsKLXN0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2UiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAi
YWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZp
ZCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRf
SW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zs
b2F0ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFz
ZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9h
dCA9ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVj
dGlvbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rp
b25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9q
ZWN0aW9uIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJh
ZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7Ci1zdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1p
cnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JW
aWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENv
bXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21B
cHBMYXVuY2giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5h
YmxlSG9tZUFwcCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2V0SW5pdGlh
bERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7Ci1zdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMy
ID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8iOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0
aG91c2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVf
Qm9vbCA9ICJkaXNhYmxlaW11IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3Vz
ZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50MzIg
PSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0
aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7Ci1z
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJo
aXN0b3J5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZl
cl9udWxsIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3Ry
aW5nID0gInNlcmlhbE51bWJlciI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndpbmRvd1giOwotc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7Ci1zdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3aW5kb3dIZWlnaHQi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJl
bmRlcldpZHRoIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRf
SW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9T
ZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnMiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxv
YXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJ
bnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5
c09uVG9wIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6
ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNob3RzIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAi
c2NyZWVuc2hvdFR5cGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3RpZmljYXRpb25z
X1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX05v
dGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLXN0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3Jp
YWxDb21wbGV0aW9ucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NjYWxl
WCA9ICJTY2FsZVgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVm
dFggPSAiT2Zmc2V0TGVmdFgiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9P
ZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
S2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fy
bk9ubHlPbmNlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0
b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci1zdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfVGVzdERhdGFfRmxvYXQgPSAicGVyZlRlc3REYXRh
IjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAi
Y29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91
bmRzX1N0eWxlX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29s
bGlzaW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHND
ZW50ZXJNYXJrZXJPbiI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9
ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29s
b3JHYW1tYVIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29s
bGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEi
Owotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRz
X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIjsKLXN0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxl
Q2FtZXJhRm9yUm9vbVZpZXciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91
bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAiY2Ft
ZXJhQm91bmRzQ29sb3JHYW1tYUciOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFf
Qm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOwotc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUEiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1l
cmFfQm91bmRzU3RyZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOwotc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKLXN0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25QbGF5YmFj
a0RldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNl
X1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1
ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZp
Y2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9T
dHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9h
dWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7Ci1zdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOwot
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKLXN0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1R1cm5PZmZTY3JlZW5z
VGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5P
ZmZDb250cm9sbGVyc1RpbWVvdXQiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7
Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0
b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOwotc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOwotc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxl
RGFzaGJvYXJkIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1v
ZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKLXN0YXRpYyBjb25zdCBjaGFyICoga19wY2hfbW9kZWxz
a2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7Ci1zdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Ry
aXZlcl9FbmFibGVfQm9vbCA9ICJlbmFibGUiOwotc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTY3Jl
ZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3RzXzAwMSI7Ci1zdGF0aWMgY29uc3QgY2hh
ciAqIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEiOwotCi0vLyBPcGVu
VlIgRW51bXMKLQotdHlwZWRlZiBlbnVtIEVWUkV5ZQotewotICAgICAgIEVWUkV5ZV9FeWVfTGVm
dCA9IDAsCi0gICAgICAgRVZSRXllX0V5ZV9SaWdodCA9IDEsCi19IEVWUkV5ZTsKLQotdHlwZWRl
ZiBlbnVtIEVUZXh0dXJlVHlwZQotewotICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9E
aXJlY3RYID0gMCwKLSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwK
LSAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfVnVsa2FuID0gMiwKLSAgICAgICBFVGV4
dHVyZVR5cGVfVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywKLSAgICAgICBFVGV4dHVyZVR5cGVf
VGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwKLX0gRVRleHR1cmVUeXBlOwotCi10eXBlZGVmIGVu
dW0gRUNvbG9yU3BhY2UKLXsKLSAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0F1dG8gPSAw
LAotICAgICAgIEVDb2xvclNwYWNlX0NvbG9yU3BhY2VfR2FtbWEgPSAxLAotICAgICAgIEVDb2xv
clNwYWNlX0NvbG9yU3BhY2VfTGluZWFyID0gMiwKLX0gRUNvbG9yU3BhY2U7Ci0KLXR5cGVkZWYg
ZW51bSBFVHJhY2tpbmdSZXN1bHQKLXsKLSAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdS
ZXN1bHRfVW5pbml0aWFsaXplZCA9IDEsCi0gICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCi0gICAgICAgRVRyYWNraW5nUmVz
dWx0X1RyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgPSAxMDEsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0sgPSAyMDAsCi0gICAgICAg
RVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSA9IDIwMSwK
LX0gRVRyYWNraW5nUmVzdWx0OwotCi10eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VDbGFzcwot
ewotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQg
PSAwLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0hNRCA9
IDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfQ29udHJv
bGxlciA9IDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIgPSAzLAotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERl
dmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwKLX0gRVRyYWNrZWREZXZpY2VDbGFzczsK
LQotdHlwZWRlZiBlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0gMCwKLSAgICAg
ICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9
IDEsCi0gICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVf
UmlnaHRIYW5kID0gMiwKLX0gRVRyYWNrZWRDb250cm9sbGVyUm9sZTsKLQotdHlwZWRlZiBlbnVt
IEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCi17Ci0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW5fVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsCi0gICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW5fVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nID0gMSwKLSAgICAgICBFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbl9UcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0gMiwKLX0gRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW47Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tlZERldmljZVByb3Bl
cnR5Ci17Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ludmFsaWQgPSAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3Ry
aW5nID0gMTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTW9kZWxOdW1i
ZXJfU3RyaW5nID0gMTAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vy
aWFsTnVtYmVyX1N0cmluZyA9IDEwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgPSAxMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgPSAxMDA1LAotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9T
dHJpbmcgPSAxMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJkd2Fy
ZVJldmlzaW9uX1N0cmluZyA9IDEwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmluZyA9IDEwMDgsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmlu
ZyA9IDEwMDksCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUlzV2ly
ZWxlc3NfQm9vbCA9IDEwMTAsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rl
dmljZUlzQ2hhcmdpbmdfQm9vbCA9IDEwMTEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKLSAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCA9
IDEwMTMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sID0gMTAxNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgPSAxMDE1LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAxNiwK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQgPSAxMDE3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZVZl
cnNpb25fVWludDY0ID0gMTAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RlBHQVZlcnNpb25fVWludDY0ID0gMTAxOSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfVlJDVmVyc2lvbl9VaW50NjQgPSAxMDIwLAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0gMTAyMSwKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgPSAxMDIz
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVT
eXN0ZW1XaXRoSG1kX0Jvb2wgPSAxMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sID0gMTAyNSwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgPSAx
MDI2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VDYW5Qb3dlck9m
Zl9Cb29sID0gMTAyNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdh
cmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2xhc3NfSW50MzIgPSAxMDI5LAotICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9IYXNDYW1lcmFfQm9vbCA9IDEwMzAsCi0gICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJl
ZF9Cb29sID0gMTAzMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVml2ZVN5
c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgPSAxMDMzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKLSAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wgPSAyMDAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zX0Zsb2F0ID0gMjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQgPSAyMDAzLAotICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ID0gMjAw
NSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUZpcm13YXJlVmVy
c2lvbl9VaW50NjQgPSAyMDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9J
c09uRGVza3RvcF9Cb29sID0gMjAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCA9IDIwMDksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ID0gMjAxMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKLSAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmlu
ZyA9IDIwMTIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlUmlnaHRfU3RyaW5nID0gMjAxMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCA9IDIwMTQsCi0gICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0VkaWRQcm9kdWN0SURfSW50MzIgPSAyMDE1LAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFUb0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgPSAy
MDE2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NUeXBlX0lu
dDMyID0gMjAxNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdD
T2Zmc2V0X0Zsb2F0ID0gMjAxOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RGlzcGxheUdDU2NhbGVfRmxvYXQgPSAyMDE5LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAsCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyA9IDIwMjEsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIs
Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9h
dCA9IDIwMjMsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJS
aWdodFVfRmxvYXQgPSAyMDI0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9M
ZW5zQ2VudGVyUmlnaHRWX0Zsb2F0ID0gMjAyNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9
IDIwMjcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJl
RGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCA9IDIwMjksCi0gICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgPSAyMDMw
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDIwMzEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F1
ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyID0gMjAzMywKLSAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9m
Vmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29s
ID0gMjAzNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgPSAyMDM3LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKLSAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgPSAyMDM5LAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0lu
dDMyID0gMjA0MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1D
SW1hZ2VEYXRhX0JpbmFyeSA9IDIwNDEsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgPSAyMDQyLAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyA9IDMwMDAsCi0gICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAw
MSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczBUeXBlX0ludDMyID0g
MzAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczFUeXBlX0ludDMy
ID0gMzAwMywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczJUeXBlX0lu
dDMyID0gMzAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczNUeXBl
X0ludDMyID0gMzAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXhpczRU
eXBlX0ludDMyID0gMzAwNiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29u
dHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCA9IDQwMDAsCi0gICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0g
NDAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ID0gNDAwMiwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0ID0gNDAwMywKLSAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgPSA0MDA0
LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11
bU1ldGVyc19GbG9hdCA9IDQwMDUsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X01vZGVMYWJlbF9TdHJpbmcgPSA0MDA2LAotICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAotICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5n
X1N0cmluZyA9IDUwMDIsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAotICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nID0g
NTAwNCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERl
dmljZVJlYWR5QWxlcnRfU3RyaW5nID0gNTAwNSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCi0gICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5
X1N0cmluZyA9IDUwMDcsCi0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgPSA1MDA4LAotICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgPSA1MTAwLAot
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kID0gNTE1MCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVXNlckNv
bmZpZ1BhdGhfU3RyaW5nID0gNjAwMCwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAwMSwKLSAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKLSAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kID0g
MTA5OTksCi19IEVUcmFja2VkRGV2aWNlUHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IKLXsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFBy
b3BfU3VjY2VzcyA9IDAsCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9w
X1dyb25nRGF0YVR5cGUgPSAxLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2Vk
UHJvcF9Xcm9uZ0RldmljZUNsYXNzID0gMiwKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvcl9UcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAotICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlID0gNSwKLSAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyID0gNiwKLSAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5
RGV2aWNlID0gNywKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfU3Ry
aW5nRXhjZWVkc01heGltdW1MZW5ndGggPSA4LAotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJv
cl9UcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAotICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvcl9UcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkID0gMTAsCi0gICAgICAgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb24gPSAxMSwKLX0gRVRy
YWNrZWRQcm9wZXJ0eUVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU3VibWl0RmxhZ3MKLXsKLSAg
ICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfRGVmYXVsdCA9IDAsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAxLAotICAgICAgIEVW
UlN1Ym1pdEZsYWdzX1N1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDIsCi0gICAgICAgRVZSU3VibWl0
RmxhZ3NfU3VibWl0X1Jlc2VydmVkID0gNCwKLX0gRVZSU3VibWl0RmxhZ3M7Ci0KLXR5cGVkZWYg
ZW51bSBFVlJTdGF0ZQotewotICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfVW5kZWZpbmVkID0gLTEs
Ci0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9PZmYgPSAwLAotICAgICAgIEVWUlN0YXRlX1ZSU3Rh
dGVfU2VhcmNoaW5nID0gMSwKLSAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1NlYXJjaGluZ19BbGVy
dCA9IDIsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9SZWFkeSA9IDMsCi0gICAgICAgRVZSU3Rh
dGVfVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9Ob3RS
ZWFkeSA9IDUsCi0gICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TdGFuZGJ5ID0gNiwKLSAgICAgICBF
VlJTdGF0ZV9WUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCi19IEVWUlN0YXRlOwotCi10eXBl
ZGVmIGVudW0gRVZSRXZlbnRUeXBlCi17Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm9u
ZSA9IDAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZUFjdGl2YXRl
ZCA9IDEwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3Rp
dmF0ZWQgPSAxMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgPSAxMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgPSAxMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
VHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAotICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfRW50ZXJTdGFuZGJ5TW9kZSA9IDEwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9M
ZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNr
ZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEwOCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9X
YXRjaGRvZ1dha2VVcFJlcXVlc3RlZCA9IDEwOSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgPSAxMTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfUHJvcGVydHlDaGFuZ2VkID0gMTExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1
dHRvblByZXNzID0gMjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVucHJl
c3MgPSAyMDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVG91Y2ggPSAyMDIs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVW50b3VjaCA9IDIwMywKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Nb3VzZU1vdmUgPSAzMDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfTW91c2VCdXR0b25Eb3duID0gMzAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vdXNlQnV0dG9uVXAgPSAzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
Rm9jdXNFbnRlciA9IDMwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Gb2N1c0xlYXZl
ID0gMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Njcm9sbCA9IDMwNSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVyZWQgPSA0MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X1NjZW5lRm9jdXNHYWluZWQgPSA0MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
U2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQgPSA0MDQsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfU2NlbmVGb2N1c0NoYW5nZWQgPSA0MDUsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
SW5wdXRGb2N1c0NoYW5nZWQgPSA0MDYsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Nl
bmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzID0gNDExLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9PdmVybGF5SGlkZGVuID0gNTAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZEFjdGl2YXRlZCA9IDUwMiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCA9IDUwMywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkID0gNTA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hi
b2FyZFJlcXVlc3RlZCA9IDUwNSwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXNldERh
c2hib2FyZCA9IDUwNiwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZW5kZXJUb2FzdCA9
IDUwNywKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUxvYWRlZCA9IDUwOCwKLSAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDksCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEwLAotICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgPSA1MTEsCi0gICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgPSA1MTIsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biA9IDUxNCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VGYWlsZWQgPSA1MTcsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1MTgsCi0gICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgPSA1MjAsCi0gICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFRha2VuID0gNTIxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgPSA1MjIsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkID0gNTIzLAotICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc1RvRGFzaGJvYXJkID0gNTI0LAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2Vk
ID0gNTI1LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9
IDYwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuID0g
NjAxLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbkludGVy
YWN0aW9uID0gNjAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9E
ZXN0cm95ZWQgPSA2MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdCA9IDcwMCwK
LSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qcm9jZXNzUXVpdCA9IDcwMSwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ID0gNzAyLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXRBY2tub3dsZWRnZWQgPSA3MDMsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCA9IDgwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgPSA4MDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkID0g
ODAyLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNo
YW5nZWQgPSA4MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VS
ZXNldCA9IDgwNCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2
ZUNoYW5nZWQgPSA4MjAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQmFja2dyb3VuZFNl
dHRpbmdIYXNDaGFuZ2VkID0gODUwLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NhbWVy
YVNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
UmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MywKLSAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTQsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1
LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCA9IDEwMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkID0gMTEwMCwKLSAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkID0gMTEwMSwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9LZXlib2FyZENsb3NlZCA9IDEyMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAotICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkRG9uZSA9IDEyMDIsCi0gICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhcnRlZCA9IDEzMDAsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCi0g
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCA9IDEzMDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25MaXN0
VXBkYXRlZCA9IDEzMDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25N
aW1lVHlwZUxvYWQgPSAxMzA0LAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0
aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKLSAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duID0gMTQwMCwKLSAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0
MDEsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3Vu
ZHNTaG93biA9IDE0MTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNIaWRkZW4gPSAxNDExLAotICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCi0gICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAotICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUGF1c2VWaWRlb1N0cmVhbSA9IDE1
MDIsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRl
b1N0cmVhbSA9IDE1MDMsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCi0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X0VuYWJsZUNhcHR1cmUgPSAxNjAwLAotICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSA9IDE2MDEsCi0gICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgPSAxNjAyLAot
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCA9IDE2NTAs
Ci0gICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3Rh
cnQgPSAxMDAwMCwKLSAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVjaWZpY19S
ZXNlcnZlZF9FbmQgPSAxOTk5OSwKLX0gRVZSRXZlbnRUeXBlOwotCi10eXBlZGVmIGVudW0gRURl
dmljZUFjdGl2aXR5TGV2ZWwKLXsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZl
bF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLAotICAgICAgIEVEZXZpY2VBY3Rpdml0
eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwKLSAgICAg
ICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFj
dGlvbl9UaW1lb3V0ID0gMiwKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAotfSBFRGV2aWNlQWN0aXZpdHlMZXZlbDsKLQotdHlw
ZWRlZiBlbnVtIEVWUkJ1dHRvbklkCi17Ci0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N5
c3RlbSA9IDAsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9
IDEsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0dyaXAgPSAyLAotICAgICAgIEVWUkJ1
dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0xlZnQgPSAzLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9EUGFkX1VwID0gNCwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9SaWdo
dCA9IDUsCi0gICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfRG93biA9IDYsCi0gICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0EgPSA3LAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1
dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
QXhpczAgPSAzMiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczEgPSAzMywKLSAg
ICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhpczIgPSAzNCwKLSAgICAgICBFVlJCdXR0b25J
ZF9rX0VCdXR0b25fQXhpczMgPSAzNSwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXhp
czQgPSAzNiwKLSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCA9
IDMyLAotICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAzMywK
LSAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgPSAyLAotICAgICAg
IEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9NYXggPSA2NCwKLX0gRVZSQnV0dG9uSWQ7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJNb3VzZUJ1dHRvbgotewotICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VC
dXR0b25fTGVmdCA9IDEsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9SaWdo
dCA9IDIsCi0gICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9NaWRkbGUgPSA0LAot
fSBFVlJNb3VzZUJ1dHRvbjsKLQotdHlwZWRlZiBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsK
LSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0g
MCwKLSAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2Ug
PSAxLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAotICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfTWF4
ID0gMywKLX0gRUhpZGRlbkFyZWFNZXNoVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQotewotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250cm9sbGVy
QXhpc19Ob25lID0gMCwKLSAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250
cm9sbGVyQXhpc19Kb3lzdGljayA9IDIsCi0gICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tf
ZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAzLAotfSBFVlJDb250cm9sbGVyQXhpc1R5cGU7Ci0K
LXR5cGVkZWYgZW51bSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlCi17Ci0gICAgICAgRVZS
Q29udHJvbGxlckV2ZW50T3V0cHV0VHlwZV9Db250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMg
PSAwLAotICAgICAgIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50
T3V0cHV0X1ZSRXZlbnRzID0gMSwKLX0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZTsKLQot
dHlwZWRlZiBlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQotewotICAgICAgIEVDb2xsaXNpb25C
b3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKLSAgICAgICBF
Q29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUg
PSAxLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxF
X1NRVUFSRVMgPSAyLAotICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9OT05FID0gNCwKLSAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5
bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUsCi19IEVDb2xsaXNpb25Cb3VuZHNT
dHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlFcnJvcgotewotICAgICAgIEVWUk92ZXJs
YXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob25lID0gMCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfVW5rbm93bk92ZXJsYXkgPSAxMCwKLSAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZEhhbmRsZSA9IDExLAotICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkID0gMTIsCi0gICAgICAgRVZST3Zl
cmxheUVycm9yX1ZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkID0gMTMsCi0gICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5cGUgPSAx
NCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyA9IDE1
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9OYW1lVG9vTG9uZyA9IDE2
LAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlJblVzZSA9IDE3LAot
ICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUg
PSAxOCwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZFRyYWNr
ZWREZXZpY2UgPSAxOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52
YWxpZFBhcmFtZXRlciA9IDIwLAotICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJv
cl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCA9IDIyLAotICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMjMsCi0gICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlID0gMjQsCi0gICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX1VuYWJsZVRvTG9hZEZpbGUgPSAyNSwKLSAgICAgICBFVlJP
dmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgPSAyNiwKLSAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciA9IDI3LAotICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ub29NYW55TWFza1ByaW1pdGl2ZXMg
PSAyOSwKLSAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSA9IDMwLAotfSBFVlJPdmVybGF5RXJyb3I7Ci0KLXR5cGVkZWYgZW51bSBFVlJBcHBsaWNh
dGlvblR5cGUKLXsKLSAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdGhl
ciA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU2NlbmUgPSAx
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX0JhY2tncm91bmQgPSAzLAot
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LAotICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsCi0g
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fTWF4ID0gNywKLX0gRVZSQXBw
bGljYXRpb25UeXBlOwotCi10eXBlZGVmIGVudW0gRVZSRmlybXdhcmVFcnJvcgotewotICAgICAg
IEVWUkZpcm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX05vbmUgPSAwLAotICAgICAgIEVWUkZp
cm13YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX1N1Y2Nlc3MgPSAxLAotICAgICAgIEVWUkZpcm13
YXJlRXJyb3JfVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfSBFVlJGaXJtd2FyZUVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uRXJyb3IKLXsKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEw
MCwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX05vdGlm
aWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAgIEVWUk5v
dGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFs
cmVhZHlFeGlzdHMgPSAxMDMsCi19IEVWUk5vdGlmaWNhdGlvbkVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX05vbmUg
PSAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Vbmtub3duID0gMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEw
MCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3Jy
dXB0ID0gMTAxLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50
RExMTm90Rm91bmQgPSAxMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
RmlsZU5vdEZvdW5kID0gMTAzLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0ZhY3RvcnlOb3RGb3VuZCA9IDEwNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkID0gMTA3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kID0gMTA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkID0gMTA5LAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kID0g
MTEwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCA9
IDExMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggPSAx
MTIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90
V3JpdGFibGUgPSAxMTMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfQXBw
SW5mb0luaXRGYWlsZWQgPSAxMTQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfUmV0cnkgPSAxMTUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5p
dENhbmNlbGVkQnlVc2VyID0gMTE2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkID0gMTE4LAotICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biA9IDExOSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKLSAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgPSAxMjEsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBv
c2l0b3IgPSAxMjIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90QXZh
aWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9JbnRlcm5hbCA9IDEyNCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSA9IDEyNSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAotICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgPSAx
MjgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRv
Z05vdFN1cHBvcnRlZCA9IDEyOSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlID0gMTMwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzID0gMTMxLAotICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0g
MTMyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90
Rm91bmQgPSAxMzMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmRTdGFydHVwRmFpbGVkID0gMTM0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfRmFpbGVkID0gMjAwLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9E
cml2ZXJfVW5rbm93biA9IDIwMSwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0htZFVua25vd24gPSAyMDIsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9Ob3RMb2FkZWQgPSAyMDMsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9SdW50aW1lT3V0T2ZEYXRlID0gMjA0LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Ecml2ZXJfSG1kSW5Vc2UgPSAyMDUsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkID0gMjA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkID0gMjA3LAotICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kID0gMjA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVu
a25vd24gPSAyMDksCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
cml2ZXJJZE91dE9mQm91bmRzID0gMjExLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkID0gMjEyLAotICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgPSAzMDEsCi0gICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgPSAzMDIsCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywK
LSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCA9IDMw
NCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCA9IDMwNSwKLSAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVk
ID0gMzA2LAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvcklu
dmFsaWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWly
ZWQgPSA0MDEsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSA9IDQwMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCA9IDQwMywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgPSA0MDQsCi0g
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29u
bmVjdFRvT2N1bHVzUnVudGltZSA9IDEwMDAsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlID0gMTEwMSwKLSAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAotICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyA9IDExMDMsCi0gICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZp
Z1Rvb0JpZyA9IDExMDQsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsID0gMTEwNSwKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiA9
IDExMDYsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKLSAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRh
dGFTdGFydCA9IDExMDgsCi0gICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCA9IDExMDksCi0gICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
R2V0VXNlckRhdGFOZXh0ID0gMTExMCwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgPSAxMTExLAotICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2Vy
RGF0YUVycm9yID0gMTExMiwKLSAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEzLAotICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5k
ID0gMjAwMCwKLX0gRVZSSW5pdEVycm9yOwotCi10eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdFR5
cGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX05vbmUgPSAw
LAotICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ubyA9IDEsCi0g
ICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAg
ICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1hcCA9IDMsCi0gICAg
ICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAot
ICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEg
PSA1LAotfSBFVlJTY3JlZW5zaG90VHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
c19WUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKLSAgICAgICBFVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNf
VlIgPSAxLAotfSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXM7Ci0KLXR5cGVkZWYgZW51
bSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IKLXsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCA9IDEwMCwKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSA9
IDEwMSwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiA9IDEwMiwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzID0gMTAzLAotICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlID0gMTA0
LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob3RT
dXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAotICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmlu
Z0ZhaWx1cmUgPSAxMDcsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX1N0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKLSAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkID0gMTA5LAot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
U2hhcmVkVGV4dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVy
ZUZhaWx1cmUgPSAxMTIsCi0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUgPSAxMTMsCi0gICAgICAgRVZSVHJhY2tlZENhbWVy
YUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCA9IDExNCwKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1l
QnVmZmVyU2l6ZSA9IDExNSwKLX0gRVZSVHJhY2tlZENhbWVyYUVycm9yOwotCi10eXBlZGVmIGVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsCi0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0
b3J0ZWQgPSAxLAotICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCA9IDIsCi0gICAgICAgRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZV9NQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTID0gMywKLX0gRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uRXJyb3IKLXsKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Ob25lID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5
RXhpc3RzID0gMTAwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX05vTWFuaWZlc3QgPSAxMDEsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxp
Y2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiA9IDEwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXggPSAxMDMsCi0gICAgICAgRVZSQXBw
bGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0lQQ0ZhaWxl
ZCA9IDEwNSwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9B
cHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEwNywKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24gPSAx
MDgsCi0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNo
RmFpbGVkID0gMTA5LAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0gMTEwLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgPSAxMTEsCi0gICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25R
dWl0dGluZyA9IDExMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25F
cnJvcl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
X1ZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBsYXRlID0gMTE0LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxsID0gMjAwLAotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Byb3BlcnR5Tm90U2V0ID0g
MjAxLAotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25v
d25Qcm9wZXJ0eSA9IDIwMiwKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRp
b25FcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAotfSBFVlJBcHBsaWNhdGlvbkVycm9yOwot
Ci10eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25Qcm9wZXJ0eQotewotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nID0gMCwKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hU
eXBlX1N0cmluZyA9IDExLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNh
dGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nID0gMTIsCi0gICAgICAgRVZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmcg
PSAxMywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Bcmd1bWVudHNfU3RyaW5nID0gMTQsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9W
UkFwcGxpY2F0aW9uUHJvcGVydHlfVVJMX1N0cmluZyA9IDE1LAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rlc2NyaXB0aW9uX1N0cmluZyA9IDUw
LAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X05l
d3NVUkxfU3RyaW5nID0gNTEsCi0gICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyA9IDUyLAotICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9TdHJpbmcgPSA1MywKLSAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hi
b2FyZE92ZXJsYXlfQm9vbCA9IDYwLAotICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJB
cHBsaWNhdGlvblByb3BlcnR5X0lzVGVtcGxhdGVfQm9vbCA9IDYxLAotICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgPSA2
MiwKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9J
c0ludGVybmFsX0Jvb2wgPSA2MywKLSAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgPSA3MCwKLX0gRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eTsKLQotdHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0
YXRlCi17Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fTm9uZSA9IDAsCi0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQgPSAxMCwKLSAgICAgICBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0
aW5nRm9yRXh0ZXJuYWxMYXVuY2ggPSAxMSwKLSAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRp
b25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVuY2hlZCA9IDIwLAotfSBF
VlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZTsKLQotdHlwZWRlZiBlbnVtIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGUKLXsKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0g
MSwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCi0gICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1v
dmVkID0gMTAxLAotICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNl
U3RhdGlvblJlbW92ZWQgPSAxMDIsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9X
YXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsCi0gICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvciA9IDIwMCwKLSAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCA9IDIwMSwKLSAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsCi0gICAgICAg
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsCi0g
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZh
bGlkID0gMjA0LAotfSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlOwotCi10eXBlZGVmIGVudW0g
RUNoYXBlcm9uZUNvbmZpZ0ZpbGUKLXsKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9MaXZl
ID0gMSwKLSAgICAgICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9UZW1wID0gMiwKLX0gRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGU7Ci0KLXR5cGVkZWYgZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKLXsKLSAg
ICAgICBFQ2hhcGVyb25lSW1wb3J0RmxhZ3NfRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0g
MSwKLX0gRUNoYXBlcm9uZUltcG9ydEZsYWdzOwotCi10eXBlZGVmIGVudW0gRVZSQ29tcG9zaXRv
ckVycm9yCi17Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX05v
bmUgPSAwLAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9SZXF1
ZXN0RmFpbGVkID0gMSwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJy
b3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3Jf
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCi0gICAgICAgRVZSQ29tcG9z
aXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlID0gMTAyLAotICAgICAg
IEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Jc05vdFNjZW5lQXBwbGljYXRp
b24gPSAxMDMsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1Rl
eHR1cmVJc09uV3JvbmdEZXZpY2UgPSAxMDQsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQgPSAxMDUsCi0gICAg
ICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1NoYXJlZFRleHR1cmVzTm90
U3VwcG9ydGVkID0gMTA2LAotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JF
cnJvcl9JbmRleE91dE9mUmFuZ2UgPSAxMDcsCi0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgPSAxMDgsCi19IEVWUkNvbXBvc2l0b3JF
cnJvcjsKLQotdHlwZWRlZiBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCi17Ci0gICAgICAgVlJP
dmVybGF5SW5wdXRNZXRob2RfTm9uZSA9IDAsCi0gICAgICAgVlJPdmVybGF5SW5wdXRNZXRob2Rf
TW91c2UgPSAxLAotfSBWUk92ZXJsYXlJbnB1dE1ldGhvZDsKLQotdHlwZWRlZiBlbnVtIFZST3Zl
cmxheVRyYW5zZm9ybVR5cGUKLXsKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3Zl
cmxheVRyYW5zZm9ybV9BYnNvbHV0ZSA9IDAsCi0gICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlw
ZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKLSAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1PdmVybGF5ID0g
MiwKLSAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9UcmFj
a2VkQ29tcG9uZW50ID0gMywKLX0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZTsKLQotdHlwZWRlZiBl
bnVtIFZST3ZlcmxheUZsYWdzCi17Ci0gICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSA9IDAsCi0g
ICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVkID0gMSwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19S
R1NTNFggPSAyLAotICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0gMywKLSAg
ICAgICBWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCi0gICAgICAgVlJP
dmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyA9IDUsCi0gICAgICAgVlJPdmVybGF5RmxhZ3Nf
U2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3Vj
aHBhZEV2ZW50cyA9IDcsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xs
V2hlZWwgPSA4LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRl
cm5hbFByb2Nlc3MgPSA5LAotICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxs
ZWwgPSAxMCwKLSAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwK
LSAgICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLAotICAgICAgIFZST3ZlcmxheUZs
YWdzX1N0ZXJlb1Bhbm9yYW1hID0gMTMsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhO
b25TY2VuZU92ZXJsYXlzID0gMTQsCi0gICAgICAgVlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFz
aGJvYXJkID0gMTUsCi19IFZST3ZlcmxheUZsYWdzOwotCi10eXBlZGVmIGVudW0gVlJNZXNzYWdl
T3ZlcmxheVJlc3BvbnNlCi17Ci0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRv
blByZXNzXzAgPSAwLAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18xID0gMSwKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9
IDIsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMgPSAzLAot
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkg
PSA0LAotICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRl
Q2xpZW50T3ZlcmxheSA9IDUsCi0gICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0FwcGxp
Y2F0aW9uUXVpdCA9IDYsCi19IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKLQotdHlwZWRlZiBl
bnVtIEVHYW1lcGFkVGV4dElucHV0TW9kZQotewotICAgICAgIEVHYW1lcGFkVGV4dElucHV0TW9k
ZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCi0gICAgICAgRUdhbWVwYWRUZXh0
SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAotICAgICAgIEVH
YW1lcGFkVGV4dElucHV0TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCA9IDIsCi19
IEVHYW1lcGFkVGV4dElucHV0TW9kZTsKLQotdHlwZWRlZiBlbnVtIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGUKLXsKLSAgICAgICBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlX2tfRUdhbWVwYWRU
ZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAotICAgICAgIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGVfa19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEsCi19
IEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGU7Ci0KLXR5cGVkZWYgZW51bSBFT3ZlcmxheURpcmVj
dGlvbgotewotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fVXAgPSAw
LAotICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fRG93biA9IDEsCi0g
ICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9MZWZ0ID0gMiwKLSAgICAg
ICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1JpZ2h0ID0gMywKLSAgICAgICBF
T3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0NvdW50ID0gNCwKLX0gRU92ZXJsYXlE
aXJlY3Rpb247Ci0KLXR5cGVkZWYgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZVR5cGUKLXsKLSAgICAgICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5
cGVfT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlID0gMCwKLSAgICAg
ICBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGVfT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlID0gMSwKLX0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVUeXBlOwotCi10eXBlZGVmIGVudW0gRVZSUmVuZGVyTW9kZWxFcnJvcgotewot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vbmUgPSAwLAot
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgPSAx
MDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90U3Vw
cG9ydGVkID0gMjAwLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVy
cm9yX0ludmFsaWRBcmcgPSAzMDAsCi0gICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsID0gMzAxLAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vU2hhcGVzID0gMzAyLAotICAgICAgIEVWUlJlbmRlck1v
ZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzID0gMzAzLAotICAgICAg
IEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyA9
IDMwNCwKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0
aXBsZVRleHR1cmVzID0gMzA1LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJN
b2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMgPSAzMDcsCi0gICAgICAgRVZS
UmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0g
MzA4LAotICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0ludmFs
aWRUZXh0dXJlID0gNDAwLAotfSBFVlJSZW5kZXJNb2RlbEVycm9yOwotCi10eXBlZGVmIGVudW0g
RVZSQ29tcG9uZW50UHJvcGVydHkKLXsKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNv
bXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0gMSwKLSAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0
eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9IDIsCi0gICAgICAgRVZSQ29tcG9uZW50
UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQgPSA0LAotICAgICAgIEVWUkNv
bXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVzc2VkID0gOCwKLSAgICAg
ICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzU2Nyb2xsZWQgPSAx
NiwKLX0gRVZSQ29tcG9uZW50UHJvcGVydHk7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRp
b25UeXBlCi17Ci0gICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQgPSAwLAotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCi0gICAgICAgRVZSTm90aWZp
Y2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCi19IEVWUk5vdGlm
aWNhdGlvblR5cGU7Ci0KLXR5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQotewotICAg
ICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0FwcGxpY2F0aW9uID0gMTAwLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0Nv
bnRhY3RfRGlzYWJsZWQgPSAyMDAsCi0gICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFj
dF9FbmFibGVkID0gMjAxLAotICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0
aXZlID0gMjAyLAotfSBFVlJOb3RpZmljYXRpb25TdHlsZTsKLQotdHlwZWRlZiBlbnVtIEVWUlNl
dHRpbmdzRXJyb3IKLXsKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9O
b25lID0gMCwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9JUENGYWls
ZWQgPSAxLAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFp
bGVkID0gMiwKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9SZWFkRmFp
bGVkID0gMywKLSAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Kc29uUGFy
c2VGYWlsZWQgPSA0LAotICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1Vu
c2V0U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsCi19IEVWUlNldHRpbmdzRXJyb3I7Ci0KLXR5cGVk
ZWYgZW51bSBFVlJTY3JlZW5zaG90RXJyb3IKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Jf
VlJTY3JlZW5zaG90RXJyb3JfTm9uZSA9IDAsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZS
U2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQgPSAxLAotICAgICAgIEVWUlNjcmVlbnNob3RF
cnJvcl9WUlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAotICAgICAg
IEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCA9IDEwMSwKLSAg
ICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwg
PSAxMDIsCi0gICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX1NjcmVl
bnNob3RBbHJlYWR5SW5Qcm9ncmVzcyA9IDEwOCwKLX0gRVZSU2NyZWVuc2hvdEVycm9yOwotCi0K
LS8vIE9wZW5WUiB0eXBlZGVmcwotCi10eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRl
eF90OwotdHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwotdHlwZWRlZiB1aW50NjRf
dCBWUk92ZXJsYXlIYW5kbGVfdDsKLQotdHlwZWRlZiB2b2lkICogZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlX3Q7Ci10eXBlZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50
X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKLXR5cGVkZWYgdWlu
dDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci10eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3Q7Ci10eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OwotdHlw
ZWRlZiB1aW50NjRfdCBWUk92ZXJsYXlIYW5kbGVfdDsKLXR5cGVkZWYgdWludDY0X3QgVHJhY2tl
ZENhbWVyYUhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7Ci10
eXBlZGVmIHVpbnQzMl90IFZSQ29tcG9uZW50UHJvcGVydGllczsKLXR5cGVkZWYgaW50MzJfdCBU
ZXh0dXJlSURfdDsKLXR5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKLXR5cGVkZWYg
RVZSSW5pdEVycm9yIEhtZEVycm9yOwotdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKLXR5cGVkZWYg
RUNvbG9yU3BhY2UgQ29sb3JTcGFjZTsKLXR5cGVkZWYgRVRyYWNraW5nUmVzdWx0IEhtZFRyYWNr
aW5nUmVzdWx0OwotdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VDbGFz
czsKLXR5cGVkZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bjsKLXR5cGVkZWYgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBUcmFja2VkRGV2aWNlUHJvcGVydHk7
Ci10eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBUcmFja2VkUHJvcGVydHlFcnJvcjsKLXR5
cGVkZWYgRVZSU3VibWl0RmxhZ3MgVlJTdWJtaXRGbGFnc190OwotdHlwZWRlZiBFVlJTdGF0ZSBW
UlN0YXRlX3Q7Ci10eXBlZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNT
dHlsZV90OwotdHlwZWRlZiBFVlJPdmVybGF5RXJyb3IgVlJPdmVybGF5RXJyb3I7Ci10eXBlZGVm
IEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOwotdHlwZWRlZiBFVlJDb21wb3NpdG9y
RXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7Ci10eXBlZGVmIEVWUlNjcmVlbnNob3RFcnJvciBWUlNj
cmVlbnNob3RzRXJyb3I7Ci0KLS8vIE9wZW5WUiBTdHJ1Y3RzCi0KLXR5cGVkZWYgc3RydWN0IEht
ZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOyAvL2Zsb2F0WzNdWzRdCi19IEht
ZE1hdHJpeDM0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBm
bG9hdCBtWzRdWzRdOyAvL2Zsb2F0WzRdWzRdCi19IEhtZE1hdHJpeDQ0X3Q7Ci0KLXR5cGVkZWYg
c3RydWN0IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107IC8vZmxvYXRbM10KLX0g
SG1kVmVjdG9yM190OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3I0X3QKLXsKLSAgICAgICBm
bG9hdCB2WzRdOyAvL2Zsb2F0WzRdCi19IEhtZFZlY3RvcjRfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SG1kVmVjdG9yM2RfdAotewotICAgICAgIGRvdWJsZSB2WzNdOyAvL2RvdWJsZVszXQotfSBIbWRW
ZWN0b3IzZF90OwotCi10eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3IyX3QKLXsKLSAgICAgICBmbG9h
dCB2WzJdOyAvL2Zsb2F0WzJdCi19IEhtZFZlY3RvcjJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgSG1k
UXVhdGVybmlvbl90Ci17Ci0gICAgICAgZG91YmxlIHc7Ci0gICAgICAgZG91YmxlIHg7Ci0gICAg
ICAgZG91YmxlIHk7Ci0gICAgICAgZG91YmxlIHo7Ci19IEhtZFF1YXRlcm5pb25fdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgSG1kQ29sb3JfdAotewotICAgICAgIGZsb2F0IHI7Ci0gICAgICAgZmxvYXQg
ZzsKLSAgICAgICBmbG9hdCBiOwotICAgICAgIGZsb2F0IGE7Ci19IEhtZENvbG9yX3Q7Ci0KLXR5
cGVkZWYgc3RydWN0IEhtZFF1YWRfdAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkNv
cm5lcnNbNF07IC8vc3RydWN0IHZyOjpIbWRWZWN0b3IzX3RbNF0KLX0gSG1kUXVhZF90OwotCi10
eXBlZGVmIHN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2
VG9wTGVmdDsKLSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZCb3R0b21SaWdodDsKLX0gSG1k
UmVjdDJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKLXsKLSAg
ICAgICBmbG9hdCByZlJlZFsyXTsgLy9mbG9hdFsyXQotICAgICAgIGZsb2F0IHJmR3JlZW5bMl07
IC8vZmxvYXRbMl0KLSAgICAgICBmbG9hdCByZkJsdWVbMl07IC8vZmxvYXRbMl0KLX0gRGlzdG9y
dGlvbkNvb3JkaW5hdGVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFRleHR1cmVfdAotewotICAgICAg
IHZvaWQgKiBoYW5kbGU7IC8vIHZvaWQgKgotICAgICAgIGVudW0gRVRleHR1cmVUeXBlIGVUeXBl
OwotICAgICAgIGVudW0gRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Ci19IFRleHR1cmVfdDsKLQot
dHlwZWRlZiBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdAotewotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2VmVsb2NpdHk7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2QW5ndWxhclZl
bG9jaXR5OwotICAgICAgIGVudW0gRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsKLSAg
ICAgICBib29sIGJQb3NlSXNWYWxpZDsKLSAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsK
LX0gVHJhY2tlZERldmljZVBvc2VfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRz
X3QKLXsKLSAgICAgICBmbG9hdCB1TWluOwotICAgICAgIGZsb2F0IHZNaW47Ci0gICAgICAgZmxv
YXQgdU1heDsKLSAgICAgICBmbG9hdCB2TWF4OwotfSBWUlRleHR1cmVCb3VuZHNfdDsKLQotdHlw
ZWRlZiBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgdWludDY0X3QgbV9u
SW1hZ2U7Ci0gICAgICAgc3RydWN0IFZrRGV2aWNlX1QgKiBtX3BEZXZpY2U7IC8vIHN0cnVjdCBW
a0RldmljZV9UICoKLSAgICAgICBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICogbV9wUGh5c2lj
YWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKgotICAgICAgIHN0cnVjdCBW
a0luc3RhbmNlX1QgKiBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCi0gICAg
ICAgc3RydWN0IFZrUXVldWVfVCAqIG1fcFF1ZXVlOyAvLyBzdHJ1Y3QgVmtRdWV1ZV9UICoKLSAg
ICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4OwotICAgICAgIHVpbnQzMl90IG1fbldp
ZHRoOwotICAgICAgIHVpbnQzMl90IG1fbkhlaWdodDsKLSAgICAgICB1aW50MzJfdCBtX25Gb3Jt
YXQ7Ci0gICAgICAgdWludDMyX3QgbV9uU2FtcGxlQ291bnQ7Ci19IFZSVnVsa2FuVGV4dHVyZURh
dGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgc3Ry
dWN0IElEM0QxMlJlc291cmNlICogbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJSZXNvdXJj
ZSAqCi0gICAgICAgc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIG1fcENvbW1hbmRRdWV1ZTsg
Ly8gc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqCi0gICAgICAgdWludDMyX3QgbV9uTm9kZU1h
c2s7Ci19IEQzRDEyVGV4dHVyZURhdGFfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Db250
cm9sbGVyX3QKLXsKLSAgICAgICB1aW50MzJfdCBidXR0b247Ci19IFZSRXZlbnRfQ29udHJvbGxl
cl90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X01vdXNlX3QKLXsKLSAgICAgICBmbG9hdCB4
OwotICAgICAgIGZsb2F0IHk7Ci0gICAgICAgdWludDMyX3QgYnV0dG9uOwotfSBWUkV2ZW50X01v
dXNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKLXsKLSAgICAgICBmbG9h
dCB4ZGVsdGE7Ci0gICAgICAgZmxvYXQgeWRlbHRhOwotICAgICAgIHVpbnQzMl90IHJlcGVhdENv
dW50OwotfSBWUkV2ZW50X1Njcm9sbF90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgYm9vbCBiRmluZ2VyRG93bjsKLSAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOwotICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKLSAgICAgICBmbG9h
dCBmVmFsdWVZRmlyc3Q7Ci0gICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKLSAgICAgICBmbG9hdCBm
VmFsdWVZUmF3OwotfSBWUkV2ZW50X1RvdWNoUGFkTW92ZV90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0g
ICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19IFZSRXZlbnRfTm90aWZpY2F0aW9uX3Q7
Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWludDMyX3Qg
cGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7Ci19IFZS
RXZlbnRfUHJvY2Vzc190OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewot
ICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci19IFZSRXZlbnRfT3ZlcmxheV90OwotCi10
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVz
U3RhdGU7Ci19IFZSRXZlbnRfU3RhdHVzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZlbnRfS2V5
Ym9hcmRfdAotewotICAgICAgIGNoYXIgKiBjTmV3SW5wdXRbOF07IC8vY2hhcls4XQotICAgICAg
IHVpbnQ2NF90IHVVc2VyVmFsdWU7Ci19IFZSRXZlbnRfS2V5Ym9hcmRfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgVlJFdmVudF9JcGRfdAotewotICAgICAgIGZsb2F0IGlwZE1ldGVyczsKLX0gVlJFdmVu
dF9JcGRfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9DaGFwZXJvbmVfdAotewotICAgICAg
IHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7Ci0gICAgICAgdWludDY0X3QgbV9uQ3VycmVu
dFVuaXZlcnNlOwotfSBWUkV2ZW50X0NoYXBlcm9uZV90OwotCi10eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1Jlc2VydmVkX3QKLXsKLSAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7Ci0gICAgICAgdWlu
dDY0X3QgcmVzZXJ2ZWQxOwotfSBWUkV2ZW50X1Jlc2VydmVkX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKLXsKLSAgICAgICB1aW50MzJfdCBtX25GaWRlbGl0
eUxldmVsOwotfSBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90OwotCi10eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAotewotICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0
ZW1NZW51OwotfSBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdDsKLQotdHlwZWRlZiBzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKLXsKLSAgICAgICB1aW50MzJfdCBoYW5kbGU7Ci0gICAg
ICAgdWludDMyX3QgdHlwZTsKLX0gVlJFdmVudF9TY3JlZW5zaG90X3Q7Ci0KLXR5cGVkZWYgc3Ry
dWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVz
czsKLX0gVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Ci17Ci0gICAgICAgdWludDMyX3QgcGlkOwotICAgICAg
IHVpbnQzMl90IHVuQXJnc0hhbmRsZTsKLX0gVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Owot
Ci10eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKLXsKLSAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOwotICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOwot
fSBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSRXZl
bnRfTWVzc2FnZU92ZXJsYXlfdAotewotICAgICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlOwotfSBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFZSRXZlbnRfUHJvcGVydHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
Y29udGFpbmVyOwotICAgICAgIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotfSBW
UkV2ZW50X1Byb3BlcnR5X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKLXsK
LSAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90ICogcFZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVj
dCB2cjo6SG1kVmVjdG9yMl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci19
IEhpZGRlbkFyZWFNZXNoX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAot
ewotICAgICAgIGZsb2F0IHg7Ci0gICAgICAgZmxvYXQgeTsKLX0gVlJDb250cm9sbGVyQXhpc190
OwotCi10eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZV90Ci17Ci0gICAgICAgdWludDMy
X3QgdW5QYWNrZXROdW07Ci0gICAgICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOwotICAgICAg
IHVpbnQ2NF90IHVsQnV0dG9uVG91Y2hlZDsKLSAgICAgICBzdHJ1Y3QgVlJDb250cm9sbGVyQXhp
c190IHJBeGlzWzVdOyAvL3N0cnVjdCB2cjo6VlJDb250cm9sbGVyQXhpc190WzVdCi19IFZSQ29u
dHJvbGxlclN0YXRlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRp
bmdzCi17Ci0gICAgICAgdWludDMyX3Qgc2l6ZTsKLSAgICAgICBib29sIGN1cnZlZDsKLSAgICAg
ICBib29sIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZTsKLSAgICAgICBmbG9hdCBkaXN0
YW5jZTsKLSAgICAgICBmbG9hdCBhbHBoYTsKLSAgICAgICBmbG9hdCB1T2Zmc2V0OwotICAgICAg
IGZsb2F0IHZPZmZzZXQ7Ci0gICAgICAgZmxvYXQgdVNjYWxlOwotICAgICAgIGZsb2F0IHZTY2Fs
ZTsKLSAgICAgICBmbG9hdCBncmlkRGl2czsKLSAgICAgICBmbG9hdCBncmlkV2lkdGg7Ci0gICAg
ICAgZmxvYXQgZ3JpZFNjYWxlOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IHRyYW5zZm9y
bTsKLX0gQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3M7Ci0KLXR5cGVkZWYgc3RydWN0IENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIGVudW0gRVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSBlRnJhbWVUeXBlOwotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAgICB1
aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotICAgICAg
IHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOwotICAgICAgIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVI
ZWFkZXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQXBwT3ZlcnJpZGVLZXlzX3QKLXsKLSAgICAgICBj
aGFyICogcGNoS2V5OyAvLyBjb25zdCBjaGFyICoKLSAgICAgICBjaGFyICogcGNoVmFsdWU7IC8v
IGNvbnN0IGNoYXIgKgotfSBBcHBPdmVycmlkZUtleXNfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgQ29t
cG9zaXRvcl9GcmFtZVRpbWluZwotewotICAgICAgIHVpbnQzMl90IG1fblNpemU7Ci0gICAgICAg
dWludDMyX3QgbV9uRnJhbWVJbmRleDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNl
bnRzOwotICAgICAgIHVpbnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsKLSAgICAgICB1aW50MzJf
dCBtX25OdW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fblJlcHJvamVjdGlvbkZs
YWdzOwotICAgICAgIGRvdWJsZSBtX2ZsU3lzdGVtVGltZUluU2Vjb25kczsKLSAgICAgICBmbG9h
dCBtX2ZsUHJlU3VibWl0R3B1TXM7Ci0gICAgICAgZmxvYXQgbV9mbFBvc3RTdWJtaXRHcHVNczsK
LSAgICAgICBmbG9hdCBtX2ZsVG90YWxSZW5kZXJHcHVNczsKLSAgICAgICBmbG9hdCBtX2ZsQ29t
cG9zaXRvclJlbmRlckdwdU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1
TXM7Ci0gICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7Ci0gICAgICAgZmxvYXQg
bV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKLSAgICAgICBmbG9hdCBtX2ZsUHJlc2VudENhbGxD
cHVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEZvclByZXNlbnRDcHVNczsKLSAgICAgICBmbG9h
dCBtX2ZsU3VibWl0RnJhbWVNczsKLSAgICAgICBmbG9hdCBtX2ZsV2FpdEdldFBvc2VzQ2FsbGVk
TXM7Ci0gICAgICAgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKLSAgICAgICBmbG9hdCBtX2Zs
TmV3RnJhbWVSZWFkeU1zOwotICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRN
czsKLSAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOwotICAgICAgIGZsb2F0
IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKLSAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90
IG1fSG1kUG9zZTsKLX0gQ29tcG9zaXRvcl9GcmFtZVRpbWluZzsKLQotdHlwZWRlZiBzdHJ1Y3Qg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKLXsKLSAgICAgICB1aW50MzJfdCBtX25QaWQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsKLSAgICAgICB1aW50MzJfdCBtX25O
dW1Ecm9wcGVkRnJhbWVzOwotICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVz
OwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7Ci0gICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1M
b2FkaW5nOwotICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwotICAg
ICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOwotICAgICAgIHVpbnQzMl90
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKLSAgICAgICB1aW50MzJfdCBtX25OdW1U
aW1lZE91dDsKLSAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7Ci0g
ICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0OwotICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Ci19IENvbXBvc2l0b3JfQ3VtdWxh
dGl2ZVN0YXRzOwotCi10eXBlZGVmIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNf
dAotewotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdlNvdXJjZTsKLSAgICAgICBzdHJ1Y3Qg
SG1kVmVjdG9yM190IHZEaXJlY3Rpb247Ci0gICAgICAgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luOwotfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdDsKLQotdHlwZWRl
ZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190Ci17Ci0gICAgICAgc3RydWN0
IEhtZFZlY3RvcjNfdCB2UG9pbnQ7Ci0gICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Tm9ybWFs
OwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlVWczsKLSAgICAgICBmbG9hdCBmRGlzdGFu
Y2U7Ci19IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdDsKLQotdHlwZWRlZiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Ci17Ci0gICAgICAgZmxvYXQgbV9mbFRvcExlZnRY
OwotICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WTsKLSAgICAgICBmbG9hdCBtX2ZsV2lkdGg7Ci0g
ICAgICAgZmxvYXQgbV9mbEhlaWdodDsKLX0gSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKLXsKLSAgICAgICBmbG9h
dCBtX2ZsQ2VudGVyWDsKLSAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWTsKLSAgICAgICBmbG9hdCBt
X2ZsUmFkaXVzOwotfSBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKLXsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVsOwotICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7Ci0gICAgICAgVlJDb21wb25lbnRQ
cm9wZXJ0aWVzIHVQcm9wZXJ0aWVzOwotfSBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Owot
Ci10eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAotewotICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IzX3QgdlBvc2l0aW9uOwotICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1h
bDsKLSAgICAgICBmbG9hdCByZlRleHR1cmVDb29yZFsyXTsgLy9mbG9hdFsyXQotfSBSZW5kZXJN
b2RlbF9WZXJ0ZXhfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
Ci17Ci0gICAgICAgdWludDE2X3QgdW5XaWR0aDsKLSAgICAgICB1aW50MTZfdCB1bkhlaWdodDsK
LSAgICAgICB1aW50OF90ICogcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgot
fSBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVs
X3QKLXsKLSAgICAgICBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QgKiByVmVydGV4RGF0YTsg
Ly8gY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCi0gICAgICAgdWludDMy
X3QgdW5WZXJ0ZXhDb3VudDsKLSAgICAgICB1aW50MTZfdCAqIHJJbmRleERhdGE7IC8vIGNvbnN0
IHVpbnQxNl90ICoKLSAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Ci0gICAgICAgVGV4
dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsKLX0gUmVuZGVyTW9kZWxfdDsKLQotdHlwZWRlZiBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdAotewotICAgICAgIGJvb2wg
YlNjcm9sbFdoZWVsVmlzaWJsZTsKLX0gUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dDsKLQotdHlwZWRlZiBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QKLXsKLSAgICAgICB2b2lk
ICogbV9wSW1hZ2VEYXRhOyAvLyB2b2lkICoKLSAgICAgICBpbnQzMl90IG1fbldpZHRoOwotICAg
ICAgIGludDMyX3QgbV9uSGVpZ2h0OwotICAgICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsK
LX0gTm90aWZpY2F0aW9uQml0bWFwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IENPcGVuVlJDb250ZXh0
Ci17Ci0gICAgICAgaW50cHRyX3QgbV9wVlJTeXN0ZW07IC8vIGNsYXNzIHZyOjpJVlJTeXN0ZW0g
KgotICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVy
b25lICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6
SVZSQ2hhcGVyb25lU2V0dXAgKgotICAgICAgIGludHB0cl90IG1fcFZSQ29tcG9zaXRvcjsgLy8g
Y2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKgotICAgICAgIGludHB0cl90IG1fcFZST3ZlcmxheTsg
Ly8gY2xhc3MgdnI6OklWUk92ZXJsYXkgKgotICAgICAgIGludHB0cl90IG1fcFZSUmVzb3VyY2Vz
OyAvLyBjbGFzcyB2cjo6SVZSUmVzb3VyY2VzICoKLSAgICAgICBpbnRwdHJfdCBtX3BWUlJlbmRl
ck1vZGVsczsgLy8gY2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqCi0gICAgICAgaW50cHRyX3Qg
bV9wVlJFeHRlbmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgot
ICAgICAgIGludHB0cl90IG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNzIHZyOjpJVlJTZXR0aW5ncyAq
Ci0gICAgICAgaW50cHRyX3QgbV9wVlJBcHBsaWNhdGlvbnM7IC8vIGNsYXNzIHZyOjpJVlJBcHBs
aWNhdGlvbnMgKgotICAgICAgIGludHB0cl90IG1fcFZSVHJhY2tlZENhbWVyYTsgLy8gY2xhc3Mg
dnI6OklWUlRyYWNrZWRDYW1lcmEgKgotICAgICAgIGludHB0cl90IG1fcFZSU2NyZWVuc2hvdHM7
IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqCi19IENPcGVuVlJDb250ZXh0OwotCi0KLXR5
cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Ci0gICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
LSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKLSAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OwotfSBWUkV2
ZW50X0RhdGFfdDsKLQotLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUgc2VydmVyIHRvIGFsbCBy
dW5uaW5nIGFwcGxpY2F0aW9ucyAqLwotc3RydWN0IFZSRXZlbnRfdAotewotICAgICAgIHVpbnQz
Ml90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KLSAgICAgICBUcmFja2VkRGV2aWNl
SW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7Ci0gICAgICAgZmxvYXQgZXZlbnRBZ2VTZWNvbmRz
OwotICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgYXMg
aXRzIHNpemUgaXMgdmFyaWFibGUKLSAgICAgICBWUkV2ZW50X0RhdGFfdCBkYXRhOwotfTsKLQot
Ci10eXBlZGVmIHVuaW9uCi17Ci0gICAgICAgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1f
UmVjdGFuZ2xlOwotICAgICAgIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKLX0g
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3Q7Ci0KLXN0cnVjdCBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKLXsKLSAgICAgICBFVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKLSAgICAgICBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCBtX1ByaW1pdGl2ZTsKLX07Ci0K
LQotLy8gT3BlblZSIEZ1bmN0aW9uIFBvaW50ZXIgVGFibGVzCi0KLXN0cnVjdCBWUl9JVlJTeXN0
ZW1fRm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRS
ZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUpKHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3Qg
KiBwbkhlaWdodCk7Ci0gICAgICAgc3RydWN0IEhtZE1hdHJpeDQ0X3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRQcm9qZWN0aW9uTWF0cml4KShFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJa
LCBmbG9hdCBmRmFyWik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByb2plY3Rpb25SYXcpKEVWUkV5ZSBlRXllLCBmbG9hdCAqIHBmTGVmdCwgZmxvYXQgKiBwZlJp
Z2h0LCBmbG9hdCAqIHBmVG9wLCBmbG9hdCAqIHBmQm90dG9tKTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcHV0ZURpc3RvcnRpb24pKEVWUkV5ZSBlRXllLCBmbG9h
dCBmVSwgZmxvYXQgZlYsIHN0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIHBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXMpOwotICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0RXllVG9IZWFkVHJhbnNmb3JtKShFVlJFeWUgZUV5ZSk7Ci0gICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRpbWVTaW5jZUxhc3RWc3luYyko
ZmxvYXQgKiBwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWludDY0X3QgKiBwdWxGcmFtZUNvdW50
ZXIpOwotICAgICAgIGludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREM0Q5QWRh
cHRlckluZGV4KSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
WEdJT3V0cHV0SW5mbykoaW50MzJfdCAqIHBuQWRhcHRlckluZGV4KTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEaXNwbGF5T25EZXNrdG9wKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREaXNwbGF5VmlzaWJpbGl0eSkoYm9vbCBi
SXNWaXNpYmxlT25EZXNrdG9wKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZU9yaWdpbiwgZmxvYXQgZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50MzJf
dCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlJlc2V0U2VhdGVkWmVyb1Bvc2UpKCk7Ci0gICAgICAgc3RydWN0IEht
ZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTZWF0ZWRaZXJvUG9zZVRv
U3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSkoKTsKLSAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlKSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzKShFVHJhY2tlZERl
dmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVu
VHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZUluZGV4QXJy
YXlDb3VudCwgVHJhY2tlZERldmljZUluZGV4X3QgdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUlu
ZGV4KTsKLSAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1
bkRldmljZUlkKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQXBwbHlU
cmFuc2Zvcm0pKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dFBvc2UsIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlLCBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCAqIHBUcmFuc2Zvcm0pOwotICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJv
bGUpKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKTsKLSAgICAgICBFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29udHJvbGxlclJv
bGVGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRUcmFja2VkRGV2aWNlQ2xhc3MpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc1RyYWNrZWREZXZp
Y2VDb25uZWN0ZWQpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgpOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sVHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgZmxv
YXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQ2
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VWludDY0VHJhY2tlZERldmljZVByb3Bl
cnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7Ci0gICAgICAgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNYXRyaXgzNFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJy
b3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3Qg
dW5CdWZmZXJTaXplLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOwotICAgICAgIGNo
YXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSko
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqUG9sbE5leHRFdmVudCkoc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWlu
dDMyX3QgdW5jYlZSRXZlbnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpQb2xsTmV4dEV2ZW50V2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50LCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlKTsKLSAgICAgICBjaGFyICogKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0pKEVWUkV2ZW50VHlw
ZSBlVHlwZSk7Ci0gICAgICAgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRIaWRkZW5BcmVhTWVzaCkoRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVz
aFR5cGUgdHlwZSk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENv
bnRyb2xsZXJTdGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9y
aWdpbiwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFZSQ29u
dHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJT
dGF0ZVNpemUsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3Nl
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVHJpZ2dlckhhcHRpY1B1
bHNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludDMy
X3QgdW5BeGlzSWQsIHVuc2lnbmVkIHNob3J0IHVzRHVyYXRpb25NaWNyb1NlYyk7Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QnV0dG9uSWROYW1lRnJvbUVudW0p
KEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKShFVlJDb250cm9sbGVy
QXhpc1R5cGUgZUF4aXNUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqQ2FwdHVyZUlucHV0Rm9jdXMpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlJlbGVhc2VJbnB1dEZvY3VzKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MpKCk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpEcml2ZXJEZWJ1Z1JlcXVlc3Qp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hSZXF1ZXN0LCBj
aGFyICogcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplKTsK
LSAgICAgICBFVlJGaXJtd2FyZUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9y
bUZpcm13YXJlVXBkYXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKLSAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNrbm93bGVkZ2VRdWl0X0V4aXRp
bmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdl
UXVpdF9Vc2VyUHJvbXB0KSgpOwotfTsKLQotc3RydWN0IFZSX0lWUkV4dGVuZGVkRGlzcGxheV9G
blRhYmxlCi17Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdpbmRv
d0JvdW5kcykoaW50MzJfdCAqIHBuWCwgaW50MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRo
LCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0RXllT3V0cHV0Vmlld3BvcnQpKEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqIHBuWCwg
dWludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7
Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERYR0lPdXRwdXRJbmZv
KShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgsIGludDMyX3QgKiBwbkFkYXB0ZXJPdXRwdXRJbmRl
eCk7Ci19OwotCi1zdHJ1Y3QgVlJfSVZSVHJhY2tlZENhbWVyYV9GblRhYmxlCi17Ci0gICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVu
dW0pKEVWUlRyYWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOwotICAgICAgIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhhc0NhbWVyYSkoVHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICogcEhhc0NhbWVyYSk7Ci0gICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJh
RnJhbWVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAq
IHBuSGVpZ2h0LCB1aW50MzJfdCAqIHBuRnJhbWVCdWZmZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFJbnRyaW5z
aWNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICogcEZvY2FsTGVuZ3RoLCBIbWRWZWN0
b3IyX3QgKiBwQ2VudGVyKTsKLSAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFQcm9qZWN0aW9uKShUcmFja2VkRGV2aWNlSW5kZXhf
dCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxv
YXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCBIbWRNYXRyaXg0NF90ICogcFByb2plY3Rpb24pOwot
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFj
cXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJ
bmRleCwgVHJhY2tlZENhbWVyYUhhbmRsZV90ICogcEhhbmRsZSk7Ci0gICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFt
aW5nU2VydmljZSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhKTsKLSAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqIHBGcmFtZUJ1ZmZl
ciwgdWludDMyX3QgbkZyYW1lQnVmZmVyU2l6ZSwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90ICogcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRlb1N0
cmVhbVRleHR1cmVTaXplKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgVlJUZXh0dXJlQm91bmRzX3QgKiBwVGV4
dHVyZUJvdW5kcywgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKLSAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRW
aWRlb1N0cmVhbVRleHR1cmVEM0QxMSkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2Ft
ZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRDNEMTFE
ZXZpY2VPclJlc291cmNlLCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1l
SGVhZGVyU2l6ZSk7Ci0gICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBn
bFVJbnRfdCAqIHBnbFRleHR1cmVJZCwgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICog
cEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKLSAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlVmlkZW9TdHJl
YW1UZXh0dXJlR0wpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgZ2xVSW50
X3QgZ2xUZXh0dXJlSWQpOwotfTsKLQotc3RydWN0IFZSX0lWUkFwcGxpY2F0aW9uc19GblRhYmxl
Ci17Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVs
bFBhdGgsIGJvb2wgYlRlbXBvcmFyeSk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QpKGNoYXIgKiBw
Y2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKShjaGFyICogcGNoQXBwS2V5KTsK
LSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9u
Q291bnQpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCkodWludDMyX3QgdW5BcHBsaWNhdGlvbklu
ZGV4LCBjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQpKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICog
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7Ci0gICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbikoY2hhciAqIHBj
aFRlbXBsYXRlQXBwS2V5LCBjaGFyICogcGNoTmV3QXBwS2V5LCBzdHJ1Y3QgQXBwT3ZlcnJpZGVL
ZXlzX3QgKiBwS2V5cywgdWludDMyX3QgdW5LZXlzKTsKLSAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5
cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hhciAqIHBjaEFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hEYXNoYm9hcmRPdmVy
bGF5KShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gpKGNoYXIgKiBwY2hBcHBLZXkpOwotICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJZGVudGlmeUFw
cGxpY2F0aW9uKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBjaEFwcEtleSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb2Nl
c3NJZCkoY2hhciAqIHBjaEFwcEtleSk7Ci0gICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0pKEVWUkFwcGxpY2F0aW9u
RXJyb3IgZXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZykoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIGNoYXIgKiBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1
aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4sIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBw
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGlj
YXRpb25Qcm9wZXJ0eUJvb2wpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVy
dHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb3BlcnR5VWlu
dDY0KShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwg
RVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNo
YXIgKiBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gpKGNoYXIgKiBwY2hBcHBL
ZXkpOwotICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAqIHBjaEFwcEtleSwgY2hh
ciAqIHBjaE1pbWVUeXBlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hh
ciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOwotICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1p
bWVUeXBlcykoY2hhciAqIHBjaEFwcEtleSwgY2hhciAqIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWlu
dDMyX3QgdW5NaW1lVHlwZXNCdWZmZXIpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSkoY2hhciAqIHBj
aE1pbWVUeXBlLCBjaGFyICogcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50MzJfdCB1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cykodWludDMyX3QgdW5I
YW5kbGUsIGNoYXIgKiBwY2hBcmdzLCB1aW50MzJfdCB1bkFyZ3MpOwotICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdGFydGluZ0FwcGxpY2F0
aW9uKShjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7
Ci0gICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRUcmFuc2l0aW9uU3RhdGUpKCk7Ci0gICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENo
ZWNrKShjaGFyICogcGNoQXBwS2V5KTsKLSAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0pKEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqSXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCkoKTsKLSAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoSW50ZXJuYWxQ
cm9jZXNzKShjaGFyICogcGNoQmluYXJ5UGF0aCwgY2hhciAqIHBjaEFyZ3VtZW50cywgY2hhciAq
IHBjaFdvcmtpbmdEaXJlY3RvcnkpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKSgpOwotfTsKLQotc3RydWN0IFZSX0lW
UkNoYXBlcm9uZV9GblRhYmxlCi17Ci0gICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbGlicmF0aW9uU3RhdGUpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFBsYXlBcmVhU2l6ZSkoZmxvYXQgKiBw
U2l6ZVgsIGZsb2F0ICogcFNpemVaKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UGxheUFyZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEluZm8pKCk7Ci0gICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFNjZW5lQ29sb3IpKHN0cnVjdCBIbWRDb2xv
cl90IGNvbG9yKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm91
bmRzQ29sb3IpKHN0cnVjdCBIbWRDb2xvcl90ICogcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVt
T3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgc3RydWN0
IEhtZENvbG9yX3QgKiBwT3V0cHV0Q2FtZXJhQ29sb3IpOwotICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpBcmVCb3VuZHNWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpGb3JjZUJvdW5kc1Zpc2libGUpKGJvb2wgYkZvcmNlKTsKLX07
Ci0KLXN0cnVjdCBWUl9JVlJDaGFwZXJvbmVTZXR1cF9GblRhYmxlCi17Ci0gICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbW1pdFdvcmtpbmdDb3B5KShFQ2hhcGVyb25lQ29u
ZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqUmV2ZXJ0V29ya2luZ0NvcHkpKCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNpemVYLCBmbG9hdCAqIHBT
aXplWik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdQ
bGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3QgKiByZWN0KTsKLSAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8pKHN0cnVj
dCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVDb2xsaXNpb25Cb3Vu
ZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1
YWRzQ291bnQpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dFdvcmtpbmdQbGF5QXJlYVNpemUpKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7Ci0gICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJ
bmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291
bnQpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nU2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbG9hZEZy
b21EaXNrKShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3Jr
aW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMy
X3QgdW5UYWdDb3VudCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBUYWdzQnVmZmVyLCB1aW50
MzJfdCAqIHB1blRhZ0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFk
c0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRf
dCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKLSAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRXhwb3J0TGl2ZVRvQnVmZmVyKShjaGFyICogcEJ1
ZmZlciwgdWludDMyX3QgKiBwbkJ1ZmZlckxlbmd0aCk7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcpKGNoYXIgKiBwQnVmZmVy
LCB1aW50MzJfdCBuSW1wb3J0RmxhZ3MpOwotfTsKLQotc3RydWN0IFZSX0lWUkNvbXBvc2l0b3Jf
Rm5UYWJsZQotewotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRUcmFj
a2luZ1NwYWNlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsKLSAgICAgICBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNraW5n
U3BhY2UpKCk7Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqV2FpdEdldFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQ
b3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2Vk
RGV2aWNlUG9zZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNv
dW50KTsKLSAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRMYXN0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFJlbmRlclBvc2VB
cnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgc3RydWN0IFRyYWNrZWREZXZp
Y2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291bnQp
OwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRl
dmljZUluZGV4LCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1
Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRHYW1lUG9zZSk7Ci0gICAgICAgRVZSQ29t
cG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0KShFVlJFeWUgZUV5
ZSwgc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3Qg
KiBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSkoKTsKLSAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9zdFByZXNlbnRIYW5kb2ZmKSgpOwot
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRpbWluZykoc3Ry
dWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBwVGltaW5nLCB1aW50MzJfdCB1bkZyYW1lc0Fn
byk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFtZVRp
bWluZ3MpKHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3Qg
bkZyYW1lcyk7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRGcmFt
ZVRpbWVSZW1haW5pbmcpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1bXVsYXRpdmVTdGF0cykoc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICog
cFN0YXRzLCB1aW50MzJfdCBuU3RhdHNTaXplSW5CeXRlcyk7Ci0gICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVUb0NvbG9yKShmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJl
ZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3Jv
dW5kKTsKLSAgICAgICBzdHJ1Y3QgSG1kQ29sb3JfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEN1cnJlbnRGYWRlQ29sb3IpKGJvb2wgYkJhY2tncm91bmQpOwotICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpGYWRlR3JpZCkoZmxvYXQgZlNlY29uZHMsIGJvb2wgYkZh
ZGVJbik7Ci0gICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50
R3JpZEFscGhhKSgpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldFNreWJveE92ZXJyaWRlKShzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmVz
LCB1aW50MzJfdCB1blRleHR1cmVDb3VudCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNsZWFyU2t5Ym94T3ZlcnJpZGUpKCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQpKCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JHb1RvQmFjaykoKTsKLSAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvclF1aXQpKCk7Ci0gICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRnVsbHNjcmVlbikoKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRTY2VuZUZvY3VzUHJv
Y2VzcykoKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExh
c3RGcmFtZVJlbmRlcmVyKSgpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDYW5SZW5kZXJTY2VuZSkoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2hvd01pcnJvcldpbmRvdykoKTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqSGlkZU1pcnJvcldpbmRvdykoKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNNaXJyb3JXaW5kb3dWaXNpYmxlKSgpOwotICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yRHVtcEltYWdlcykoKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyko
KTsKLSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbk9uKShib29sIGJPdmVycmlkZSk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkZvcmNlUmVjb25uZWN0UHJvY2VzcykoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VzcGVuZFJlbmRlcmluZykoYm9vbCBiU3VzcGVuZCk7
Ci0gICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TWlycm9yVGV4dHVyZUQzRDExKShFVlJFeWUgZUV5ZSwgdm9pZCAqIHBEM0QxMURldmljZU9yUmVz
b3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEpKHZvaWQg
KiBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwotICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1pcnJvclRleHR1cmVHTCkoRVZSRXllIGVFeWUs
IGdsVUludF90ICogcGdsVGV4dHVyZUlkLCBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCAqIHBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZWxlYXNlU2hhcmVkR0xUZXh0dXJlKShnbFVJbnRfdCBnbFRleHR1cmVJZCwgZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKShn
bFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNp
b25zUmVxdWlyZWQpKGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKLSAg
ICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZCkoc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIHBQaHlzaWNhbERl
dmljZSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUpOwotfTsKLQotc3Ry
dWN0IFZSX0lWUk92ZXJsYXlfRm5UYWJsZQotewotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZpbmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwg
VlJPdmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3JlYXRlT3ZlcmxheSkoY2hhciAqIHBjaE92
ZXJsYXlLZXksIGNoYXIgKiBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVf
dCAqIHBPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpEZXN0cm95T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRIaWdoUXVhbGl0eU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgVlJPdmVybGF5SGFuZGxlX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRIaWdoUXVhbGl0eU92ZXJsYXkpKCk7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5S2V5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJy
b3IgKiBwRXJyb3IpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0T3ZlcmxheU5hbWUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAq
IHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAqIHBFcnJv
cik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheUltYWdlRGF0YSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lk
ICogcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgdWludDMyX3QgKiBwdW5XaWR0aCwg
dWludDMyX3QgKiBwdW5IZWlnaHQpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSkoRVZST3ZlcmxheUVycm9yIGVycm9y
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90IHVuUElEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5
RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKLSAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5RmxhZykoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wg
KiBwYkVuYWJsZWQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlNldE92ZXJsYXlDb2xvcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKLSAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5Q29sb3IpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZlJlZCwgZmxvYXQgKiBwZkdy
ZWVuLCBmbG9hdCAqIHBmQmx1ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUFscGhhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZBbHBoYSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRleGVsQXNwZWN0KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCk7Ci0gICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleGVsQXNw
ZWN0KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZUZXhlbEFz
cGVjdCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVNvcnRPcmRlcikoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHB1blNvcnRPcmRlcik7Ci0gICAgICAgRVZST3Zlcmxh
eUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMp
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlXaWR0aEluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0ICogcGZXaWR0aEluTWV0ZXJzKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0YW5jZUlu
TWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNl
UmFuZ2VJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAq
IHBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgKiBwZk1heERpc3RhbmNlSW5NZXRlcnMpOwot
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBF
Q29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFQ29sb3JTcGFjZSAqIHBlVGV4dHVyZUNv
bG9yU3BhY2UpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3Ry
dWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsKLSAgICAgICBF
VlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICogcGVUcmFuc2Zvcm1UeXBlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICogcGVUcmFja2luZ09y
aWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0pOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2
aWNlLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJh
bnNmb3JtKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICogcHVuVHJhY2tlZERl
dmljZSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29t
cG9uZW50KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJ
bmRleF90ICogcHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lLCB1aW50MzJf
dCB1bkNvbXBvbmVudE5hbWVTaXplKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTaG93T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpIaWRlT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNPdmVybGF5VmlzaWJsZSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5PdmVy
bGF5LCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFuc2Zvcm0pOwotICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb2xsTmV4dE92ZXJsYXlFdmVudCkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50
MzJfdCB1bmNiVlJFdmVudCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheUlucHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kICogcGVJbnB1dE1ldGhvZCk7Ci0gICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUlu
cHV0TWV0aG9kKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlu
cHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheU1vdXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsK
LSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5TW91c2VTY2FsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3Qg
SG1kVmVjdG9yMl90ICogcHZlY01vdXNlU2NhbGUpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDb21wdXRlT3ZlcmxheUludGVyc2VjdGlvbikoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Qg
KiBwUGFyYW1zLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICogcFJlc3Vs
dHMpOwotICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzSG92ZXJUYXJnZXRPdmVybGF5
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwotICAgICAgIFZST3ZlcmxheUhh
bmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSko
KTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRH
YW1lcGFkRm9jdXNPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE5ld0ZvY3VzT3ZlcmxheSk7
Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zl
cmxheU5laWdoYm9yKShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5k
bGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8pOwotICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKk1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9y
KShFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5kbGVfdCB1bEZyb20p
OwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBU
ZXh0dXJlX3QgKiBwVGV4dHVyZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ2xlYXJPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlKTsKLSAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRPdmVybGF5UmF3KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHZvaWQgKiBwdkJ1ZmZlciwgdWludDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVp
bnQzMl90IHVuRGVwdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlGcm9tRmlsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBjaGFyICogcGNoRmlsZVBhdGgpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKiogcE5hdGl2ZVRleHR1cmVIYW5kbGUsIHZvaWQgKiBw
TmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKiBwV2lkdGgsIHVpbnQzMl90ICogcEhlaWdodCwg
dWludDMyX3QgKiBwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKiBwQVBJVHlwZSwgRUNvbG9y
U3BhY2UgKiBwQ29sb3JTcGFjZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1cmVC
b3VuZHMpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHZvaWQgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmVTaXplKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJf
dCAqIHBIZWlnaHQpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkNyZWF0ZURhc2hib2FyZE92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5S2V5LCBjaGFy
ICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwTWFpbkhhbmRs
ZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwVGh1bWJuYWlsSGFuZGxlKTsKLSAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNEYXNoYm9hcmRWaXNpYmxlKSgpOwotICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blByb2Nlc3NJ
ZCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCB1aW50MzJfdCAqIHB1blByb2Nlc3NJZCk7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dEYXNoYm9hcmQpKGNoYXIgKiBwY2hPdmVybGF5VG9TaG93KTsK
LSAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFByaW1hcnlEYXNoYm9hcmREZXZpY2UpKCk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkKShFR2FtZXBhZFRleHRJbnB1dE1vZGUg
ZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY2hh
ciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBwY2hFeGlzdGlu
Z1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlKTsKLSAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmRG
b3JPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVHYW1lcGFkVGV4
dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5w
dXRNb2RlLCBjaGFyICogcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY2hhciAq
IHBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFs
dWUpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0S2V5Ym9h
cmRUZXh0KShjaGFyICogcGNoVGV4dCwgdWludDMyX3QgY2NoVGV4dCk7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhpZGVLZXlib2FyZCkoKTsKLSAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSkoRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRf
dCAqIHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0pOwotICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kUmVjdDJfdCBhdm9p
ZFJlY3QpOwotICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgKiBwTWFz
a1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuUHJp
bWl0aXZlU2l6ZSk7Ci0gICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUZsYWdzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHVpbnQzMl90ICogcEZsYWdzKTsKLSAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93TWVzc2FnZU92ZXJsYXkpKGNoYXIgKiBwY2hUZXh0
LCBjaGFyICogcGNoQ2FwdGlvbiwgY2hhciAqIHBjaEJ1dHRvbjBUZXh0LCBjaGFyICogcGNoQnV0
dG9uMVRleHQsIGNoYXIgKiBwY2hCdXR0b24yVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjNUZXh0KTsK
LX07Ci0KLXN0cnVjdCBWUl9JVlJSZW5kZXJNb2RlbHNfRm5UYWJsZQotewotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkUmVuZGVyTW9kZWxf
QXN5bmMpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cnVjdCBSZW5kZXJNb2RlbF90ICoq
IHBwUmVuZGVyTW9kZWwpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpG
cmVlUmVuZGVyTW9kZWwpKHN0cnVjdCBSZW5kZXJNb2RlbF90ICogcFJlbmRlck1vZGVsKTsKLSAg
ICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFRl
eHR1cmVfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgc3RydWN0IFJlbmRlck1vZGVsX1Rl
eHR1cmVNYXBfdCAqKiBwcFRleHR1cmUpOwotICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpGcmVlVGV4dHVyZSkoc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqIHBU
ZXh0dXJlKTsKLSAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqTG9hZFRleHR1cmVEM0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lk
ICogcEQzRDExRGV2aWNlLCB2b2lkICoqIHBwRDNEMTFUZXh0dXJlMkQpOwotICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkSW50b1RleHR1cmVE
M0QxMV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICogcERzdFRleHR1cmUpOwot
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGcmVlVGV4dHVyZUQzRDExKSh2
b2lkICogcEQzRDExVGV4dHVyZTJEKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFJlbmRlck1vZGVsTmFtZSkodWludDMyX3QgdW5SZW5kZXJNb2RlbEluZGV4
LCBjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1blJlbmRlck1vZGVsTmFtZUxl
bik7Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJN
b2RlbENvdW50KSgpOwotICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q29tcG9uZW50Q291bnQpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUpOwotICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50TmFtZSkoY2hhciAq
IHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRJbmRleCwgY2hhciAqIHBj
aENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbik7Ci0gICAgICAgdWlu
dDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRCdXR0b25NYXNrKShj
aGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7Ci0gICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRSZW5kZXJN
b2RlbE5hbWUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnRO
YW1lLCBjaGFyICogcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBv
bmVudFJlbmRlck1vZGVsTmFtZUxlbik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldENvbXBvbmVudFN0YXRlKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoQ29tcG9uZW50TmFtZSwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3Rh
dGUsIHN0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90ICogcFN0YXRlLCBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIHBDb21wb25lbnRTdGF0ZSk7Ci0g
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbmRlck1vZGVsSGFzQ29tcG9u
ZW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7
Ci0gICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaFRodW1i
bmFpbFVSTCwgdWludDMyX3QgdW5UaHVtYm5haWxVUkxMZW4sIEVWUlJlbmRlck1vZGVsRXJyb3Ig
KiBwZUVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFy
ICogcGNoT3JpZ2luYWxQYXRoLCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgRVZSUmVuZGVy
TW9kZWxFcnJvciAqIHBlRXJyb3IpOwotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW0pKEVWUlJlbmRlck1vZGVsRXJy
b3IgZXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUk5vdGlmaWNhdGlvbnNfRm5UYWJsZQotewot
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3Jl
YXRlTm90aWZpY2F0aW9uKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQ2
NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsIGNoYXIgKiBwY2hUZXh0
LCBFVlJOb3RpZmljYXRpb25TdHlsZSBzdHlsZSwgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90
ICogcEltYWdlLCBWUk5vdGlmaWNhdGlvbklkICogcE5vdGlmaWNhdGlvbklkKTsKLSAgICAgICBF
VlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZU5vdGlm
aWNhdGlvbikoVlJOb3RpZmljYXRpb25JZCBub3RpZmljYXRpb25JZCk7Ci19OwotCi1zdHJ1Y3Qg
VlJfSVZSU2V0dGluZ3NfRm5UYWJsZQotewotICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0pKEVWUlNldHRpbmdzRXJyb3Ig
ZUVycm9yKTsKLSAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3luYykoYm9v
bCBiRm9yY2UsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0Qm9vbCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBw
Y2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsK
LSAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0SW50MzIpKGNoYXIgKiBw
Y2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0
aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBm
bG9hdCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNo
YXIgKiBwY2hTZXR0aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICog
cGVFcnJvcik7Ci0gICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2wp
KGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJy
b3IgKiBwZUVycm9yKTsKLSAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0SW50MzIpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNl
dHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKLSAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEZsb2F0KShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5
LCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldFN0cmluZykoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0
aW5nc0tleSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbW92ZVNlY3Rpb24pKGNoYXIgKiBwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICogcGVF
cnJvcik7Ci0gICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbW92ZUtleUlu
U2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0
dGluZ3NFcnJvciAqIHBlRXJyb3IpOwotfTsKLQotc3RydWN0IFZSX0lWUlNjcmVlbnNob3RzX0Zu
VGFibGUKLXsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpSZXF1ZXN0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90ICogcE91dFNjcmVlbnNo
b3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpIb29rU2NyZWVuc2hvdCkoRVZSU2NyZWVuc2hvdFR5cGUg
KiBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7Ci0gICAgICAgRVZSU2NyZWVuc2hvdFR5
cGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKShT
Y3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhh
bmRsZSwgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSwgY2hhciAq
IHBjaEZpbGVuYW1lLCB1aW50MzJfdCBjY2hGaWxlbmFtZSwgRVZSU2NyZWVuc2hvdEVycm9yICog
cEVycm9yKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5z
aG90SGFuZGxlLCBmbG9hdCBmbFByb2dyZXNzKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpUYWtlU3RlcmVvU2NyZWVuc2hvdCkoU2NyZWVuc2hv
dEhhbmRsZV90ICogcE91dFNjcmVlbnNob3RIYW5kbGUsIGNoYXIgKiBwY2hQcmV2aWV3RmlsZW5h
bWUsIGNoYXIgKiBwY2hWUkZpbGVuYW1lKTsKLSAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdWJtaXRTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxl
X3Qgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAqIHBjaFNv
dXJjZVByZXZpZXdGaWxlbmFtZSwgY2hhciAqIHBjaFNvdXJjZVZSRmlsZW5hbWUpOwotfTsKLQot
c3RydWN0IFZSX0lWUlJlc291cmNlc19GblRhYmxlCi17Ci0gICAgICAgdWludDMyX3QgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpMb2FkU2hhcmVkUmVzb3VyY2UpKGNoYXIgKiBwY2hSZXNvdXJj
ZU5hbWUsIGNoYXIgKiBwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuKTsKLSAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlc291cmNlRnVsbFBhdGgpKGNo
YXIgKiBwY2hSZXNvdXJjZU5hbWUsIGNoYXIgKiBwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnksIGNo
YXIgKiBwY2hQYXRoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7Ci19OwotCi0KLSNpZiAw
Ci0vLyBHbG9iYWwgZW50cnkgcG9pbnRzCi1TX0FQSSBpbnRwdHJfdCBWUl9Jbml0SW50ZXJuYWwo
IEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVUeXBlICk7Ci1TX0FQ
SSB2b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKLVNfQVBJIGJvb2wgVlJfSXNIbWRQcmVzZW50
KCk7Ci1TX0FQSSBpbnRwdHJfdCBWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpw
Y2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKTsKLVNfQVBJIGJvb2wg
VlJfSXNSdW50aW1lSW5zdGFsbGVkKCk7Ci1TX0FQSSBjb25zdCBjaGFyICogVlJfR2V0VlJJbml0
RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVycm9yICk7Ci1TX0FQSSBjb25zdCBjaGFyICog
VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9yIGVycm9y
ICk7Ci0jZW5kaWYKLQotI2VuZGlmIC8vIF9fT1BFTlZSX0FQSV9GTEFUX0hfXwotCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkz
OWUyNDY3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwyNTQxICswLDAgQEAKLSNwcmFnbWEgb25jZQotCi0vLyBvcGVudnJfZHJpdmVy
LmgKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxl
IGRpcmVjdGx5LgotCi0jaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQotI2RlZmluZSBfT1BFTlZS
X0RSSVZFUl9BUEkKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0KLQotLy8gdnJ0eXBlcy5oCi0j
aWZuZGVmIF9JTkNMVURFX1ZSVFlQRVNfSAotI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKLQot
Ly8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCi1zdHJ1
Y3QgVmtEZXZpY2VfVDsKLXN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7Ci1zdHJ1Y3QgVmtJbnN0
YW5jZV9UOwotc3RydWN0IFZrUXVldWVfVDsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8g
YXZvaWQgcmVxdWlyaW5nIGQzZDEyLmgKLXN0cnVjdCBJRDNEMTJSZXNvdXJjZTsKLXN0cnVjdCBJ
RDNEMTJDb21tYW5kUXVldWU7Ci0KLW5hbWVzcGFjZSB2cgotewotCi0jaWYgZGVmaW5lZChfX2xp
bnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKLSAgICAgICAvLyBUaGUgMzItYml0IHZlcnNp
b24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRv
dWJsZSBzZXQgdG8KLSAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBw
YWNrKDgpIHRoZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KLSAgICAg
ICAvLyBUaGUgNjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVt
ZW50IGZvciB0aGVzZSB0eXBlcyBzZXQgdG8KLSAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxl
c3Mgd2UgdXNlICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIu
Ci0gICAgICAgLy8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhl
IDMyLWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KLSAgICAgICAjcHJh
Z21hIHBhY2soIHB1c2gsIDQgKQotI2Vsc2UKLSAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDgg
KQotI2VuZGlmCi0KLXR5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci10eXBl
ZGVmIGludDMyX3QgZ2xJbnRfdDsKLXR5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7Ci0KLS8vIHJp
Z2h0LWhhbmRlZCBzeXN0ZW0KLS8vICt5IGlzIHVwCi0vLyAreCBpcyB0byB0aGUgcmlnaHQKLS8v
IC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKLS8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycwot
c3RydWN0IEhtZE1hdHJpeDM0X3QKLXsKLSAgICAgICBmbG9hdCBtWzNdWzRdOwotfTsKLQotc3Ry
dWN0IEhtZE1hdHJpeDQ0X3QKLXsKLSAgICAgICBmbG9hdCBtWzRdWzRdOwotfTsKLQotc3RydWN0
IEhtZFZlY3RvcjNfdAotewotICAgICAgIGZsb2F0IHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVj
dG9yNF90Ci17Ci0gICAgICAgZmxvYXQgdls0XTsKLX07Ci0KLXN0cnVjdCBIbWRWZWN0b3IzZF90
Ci17Ci0gICAgICAgZG91YmxlIHZbM107Ci19OwotCi1zdHJ1Y3QgSG1kVmVjdG9yMl90Ci17Ci0g
ICAgICAgZmxvYXQgdlsyXTsKLX07Ci0KLXN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKLXsKLSAgICAg
ICBkb3VibGUgdywgeCwgeSwgejsKLX07Ci0KLXN0cnVjdCBIbWRDb2xvcl90Ci17Ci0gICAgICAg
ZmxvYXQgciwgZywgYiwgYTsKLX07Ci0KLXN0cnVjdCBIbWRRdWFkX3QKLXsKLSAgICAgICBIbWRW
ZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKLX07Ci0KLXN0cnVjdCBIbWRSZWN0Ml90Ci17Ci0gICAg
ICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OwotICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmln
aHQ7Ci19OwotCi0vKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9y
IGVhY2ggY29sb3IgY2hhbm5lbC4gCi0qIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBp
biB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAotKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4g
VGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KLXN0cnVjdCBEaXN0
b3J0aW9uQ29vcmRpbmF0ZXNfdAotewotICAgICAgIGZsb2F0IHJmUmVkWzJdOwotICAgICAgIGZs
b2F0IHJmR3JlZW5bMl07Ci0gICAgICAgZmxvYXQgcmZCbHVlWzJdOwotfTsKLQotZW51bSBFVlJF
eWUKLXsKLSAgICAgICBFeWVfTGVmdCA9IDAsCi0gICAgICAgRXllX1JpZ2h0ID0gMQotfTsKLQot
ZW51bSBFVGV4dHVyZVR5cGUKLXsKLSAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8g
SGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKLSAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAx
LCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRl
ciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncwotICAgICAgIFRleHR1cmVU
eXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1
cmVEYXRhX3Qgc3RydWN0dXJlCi0gICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8g
SGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKLSAgICAg
ICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
RDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQotfTsKLQotZW51bSBFQ29sb3JTcGFjZQotewot
ICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3Ig
OC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1p
cnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgotICAgICAg
IENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3Bs
YXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsu
YS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KLSAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIs
ICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVh
ciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4K
LX07Ci0KLXN0cnVjdCBUZXh0dXJlX3QKLXsKLSAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBF
VGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQotICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsK
LSAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKLX07Ci0KLS8vIEhhbmRsZSB0byBhIHNo
YXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVk
UmVzb3VyY2UpLgotdHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Ci0jZGVm
aW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1
cmVIYW5kbGVfdCkwKQotCi1lbnVtIEVUcmFja2luZ1Jlc3VsdAotewotICAgICAgIFRyYWNraW5n
UmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCi0KLSAgICAgICBU
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAotICAgICAg
IFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCi0KLSAg
ICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAwLAotICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAg
ICAgICAgPSAyMDEsCi19OwotCi1zdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRl
YnVnUmVzcG9uc2VTaXplID0gMzI3Njg7Ci0KLS8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0
byBBUEkgY2FsbHMgKi8KLXR5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7Ci1z
dGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOwotc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKLXN0YXRp
YyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZF
Owotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0g
MHhGRkZGRkZGRjsKLQotLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5n
IHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLwotZW51bSBFVHJhY2tlZERldmljZUNsYXNzCi17Ci0g
ICAgICAgVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfSE1EID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91
bnRlZCBEaXNwbGF5cwotICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwg
ICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCi0gICAgICAgVHJhY2tl
ZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMg
dHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJvbGxlcnMKLSAgICAgICBUcmFja2VkRGV2aWNlQ2xh
c3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlv
bnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCi19OwotCi0KLS8qKiBE
ZXNjcmliZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2
aWNlICovCi1lbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKLXsKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBJbnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKLSAgICAgICBUcmFja2VkQ29u
dHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKLSAgICAg
ICBUcmFja2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5k
Ci19OwotCi0KLS8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVj
dCAqLwotc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKLXsKLSAgICAgICBIbWRNYXRyaXgzNF90
IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7Ci0gICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0
eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFj
ZSBpbiBtL3MKLSAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAg
ICAgIC8vIGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQotICAgICAgIEVUcmFja2lu
Z1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7Ci0gICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7Ci0KLSAg
ICAgICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBm
b3IgdGhpcyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgotICAgICAgIC8vIEl0IGNvdWxkIGdvIGZy
b20gdHJ1ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCi0gICAgICAg
Ym9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0vKiogSWRlbnRpZmllcyB3aGljaCBzdHls
ZSBvZiB0cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQotKiBmb3Ig
dGhlIHBvc2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KLWVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4KLXsKLSAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8v
IFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQotICAg
ICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92
aWRlZCByZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgot
ICAgICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQ
b3NlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhl
IGRyaXZlci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBz
YW1lIGRyaXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KLX07Ci0KLS8vIFJl
ZmVycyB0byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwotdHlwZWRlZiB1aW50NjRf
dCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwotdHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5
cGVUYWdfdDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bElu
dmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFn
X3Qga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7Ci0KLS8vIFVzZSB0aGVzZSB0YWdzIHRvIHNl
dC9nZXQgY29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCi1zdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOwotc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKLXN0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOwotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Owotc3RhdGljIGNvbnN0
IFByb3BlcnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7Ci0KLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOwot
c3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFn
ID0gMjE7Ci1zdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9w
ZXJ0eVRhZyA9IDIyOwotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0
b3I0UHJvcGVydHlUYWcgPSAyMzsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKLQotc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKLXN0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAx
MDAwMDsKLQotCi0vKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3Bl
cnR5IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCi0qIHRyYWNrZWQgZGV2aWNlLiBNYW55
IGZpZWxkcyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCi1l
bnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkKLXsKLSAgICAgICBQcm9wX0ludmFsaWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKLQot
ICAgICAgIC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xh
c3NlcwotICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDAsCi0gICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCi0gICAgICAgUHJv
cF9TZXJpYWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMDIsCi0gICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMDMsCi0gICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCi0gICAgICAgUHJv
cF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MDUsCi0gICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDYsCi0gICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCi0gICAgICAgUHJvcF9BbGxXaXJlbGVz
c0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAotICAgICAgIFByb3BfQ29u
bmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAot
ICAgICAgIFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMTAsCi0gICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKLSAgICAgICBQcm9wX0Rldmlj
ZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAw
IGlzIGVtcHR5LCAxIGlzIGZ1bGwKLSAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1f
TWF0cml4MzQgICAgICAgICAgICAgID0gMTAxMywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0
ZUF2YWlsYWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAotICAgICAgIFByb3Bf
RmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDE1LAotICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAg
ICAgICAgPSAxMDE2LAotICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDE3LAotICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAotICAgICAg
IFByb3BfRlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDE5LAotICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCi0gICAgICAgUHJvcF9SYWRp
b1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEs
Ci0gICAgICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDIyLAotICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKLSAgICAgICBQcm9wX0NhblVuaWZ5
Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCi0gICAgICAgUHJvcF9D
b250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAot
ICAgICAgIFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAg
ID0gMTAyNiwKLSAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAyNywKLSAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dy
YW1taW5nVGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAotICAgICAgIFByb3BfRGV2
aWNlQ2xhc3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMjksCi0gICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCi0gICAgICAgUHJvcF9Ecml2ZXJWZXJz
aW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCi0gICAgICAgUHJvcF9GaXJtd2Fy
ZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCi0gICAgICAgUHJvcF9WaXZl
U3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAotICAgICAg
IFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDM0LAotCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBU
cmFja2VkRGV2aWNlQ2xhc3NfSE1ECi0gICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCi0gICAgICAgUHJvcF9TZWNv
bmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCi0gICAgICAg
UHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMDIsCi0gICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDMsCi0gICAgICAgUHJvcF9DdXJyZW50VW5pdmVy
c2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKLSAgICAgICBQ
cm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDA1LCAKLSAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICAgICAgICAgPSAyMDA2LAotICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKLSAgICAgICBQcm9w
X0Rpc3BsYXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAwOCwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDA5LAotICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxv
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKLSAgICAgICBQcm9w
X0VkaWRWZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAxMSwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAg
ICAgICAgID0gMjAxMiwKLSAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAg
ICAgICAgICAgID0gMjAxMywKLSAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAotICAgICAgIFByb3BfRWRpZFByb2R1
Y3RJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAotICAg
ICAgIFByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE2LAotICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDE3LAotICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0
X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCi0gICAgICAg
UHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDE5LAotICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDIwLAotICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCi0gICAgICAgUHJv
cF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyMiwKLSAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDIzLAotICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0
VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAotICAgICAg
IFByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDI1LAotICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSAyMDI2LAotICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKLSAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCi0gICAg
ICAgUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAyOSwKLSAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgID0gMjAzMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAotICAgICAgIFByb3BfQXVkaW9GaXJt
d2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAotICAgICAgIFBy
b3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIw
MzMsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19G
bG9hdCA9IDIwMzQsCi0gICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0Rl
Z3JlZXNfRmxvYXQgPSAyMDM1LAotICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAotICAgICAgIFByb3BfRGlz
cGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3
LAotICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMzgsCi0gICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCi0gICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCi0gICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjA0MSwKLSAgICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDQyLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKLSAgICAgICBQcm9wX0F0dGFj
aGVkRGV2aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKLSAg
ICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMzAwMSwKLSAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5
cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2
YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQXhpczJU
eXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0
LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKLSAgICAg
ICBQcm9wX0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4
aXNUeXBlCi0gICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVW
UkNvbnRyb2xsZXJBeGlzVHlwZQotICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9m
IHR5cGUgRVRyYWNrZWRDb250cm9sbGVyUm9sZQotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCi0gICAg
ICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
PSA0MDAwLAotICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMDEsCi0gICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNf
RmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCi0gICAgICAgUHJvcF9GaWVsZE9mVmll
d0JvdHRvbURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCi0gICAgICAg
UHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0
LAotICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAg
ICAgID0gNDAwNSwKLSAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCi0KLSAgICAgICAvLyBQcm9wZXJ0aWVz
IHRoYXQgYXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKLSAgICAg
ICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgot
ICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1
MDAyLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCi0gICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0
cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwg
b3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90
aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAg
ICAgICAgICAgICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5p
bWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDYsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKLSAgICAgICBQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywg
Ly8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBo
ZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwotICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycwotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2Vk
IGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucwotICAgICAgIFByb3Bf
RGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNTEwMCwKLSAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAotCi0gICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gZHJpdmVycwotICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCi0gICAgICAgUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDYwMDEsCi0KLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KLSAgICAgICBQcm9wX1ZlbmRvclNw
ZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKLSAgICAg
ICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0g
MTA5OTksCi19OwotCi0vKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIg
dGhhbiB0aGlzIGxlbmd0aCAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0
eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7Ci0KLS8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhh
dCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KLWVudW0gRVRyYWNrZWRQcm9wZXJ0
eUVycm9yCi17Ci0gICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMCwKLSAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFU
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICBUcmFja2VkUHJvcF9X
cm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAotICAgICAgIFRyYWNrZWRQ
cm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKLSAgICAg
ICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVy
KS4KLSAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNSwKLSAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAg
ICAgICAgICAgID0gNiwKLSAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZp
Y2UgICAgICAgPSA3LAotICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVu
Z3RoICAgICAgID0gOCwKLSAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25v
d24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KLSAgICAgICBU
cmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKLSAg
ICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAx
MSwKLX07Ci0KLS8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0
IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKLSogZnJhbWUgYnVm
ZmVyLiAqLwotc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Ci17Ci0gICAgICAgZmxvYXQgdU1pbiwg
dk1pbjsKLSAgICAgICBmbG9hdCB1TWF4LCB2TWF4OwotfTsKLQotCi0vKiogQWxsb3dzIHRoZSBh
cHBsaWNhdGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUg
Y29tcG9zaXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLwotZW51bSBFVlJTdWJtaXRGbGFncwot
ewotICAgICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVm
dCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9u
IGFwcGxpZWQuCi0gICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAotCi0gICAgICAgLy8gQXBw
IHN1Ym1pdHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9y
dGlvbiBhbHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFw
cGVhcgotICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlv
biBjb3JyZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSBy
ZXR1cm5lZCBieQotICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkg
dG8gYXBwbHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJl
Zm9yZSBjYWxsaW5nIFN1Ym1pdCgpLgotICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVh
ZHlBcHBsaWVkID0gMHgwMSwKLQotICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFz
c2VkIGluIGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5H
TCkgdGhlbiBzZXQgdGhpcyBmbGFnLgotICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4
MDIsCi0KLSAgICAgICAvLyBEbyBub3QgdXNlCi0gICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgw
NCwKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0
byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCi0qIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRv
d24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLwotc3RydWN0IFZSVnVsa2Fu
VGV4dHVyZURhdGFfdAotewotICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCi0g
ICAgICAgVmtEZXZpY2VfVCAqbV9wRGV2aWNlOwotICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAq
bV9wUGh5c2ljYWxEZXZpY2U7Ci0gICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKLSAg
ICAgICBWa1F1ZXVlX1QgKm1fcFF1ZXVlOwotICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5
SW5kZXg7Ci0gICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBt
X25TYW1wbGVDb3VudDsKLX07Ci0KLS8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEy
IHRleHR1cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KLSogQmUgc3VyZSB0byBjYWxsIE9w
ZW5WUl9TaHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCi1zdHJ1
Y3QgRDNEMTJUZXh0dXJlRGF0YV90Ci17Ci0gICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291
cmNlOwotICAgICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOwotICAgICAg
IHVpbnQzMl90IG1fbk5vZGVNYXNrOwotfTsKLQotLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBz
eXN0ZW0gb3IgdHJhY2tlZCBvYmplY3RzICovCi1lbnVtIEVWUlN0YXRlCi17Ci0gICAgICAgVlJT
dGF0ZV9VbmRlZmluZWQgPSAtMSwKLSAgICAgICBWUlN0YXRlX09mZiA9IDAsCi0gICAgICAgVlJT
dGF0ZV9TZWFyY2hpbmcgPSAxLAotICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwK
LSAgICAgICBWUlN0YXRlX1JlYWR5ID0gMywKLSAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0g
NCwKLSAgICAgICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKLSAgICAgICBWUlN0YXRlX1N0YW5kYnkg
PSA2LAotICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKLX07Ci0KLS8qKiBUaGUg
dHlwZXMgb2YgZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1l
dGVycyBtZWFuIGZvciBlYWNoIGV2ZW50IHR5cGUpICovCi1lbnVtIEVWUkV2ZW50VHlwZQotewot
ICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCi0KLSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VB
Y3RpdmF0ZWQgICAgICAgICAgICAgID0gMTAwLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZURlYWN0aXZhdGVkICAgICAgID0gMTAxLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVw
ZGF0ZWQgICAgICAgICAgICAgID0gMTAyLAotICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCi0gICAgICAgVlJFdmVudF9UcmFja2Vk
RGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCi0gICAgICAgVlJFdmVudF9J
cGRDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKLSAgICAg
ICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKLSAg
ICAgICBWUkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywK
LSAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKLSAg
ICAgICBWUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwK
LSAgICAgICBWUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAs
Ci0gICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTEsCi0KLSAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAgICAgVlJF
dmVudF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBk
YXRhIGlzIGNvbnRyb2xsZXIKLSAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCi0gICAg
ICAgVlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAz
LCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKLQotICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQotICAg
ICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAxLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywg
Ly8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAg
VlJFdmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwNSwgLy8gZGF0YSBpcyBtb3VzZQotICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCi0gICAgICAgVlJF
dmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRh
dGEgaXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50Ci0KLSAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXND
YXB0dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQ
UkVDQVRFRAotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAg
ICAgICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECi0gICAgICAgVlJFdmVu
dF9TY2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAg
ICAgICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcwotICAgICAgIFZSRXZlbnRfU2NlbmVB
cHBsaWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3Mg
LSBUaGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8g
b3IgZnJvbSB0aGUgY29tcG9zaXRvcikKLSAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAg
Z290IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQotICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0No
YW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAg
ICAgVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQw
NywgLy8gZGF0YSBpcyBwcm9jZXNzCi0KLSAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMg
ICAgICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRp
b24gdG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQotICAgICAgIFZS
RXZlbnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50
IHRvIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9k
ZWwgdmlzaWJpbGl0eQotCi0gICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MDAsCi0gICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTAxLAotICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0
aXZhdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCi0gICAgICAgVlJFdmVudF9EYXNoYm9h
cmRUaHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3Zlcmxh
eSBtYW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1
ZXN0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5Ci0gICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBt
YW5hZ2VyCi0gICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0
b2FzdCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAotICAgICAgIFZSRXZlbnRfSW1hZ2VM
b2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRv
IG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxs
IGZpbmlzaGVzIGxvYWRpbmcKLSAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0
aGUgZGFzaGJvYXJkIHRvIGludm9rZSBpdAotICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRl
cmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAotICAgICAgIFZSRXZlbnRfT3ZlcmxheUdh
bWVwYWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4g
SVZST3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAotICAgICAgIFZSRXZl
bnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRv
IGFuIG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6
U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQotICAgICAgIFZSRXZl
bnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAotICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAotICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCi0gICAgICAgVlJFdmVudF9TY3Jl
ZW5zaG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3Qg
YnV0dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3Jl
ZW5zaG90Ci0gICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlS
YXcgb3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKLSAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKLQotICAgICAgIC8vIFNj
cmVlbnNob3QgQVBJCi0gICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0
byBjb21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90Ci0gICAgICAgVlJFdmVudF9TY3JlZW5z
aG90VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50
IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFz
IGJlZW4gdGFrZW4KLSAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGlj
YXRpb24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KLSAgICAgICBWUkV2
ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNl
bnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVu
c2hvdCB3YXMgc3VibWl0dGVkCi0gICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rh
c2hib2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9h
cmQgdGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKLQotICAgICAgIFZS
RXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCi0KLSAgICAg
ICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDYwMCwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA2MDEsCi0gICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRl
cmFjdGlvbiAgICAgICA9IDYwMiwKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95
ZWQgICAgICAgICAgICAgICAgICAgICA9IDYwMywKLQotICAgICAgIFZSRXZlbnRfUXVpdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0
YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcw
MiwgLy8gZGF0YSBpcyBwcm9jZXNzCi0gICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKLSAgICAg
ICBWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA3MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3du
Ci0KLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAg
ICAgICAgPSA4MDAsCi0gICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQg
ICAgICAgICAgICAgID0gODAxLAotICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXND
aGFuZ2VkICAgICAgICAgICAgICA9IDgwMiwKLSAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRp
bmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCi0gICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAotCi0gICAgICAgVlJFdmVu
dF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAotCi0gICAgICAg
VlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAot
ICAgICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4
NTEsCi0gICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9
IDg1MiwKLSAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
PSA4NTMsCi0gICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAg
ICAgPSA4NTQsCi0gICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAg
ICAgICAgID0gODU1LAotCi0gICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAotCi0gICAgICAgVlJFdmVudF9NQ0ltYWdlVXBk
YXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAotCi0gICAgICAg
VlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAs
Ci0gICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAg
ICAgPSAxMTAxLAotCi0gICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFy
SW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAotICAgICAgIFZSRXZlbnRf
S2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8v
IFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCi0KLSAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKLSAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0g
MTMwMSwKLSAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQg
ICAgICAgPSAxMzAyLAotICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCi0gICAgICAgVlJFdmVudF9BcHBsaWNhdGlv
bk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCi0gICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUs
Ci0KLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAg
ICAgID0gMTQwMCwKLSAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVu
ICAgICAgICAgICAgICA9IDE0MDEsCi0gICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9u
ZUJvdW5kc1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCi0gICAgICAgVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCi0KLSAgICAgICBWUkV2ZW50
X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAotICAgICAgIFZSRXZlbnRf
VHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCi0gICAgICAgVlJFdmVudF9U
cmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKLSAgICAgICBWUkV2ZW50X1Ry
YWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAotICAgICAgIFZSRXZlbnRfVHJh
Y2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCi0KLSAgICAgICBWUkV2ZW50X1Bl
cmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKLSAgICAgICBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCi0gICAgICAgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCi0KLSAgICAg
ICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1
MCwKLSAgICAgICAKLSAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRl
IGV2ZW50cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgotICAgICAgIFZSRXZlbnRfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKLSAgICAgICBWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKLX07Ci0KLQotLyoq
IExldmVsIG9mIEhtZCBhY3Rpdml0eSAqLwotZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAotewot
ICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAotICAgICAgIGtfRURl
dmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCi0gICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb24gPSAxLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNl
ckludGVyYWN0aW9uX1RpbWVvdXQgPSAyLAotICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxf
U3RhbmRieSA9IDMsCi19OwotCi0KLS8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJ
RHMgKi8KLWVudW0gRVZSQnV0dG9uSWQKLXsKLSAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAg
ICAgICAgICAgICAgICAgPSAwLAotICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAg
ICAgPSAxLAotICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMiwKLSAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAz
LAotICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAotICAg
ICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCi0gICAgICAga19FQnV0
dG9uX0RQYWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKLSAgICAgICBrX0VCdXR0b25f
QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAotICAgICAgIAotICAgICAg
IGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAotCi0gICAgICAga19FQnV0dG9uX0F4
aXMwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCi0gICAgICAga19FQnV0dG9uX0F4
aXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCi0gICAgICAga19FQnV0dG9uX0F4
aXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCi0gICAgICAga19FQnV0dG9uX0F4
aXMzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCi0gICAgICAga19FQnV0dG9uX0F4
aXM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCi0KLSAgICAgICAvLyBhbGlhc2Vz
IGZvciB3ZWxsIGtub3duIGNvbnRyb2xsZXJzCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91
Y2hwYWQgICAgICAgPSBrX0VCdXR0b25fQXhpczAsCi0gICAgICAga19FQnV0dG9uX1N0ZWFtVlJf
VHJpZ2dlciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKLQotICAgICAgIGtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAotCi0gICAgICAga19FQnV0dG9uX01h
eCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY0Ci19OwotCi1pbmxpbmUgdWludDY0X3Qg
QnV0dG9uTWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9
Ci0KLS8qKiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KLXN0cnVjdCBWUkV2
ZW50X0NvbnRyb2xsZXJfdAotewotICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9u
SWQgZW51bQotfTsKLQotCi0vKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBv
dmVybGF5IHNwYWNlICovCi1lbnVtIEVWUk1vdXNlQnV0dG9uCi17Ci0gICAgICAgVlJNb3VzZUJ1
dHRvbl9MZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKLSAg
ICAgICBWUk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwMiwKLSAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwNCwKLX07Ci0KLQotLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3Vz
ZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLwotc3RydWN0IFZSRXZlbnRfTW91c2VfdAotewot
ICAgICAgIGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVm
dCBvZiB0aGUgdGV4dHVyZSBpcyAwLDAKLSAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1v
dXNlQnV0dG9uIGVudW0KLX07Ci0KLS8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwg
c2Nyb2xsIGluIG92ZXJsYXkgc3BhY2UgKi8KLXN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Ci17Ci0g
ICAgICAgZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRo
ZSBwYWQgdHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCi0g
ICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7Ci19OwotCi0vKiogd2hlbiBpbiBtb3VzZSBpbnB1
dCBtb2RlIHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVu
dHMgYXJlIG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCi0gICBpcyBvbiB0aGUgdG91Y2hw
YWQgKG9yIGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCi0qKi8KLXN0cnVjdCBWUkV2ZW50X1RvdWNo
UGFkTW92ZV90Ci17Ci0gICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVj
dGVkIG9uIHRoZSB0b3VjaCBwYWQKLSAgICAgICBib29sIGJGaW5nZXJEb3duOwotCi0gICAgICAg
Ly8gSG93IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKLSAgICAgICBm
bG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOwotCi0gICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGlj
YXRlIHRoZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNp
YyBzd2lwZSBzdHVmZikKLSAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7Ci0gICAgICAgZmxvYXQg
ZlZhbHVlWUZpcnN0OwotCi0gICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRp
bmF0ZSB3aXRob3V0IGRlYWR6b25pbmcKLSAgICAgICBmbG9hdCBmVmFsdWVYUmF3OwotICAgICAg
IGZsb2F0IGZWYWx1ZVlSYXc7Ci19OwotCi0vKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRz
LiBEZXRhaWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KLXN0cnVjdCBWUkV2
ZW50X05vdGlmaWNhdGlvbl90Ci17Ci0gICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7Ci0gICAg
ICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Ci19OwotCi0vKiogVXNlZCBmb3IgZXZlbnRzIGFi
b3V0IHByb2Nlc3NlcyAqLwotc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Ci17Ci0gICAgICAgdWlu
dDMyX3QgcGlkOwotICAgICAgIHVpbnQzMl90IG9sZFBpZDsKLSAgICAgICBib29sIGJGb3JjZWQ7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X092ZXJsYXlfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7
Ci19OwotCi0KLS8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KLXN0
cnVjdCBWUkV2ZW50X1N0YXR1c190Ci17Ci0gICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8v
IEVWUlN0YXRlIGVudW0KLX07Ci0KLS8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCi1z
dHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Ci17Ci0gICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAg
ICAgIC8vIFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAotICAgICAgIHVpbnQ2NF90IHVVc2Vy
VmFsdWU7ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKLX07Ci0K
LXN0cnVjdCBWUkV2ZW50X0lwZF90Ci17Ci0gICAgICAgZmxvYXQgaXBkTWV0ZXJzOwotfTsKLQot
c3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKLXsKLSAgICAgICB1aW50NjRfdCBtX25QcmV2aW91
c1VuaXZlcnNlOwotICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKLX07Ci0KLS8q
KiBOb3QgYWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLwotc3RydWN0IFZSRXZlbnRfUmVz
ZXJ2ZWRfdAotewotICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKLSAgICAgICB1aW50NjRfdCBy
ZXNlcnZlZDE7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAotewotICAg
ICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0X3QKLXsKLSAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKLX07
Ci0KLXN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAotewotICAgICAgIHVpbnQzMl90IGhhbmRs
ZTsKLSAgICAgICB1aW50MzJfdCB0eXBlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzX3QKLXsKLSAgICAgICBmbG9hdCBwcm9ncmVzczsKLX07Ci0KLXN0cnVjdCBWUkV2
ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKLXsKLSAgICAgICB1aW50MzJfdCBwaWQ7Ci0gICAgICAg
dWludDMyX3QgdW5BcmdzSGFuZGxlOwotfTsKLQotc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVy
YVN1cmZhY2VfdAotewotICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Ci0gICAgICAgdWlu
dDMyX3QgblZpc3VhbE1vZGU7Ci19OwotCi1zdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90
Ci17Ci0gICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgZW51bQotfTsKLQotc3RydWN0IFZSRXZlbnRfUHJvcGVy
dHlfdAotewotICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOwotICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKLX07Ci0KLS8qKiBOT1RFISEhIElmIHlv
dSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3Mu
cHkgKi8KLXR5cGVkZWYgdW5pb24KLXsKLSAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2
ZWQ7Ci0gICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKLSAgICAgICBWUkV2
ZW50X01vdXNlX3QgbW91c2U7Ci0gICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Ci0gICAg
ICAgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKLSAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlv
bl90IG5vdGlmaWNhdGlvbjsKLSAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OwotICAg
ICAgIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOwotICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBr
ZXlib2FyZDsKLSAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKLSAgICAgICBWUkV2ZW50X0NoYXBl
cm9uZV90IGNoYXBlcm9uZTsKLSAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZv
cm1hbmNlVGVzdDsKLSAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsK
LSAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0
OwotICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7Ci0gICAgICAgVlJFdmVu
dF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7Ci0gICAgICAgVlJFdmVu
dF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOwotICAgICAgIFZSRXZlbnRf
RWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOwotICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKLSAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3Qg
cHJvcGVydHk7Ci19IFZSRXZlbnRfRGF0YV90OwotCi0vKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRo
ZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCi1zdHJ1Y3QgVlJFdmVudF90
Ci17Ci0gICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQotICAg
ICAgIFRyYWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKLSAgICAgICBmbG9h
dCBldmVudEFnZVNlY29uZHM7Ci0gICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQg
b2YgdGhlIHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQotICAgICAgIFZSRXZlbnRfRGF0
YV90IGRhdGE7Ci19OwotCi0KLS8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwg
KG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKLSogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgp
IGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCi0qIFRo
aXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVy
IGRpc3RvcnRpb24uIAotKgotKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxl
IGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCi0qIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3Vu
dCB3aWxsIGJlIDAuICovCi1zdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAotewotICAgICAgIGNvbnN0
IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7Ci0gICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNv
dW50OwotfTsKLQotCi1lbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKLXsKLSAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJz
ZSA9IDEsCi0gICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAotCi0gICAgICAg
a19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKLX07Ci0KLQotLyoqIElkZW50aWZpZXMgd2hhdCBr
aW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5
cGUgCi0qIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3Bf
QXhpczBUeXBlX0ludDMyICsgbiApOwotKi8KLWVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCi17
Ci0gICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCi0gICAgICAga19lQ29udHJvbGxl
ckF4aXNfVHJhY2tQYWQgPSAxLAotICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0g
MiwKLSAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdn
ZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCi19OwotCi0KLS8qKiBjb250YWlucyBpbmZvcm1hdGlv
biBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLwotc3RydWN0IFZSQ29udHJvbGxl
ckF4aXNfdAotewotICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZv
ciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRy
aWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KLSAgICAgICBmbG9hdCB5OyAvLyBSYW5n
ZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdh
eXMgMC4wIGZvciB0cmlnZ2Vycy4KLX07Ci0KLQotLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0
aGUgY29udHJvbGxlciBzdGF0ZSAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9s
bGVyU3RhdGVBeGlzQ291bnQgPSA1OwotCi0KLS8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEg
Y29udHJvbGxlciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCi1zdHJ1Y3QgVlJDb250cm9sbGVy
U3RhdGUwMDFfdAotewotICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlv
dXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFu
Z2VkIHNpbmNlIAotICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVk
IHRvIHByb2Nlc3MgaXQKLSAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKLQotICAgICAgIC8v
IGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQg
dG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzawotICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3Nl
ZDsKLSAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7Ci0KLSAgICAgICAvLyBBeGlzIGRh
dGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cwotICAgICAgIFZSQ29udHJvbGxl
ckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOwotfTsKLQotCi10
eXBlZGVmIFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKLQotCi0v
KiogZGV0ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9m
IHZhcmlvdXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCi1lbnVtIEVWUkNvbnRyb2xs
ZXJFdmVudE91dHB1dFR5cGUKLXsKLSAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVu
dHMgPSAwLAotICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCi19Owot
Ci0KLQotLyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KLWVudW0gRUNvbGxpc2lvbkJvdW5k
c1N0eWxlCi17Ci0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCi0g
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCi0gICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTLAotICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVf
QURWQU5DRUQsCi0gICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAotCi0gICAgICAg
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVAotfTsKLQotLyoqIEFsbG93cyB0aGUgYXBwbGlj
YXRpb24gdG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3Np
dG9yICovCi1zdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKLXsKLSAgICAgICB1aW50
MzJfdCBzaXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCi0gICAgICAg
Ym9vbCBjdXJ2ZWQsIGFudGlhbGlhczsKLSAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFs
cGhhOwotICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOwotICAg
ICAgIGZsb2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKLSAgICAgICBIbWRNYXRy
aXg0NF90IHRyYW5zZm9ybTsKLX07Ci0KLS8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZS
IG92ZXJsYXkgKi8KLXR5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Ci0KLXN0YXRp
YyBjb25zdCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOwot
Ci0vKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLwotZW51bSBF
VlJPdmVybGF5RXJyb3IKLXsKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAotCi0gICAgICAgVlJPdmVybGF5RXJy
b3JfVW5rbm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAotICAgICAgIFZST3Zl
cmxheUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAotICAgICAg
IFZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEy
LAotICAgICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAg
ICA9IDEzLCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUg
bWF4aW11bSBudW1iZXIgYWxyZWFkeSBleGlzdAotICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25n
VmlzaWJpbGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCi0gICAgICAgVlJPdmVybGF5RXJyb3Jf
S2V5VG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAotICAgICAgIFZST3Zl
cmxheUVycm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCi0g
ICAgICAgVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAg
ICAgICAgICAgICA9IDE4LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2
aWNlICAgICAgICAgICAgICA9IDE5LAotICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJh
bWV0ZXIgICAgICAgICAgICAgICAgICAgICA9IDIwLAotICAgICAgIFZST3ZlcmxheUVycm9yX1Ro
dW1ibmFpbENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAotICAgICAgIFZST3ZlcmxheUVycm9y
X0FycmF5VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAotICAgICAgIFZST3Zlcmxh
eUVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAotICAgICAgIFZS
T3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKLSAg
ICAgICBWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAg
PSAyNSwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAg
ICAgICAgPSAyNiwKLSAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjcsCi0gICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQ
cmltaXRpdmVzICAgICAgID0gMjksCi0gICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1p
dGl2ZSAgICAgICAgICAgICAgICAgICAgID0gMzAsCi19OwotCi0vKiogZW51bSB2YWx1ZXMgdG8g
cGFzcyBpbiB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdp
bGwgCi0qIGRyYXcgYSAzRCBzY2VuZS4gKi8KLWVudW0gRVZSQXBwbGljYXRpb25UeXBlCi17Ci0g
ICAgICAgVlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVy
IGtpbmQgb2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRy
aWVzIAotICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAg
Ly8gQXBwbGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAotICAgICAgIFZSQXBwbGljYXRp
b25fT3ZlcmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0
cyB3aXRoIG92ZXJsYXlzCi0gICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAg
ICAgLy8gQXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFs
cmVhZHkgcnVubmluZywgYW5kIHNob3VsZCBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBp
ZiBldmVyeXRoaW5nIGVsc2UgcXVpdHMuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0g
NCwgICAgICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVy
cy4gVGhlIGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRl
cmZhY2VzIChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFy
ZHdhcmUuCi0gICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNl
cnZlZCBmb3IgdnJtb25pdG9yCi0gICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0g
NiwvLyBSZXNlcnZlZCBmb3IgU3RlYW0KLQotICAgICAgIFZSQXBwbGljYXRpb25fTWF4Ci19Owot
Ci0KLS8qKiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KLWVudW0gRVZSRmlybXdhcmVFcnJv
cgotewotICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKLSAgICAgICBWUkZpcm13YXJl
RXJyb3JfU3VjY2VzcyA9IDEsCi0gICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAotfTsK
LQotCi0vKiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KLWVudW0gRVZSTm90aWZp
Y2F0aW9uRXJyb3IKLXsKLSAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKLSAgICAg
ICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAotICAgICAg
IFZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAx
MDMsCi19OwotCi0KLS8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCi0KLS8v
IFBsZWFzZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9w
ZXIudmFsdmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhl
bHAKLWVudW0gRVZSSW5pdEVycm9yCi17Ci0gICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9
IDAsCi0gICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCi0KLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAot
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAg
PSAxMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90
Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCi0gICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEw
NywKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTA4LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTEyLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5
Tm90V3JpdGFibGUgICAgICAgPSAxMTMsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZv
SW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAotICAgICAgIFZSSW5pdEVycm9y
X0luaXRfUmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
NSwgLy8gVXNlZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKLSAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAg
ID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4g
VGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKLSAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKLSAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOSwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTIwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9T
ZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAotICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCi0gICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAotICAgICAg
IFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEyNCwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAg
ICAgICAgICAgICAgICAgICAgID0gMTI1LAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90
Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCi0gICAgICAgVlJJbml0RXJyb3JfSW5p
dF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAotICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgs
Ci0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0g
MTI5LCAKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAg
ICAgICAgICAgID0gMTMwLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9X
YXRjaGRvZ0FwcHMgPSAxMzEsCi0gICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2Fi
bGVkSW5TZXR0aW5ncyA9IDEzMiwKLSAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
Tm90Rm91bmQgICAgICAgICAgICAgID0gMTMzLAotICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJE
YXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgID0gMTM0LAotCi0gICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKLSAgICAgICBW
UkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MSwKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAg
ICAgID0gMjAyLAotICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAg
ICAgICAgICAgICA9IDIwMywKLSAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9m
RGF0ZSAgICAgICAgICAgICAgPSAyMDQsCi0gICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZElu
VXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAotICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKLSAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAotICAgICAgIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCi0gICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAotICAg
ICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAg
ICAgPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKLSAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKLQotICAgICAg
IFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKLSAg
ICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0g
MzAxLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAg
PSAzMDIsCi0gICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAg
ID0gMzAzLAotICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICA9IDMwNCwKLSAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKLSAgICAgICBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCi0gICAgICAgVlJJbml0RXJyb3Jf
SVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAotICAgICAgIFZSSW5p
dEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAotCi0g
ICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNDAwLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFI
YXJkd2FyZVJlcXVpcmVkICAgICAgID0gNDAxLAotICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKLSAgICAgICBWUkluaXRFcnJv
cl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKLSAgICAg
ICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQw
NCwKLQotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRv
T2N1bHVzUnVudGltZSA9IDEwMDAsCi0KLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTAxLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
UmVxdWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAzLAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAotICAgICAg
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExMDUsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9
IDExMDYsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJl
YWRGaXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEw
OCwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dl
dFVzZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAotICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDEx
MTAsCi0gICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFB
ZGRyZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTExMiwKLSAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAotCi0gICAgICAgVlJJ
bml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCi19OwotCi1l
bnVtIEVWUlNjcmVlbnNob3RUeXBlCi17Ci0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0g
MCwKLSAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5Ci0g
ICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAotICAgICAgIFZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCA9IDMsCi0gICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0
LAotICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Ci19OwotCi1lbnVt
IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcwotewotICAgICAgIFZSU2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAotICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSID0gMSwKLX07Ci0KLWVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCi17Ci0g
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAw
LAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAg
ID0gMTAwLAotICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAg
ICAgICAgID0gMTAxLCAgICAgICAKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
RnJhbWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9P
dXRPZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKLSAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKLSAgICAgICBWUlRy
YWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKLSAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywK
LSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9
IDEwOCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAg
ICAgICA9IDEwOSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4
dHVyZUhhbmRsZSA9IDExMCwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dl
dEdMVGV4dHVyZUlkICAgICA9IDExMSwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFy
ZWRUZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKLSAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9Ob0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKLSAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKLSAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKLX07Ci0KLWVu
dW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQotewotICAgICAgIFZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhl
IGNhbWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgotICAg
ICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAg
ICAgICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVn
aW9uIHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFu
Z2VzIHNob3J0bHkuCi0gICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRp
c3RvcnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52
YWxpZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCBy
ZWdpb25zLgotICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKLX07Ci0KLXR5cGVkZWYgdWlu
dDY0X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OwotI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FN
RVJBX0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKLQotc3RydWN0
IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAotewotICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKLQotICAgICAgIHVpbnQzMl90IG5XaWR0aDsKLSAgICAg
ICB1aW50MzJfdCBuSGVpZ2h0OwotICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOwotCi0g
ICAgICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7Ci0KLSAgICAgICBUcmFja2VkRGV2aWNlUG9z
ZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Ci19OwotCi0vLyBTY3JlZW5zaG90IHR5cGVz
Ci10eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKLQotc3RhdGljIGNvbnN0IHVp
bnQzMl90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7Ci0KLSNwcmFnbWEgcGFjaygg
cG9wICkKLQotLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwK
LSNpZiBkZWZpbmVkKF9XSU4zMikKLQotI2lmZGVmIFZSX0FQSV9FWFBPUlQKLSNkZWZpbmUgVlJf
SU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKLSNlbHNlCi0jZGVm
aW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCi0jZW5k
aWYKLQotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8
IGRlZmluZWQoX19BUFBMRV9fKQotCi0jaWZkZWYgVlJfQVBJX0VYUE9SVAotI2RlZmluZSBWUl9J
TlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQotI2Vsc2UKLSNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCi0jZW5kaWYKLQotI2Vs
c2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgotI2VuZGlmCi0KLQotI2lmIGRlZmlu
ZWQoIF9XSU4zMiApCi0jZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKLSNlbHNlCi0jZGVmaW5l
IFZSX0NBTExUWVBFIAotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIHZyCi0KLSNlbmRpZiAvLyBf
SU5DTFVERV9WUlRZUEVTX0gKLQotCi0vLyB2cmFubm90YXRpb24uaAotI2lmZGVmIEFQSV9HRU4K
LSMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFU
VFIgKSkpCi0jZWxzZQotIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQotI2VuZGlmCi0KLSNk
ZWZpbmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAi
OyIgKQotI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQot
I2RlZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkK
LSNkZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiAp
Ci0jZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9D
TEFOR19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAj
UEFSQU1TICI7IiApCi0jZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKLSNkZWZpbmUgVlJfQVJS
QVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIg
IjsiICkKLSNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19B
VFRSKCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCi0jZGVmaW5lIFZS
X0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NP
VU5URVIgIjsiICkKLSNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCi0jZGVmaW5lIFZSX09V
VF9TVFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6
IiAjQ09VTlRFUiAiOyIgKQotCi0vLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCi0jaWZuZGVmIF9W
UlRSQUNLRURDQU1FUkFUWVBFU19ICi0jZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAot
Ci1uYW1lc3BhY2UgdnIKLXsKLQotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCi0gICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFs
aWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCi0gICAgICAg
Ly8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3
aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCi0gICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJz
aW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMg
c2V0IHRvCi0gICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBh
Y2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgotICAgICAgIC8vIFRoZSA2NC1i
aXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBh
Y2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkK
LSNlbHNlCi0gICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKLSNlbmRpZgotCi1lbnVtIEVD
YW1lcmFWaWRlb1N0cmVhbUZvcm1hdAotewotICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAs
Ci0gICAgICAgQ1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBl
ciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBi
aXRzIHBlciBwaXhlbAotICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAg
Ly8gMjQgYml0cyBwZXIgcGl4ZWwKLSAgICAgICBDVlNfTUFYX0ZPUk1BVFMKLX07Ci0KLWVudW0g
RUNhbWVyYUNvbXBhdGliaWxpdHlNb2RlCi17Ci0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JV
TEtfREVGQVVMVCA9IDAsCi0gICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwK
LSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAotICAgICAgIENBTUVSQV9D
T01QQVRfTU9ERV9CVUxLXzhLX0RNQSwKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUy
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180OEZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT180MkZQUywKLSAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQw
RlBTLAotICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCi0gICAgICAgQ0FNRVJB
X0NPTVBBVF9NT0RFX0lTT18zMEZQUywKLSAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUwot
fTsKLQotI2lmZGVmIF9NU0NfVkVSCi0jZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkg
X19kZWNsc3BlYyggYWxpZ24oIHggKSApCi0jZWxzZQotI2RlZmluZSBWUl9DQU1FUkFfREVDTF9B
TElHTiggeCApIC8vCi0jZW5kaWYKLQotI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9I
QU5ETEVTICAgICAgIDQKLQotVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZV90Ci17Ci0gICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1f
blN0cmVhbUZvcm1hdDsKLQotICAgICAgIHVpbnQzMl90IG1fbldpZHRoOwotICAgICAgIHVpbnQz
Ml90IG1fbkhlaWdodDsKLQotICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZv
cm1hdCwgd2lkdGgsIGhlaWdodAotCi0gICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAw
IHdoZW4gc3RyZWFtIHN0YXJ0cy4KLQotICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hp
Y2ggYnVmZmVyIHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAotICAgICAgIHVpbnQzMl90IG1fbkJ1
ZmZlckNvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRv
dGFsIG51bWJlciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKLQotICAgICAgIHVpbnQzMl90IG1fbkV4
cG9zdXJlVGltZTsKLQotICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3Rh
bXAgcGVyIGRyaXZlciBjZW50cmljIHRpbWUgYmFzZQotICAgICAgIHVpbnQzMl90IG1fbklTUFJl
ZmVyZW5jZVRpbWVTdGFtcDsKLSAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKLQotICAg
ICAgIHVpbnQzMl90IG1fbkNhbVN5bmNFdmVudHM7Ci0gICAgICAgdWludDMyX3QgbV9uSVNQU3lu
Y0V2ZW50czsKLQotICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7Ci0KLSAg
ICAgICBkb3VibGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25k
cy4KLSAgICAgICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOwotCi0gICAgICAgZG91Ymxl
IG1fZmxGcmFtZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4g
VVNCIHRpbWUsIHZpYSBBdXhFdmVudAotICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGlt
ZV9TZXJ2ZXJSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0
aGUgc2VydmVyCi0gICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJz
b2x1dGU7ICAgICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgotICAgICAg
IGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAg
IC8vIEF0IHRoZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2Vk
L2NhcHR1cmVkLgotCi0gICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7Ci0KLSAgICAg
ICBUcmFja2VkRGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAg
Ly8gU3VwcGxpZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCi0K
LSAgICAgICB1aW50NjRfdCBtX3BJbWFnZURhdGE7Ci19OwotCi0jcHJhZ21hIHBhY2soIHBvcCAp
Ci0KLX0KLQotI2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICi0vLyBpdnJzZXR0aW5n
cy5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKLSAgICAgICAgICAg
ICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCi0gICAgICAgICAgICAgIFZSU2V0dGlu
Z3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9S
ZWFkRmFpbGVkID0gMywKLSAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZh
aWxlZCA9IDQsCi0gICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNO
b0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9l
cyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3Qg
YmVlbiBzZXQKLSAgICAgICB9OwotCi0gICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEg
c2V0dGluZ3Mga2V5Ci0gICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5n
c0tleUxlbmd0aCA9IDEyODsKLQotICAgICAgIGNsYXNzIElWUlNldHRpbmdzCi0gICAgICAgewot
ICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0
aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKLQot
ICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3Jj
ZSBvciBzZXR0aW5ncyBkaXJ0eSkKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJv
b2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkg
PSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpw
Y2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBj
aFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZs
VmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRp
bmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIC8vIFVz
ZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVm
YXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQotICAg
ICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGly
ZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIi
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQz
MiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBj
aFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVT
ZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUlu
U2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NL
ZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotICAgICAgIH07
Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7Ci0KLSAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gc3RlYW12ciBrZXlzCi0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3Rl
YW12ciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Jl
cXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERy
aXZlciI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Zv
cmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVn
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQ
cm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJl
bmFibGVEaXN0b3J0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQz
MiA9ICJkaXNwbGF5RGVidWdZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0g
ImJhY2tncm91bmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9t
ZVByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWln
aHQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcg
PSAiZ3JpZENvbG9yIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNo
b3dTdGFnZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMi
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RN
b2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlk
VmlkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGly
ZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOwotICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAi
dXNpbmdTcGVha2VycyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNG
b3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0
YXRpb25Qb3dlck1hbmFnZW1lbnQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNz
ZXMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5k
ZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVw
cm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wg
PSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VS
ZXByb2plY3Rpb24iOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2lu
ZyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1
bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKLSAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJz
aG93TWlycm9yVmlldyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25p
dG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJv
bUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZy
b21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBz
RnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFw
cCA9ICJlbmFibGVIb21lQXBwIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0
SG9tZUFwcCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFn
ZVRpbWVTZWMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOwot
Ci0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5
cwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0
aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJp
Z3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMy
ID0gImRpc2FtYmlndWF0aW9uZGVidWciOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJh
c2VzdGF0aW9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0
aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKLQotICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvLyBudWxsIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAi
c2VyaWFsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9
ICJ3aW5kb3dZIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
V2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lk
dGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKLSAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1Rv
UGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9
ICJkaXNwbGF5RnJlcXVlbmN5IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7Ci0gICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fs
d2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0g
Ik1pbmltaXplVG9UcmF5IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RU
eXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9O
b3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICAgICAvLyBrZXlib2FyZCBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlv
bnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKLSAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAi
T2Zmc2V0TGVmdFgiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5
Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOwotICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNt
b290aGluZyI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gcGVy
ZiBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rp
b24gPSAicGVyZmNoZWNrIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKLSAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3
YXJuSW5ITUQiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9O
b3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1Rp
bWluZ1N0b3JlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZf
U2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZU
ZXN0RGF0YSI7Ci0KLSAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY29s
bGlzaW9uIGJvdW5kcyBrZXlzCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwotICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0NlbnRlck1hcmtlck9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJv
dW5kc1BsYXlTcGFjZU9uIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFk
ZURpc3RhbmNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxp
c2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
UiI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfQ29sb3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOwotICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFCX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9J
bnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7Ci0KLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8gY2FtZXJhIGtleXMKLSAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAi
ZW5hYmxlQ2FtZXJhIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJv
YXJkIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNp
b25Cb3VuZHMiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXci
OwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0Nv
bG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQz
MiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91
bmRzQ29sb3JHYW1tYUIiOwotICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFB
IjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNT
dHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7Ci0KLSAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8gYXVkaW8ga2V5cwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Ci0gICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvblBsYXliYWNrRGV2aWNlIjsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7Ci0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWly
cm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKLSAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvZmZQbGF5YmFja0RldmljZSI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7
Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdh
aW4gPSAidml2ZUhETUlHYWluIjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAvLyBwb3dlciBtYW5hZ2VtZW50IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOwotICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9m
Zk9uRXhpdCI7Ci0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKLSAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9s
bGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7Ci0gICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGlt
ZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7Ci0gICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKLQotICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBkYXNoYm9hcmQga2V5cwotICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsK
LSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVE
YXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOwotICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2Rl
IjsKLQotICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAvLyBtb2RlbCBza2lu
IGtleXMKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9T
ZWN0aW9uID0gIm1vZGVsc2tpbnMiOwotCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgIC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJp
dmVyXzxuYW1lPiBzZWN0aW9uCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKLQotfSAvLyBuYW1lc3BhY2UgdnIKLQot
Ly8gaXNlcnZlcnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAotbmFtZXNwYWNlIHZyCi17Ci0KLQotc3Ry
dWN0IERyaXZlclBvc2VRdWF0ZXJuaW9uX3QKLXsKLSAgICAgICBkb3VibGUgdywgeCwgeSwgejsK
LX07Ci0KLXN0cnVjdCBEcml2ZXJQb3NlX3QKLXsKLSAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0
aGlzIHBvc2UsIGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCi0g
ICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBt
YWRlIGJ5IHRoZSBkcml2ZXIuCi0gICAgICAgICovCi0gICAgICAgZG91YmxlIHBvc2VUaW1lT2Zm
c2V0OwotCi0gICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJp
dmVyCi0gICAgICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVy
ZW50Ci0gICAgICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwg
eisgYmFjay4KLSAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNr
aW5nIHRoZSAiaGVhZCIgcG9zaXRpb24sCi0gICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJu
YWwgSU1VIG9yIGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCi0gICAgICAgICog
VGhlIGZvbGxvd2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmll
bnRhdGlvbnMKLSAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQg
c3BhY2UsCi0gICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2Fs
IGJvZHkgc3BhY2UuIAotICAgICAgICAqCi0gICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZl
ciBwb3NlIHN0YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKLSAgICAgICAg
KiBzbyB3ZSBjYW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRv
Ci0gICAgICAgICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFy
IGFjY2VsZXJhdGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAotICAgICAgICAqIGFuZCBp
cyBpbnN0ZWFkIGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2
ZWxvY2l0eS4KLSAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVy
YXRpb24gdmFsdWVzLCB3aGljaCBhcmUgYWxzbwotICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhl
IGZpbHRlcmluZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZl
bC4KLSAgICAgICAgKi8KLSAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2
ZXJSb3RhdGlvbjsKLSAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25b
IDMgXTsKLQotICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRp
b247Ci0gICAgICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKLQot
ICAgICAgIC8qIFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICov
Ci0gICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4g
ZHJpdmVyIHdvcmxkIHNwYWNlCi0gICAgICAgKiArWzBdICh4KSBpcyByaWdodAotICAgICAgICog
K1sxXSAoeSkgaXMgdXAKLSAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKLSAgICAgICAqLwot
ICAgICAgIGRvdWJsZSB2ZWNQb3NpdGlvblsgMyBdOwotCi0gICAgICAgLyogVmVsb2NpdHkgb2Yg
dGhlIHBvc2UgaW4gbWV0ZXJzL3NlY29uZCAqLwotICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsg
MyBdOwotCi0gICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNv
bmQgKi8KLSAgICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07Ci0KLSAgICAgICAvKiBP
cmllbnRhdGlvbiBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICov
Ci0gICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247Ci0KLSAgICAgICAvKiBBbmd1
bGFyIHZlbG9jaXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCi0gICAgICAgKiByZXByZXNl
bnRhdGlvbi4gVGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKLSAgICAgICAqIHJvdGF0aW9u
IGFuZCB0aGUgbWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKLSAgICAgICAqIHRoYXQgYXhp
cyBpbiByYWRpYW5zL3NlY29uZC4gKi8KLSAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5
WyAzIF07Ci0KLSAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBh
eGlzLWFuZ2xlIAotICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhl
IGFuZ2xlIG9mCi0gICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5n
bGUgYXJvdW5kCi0gICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KLSAg
ICAgICBkb3VibGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOwotCi0gICAgICAgRVRyYWNr
aW5nUmVzdWx0IHJlc3VsdDsKLQotICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7Ci0gICAgICAgYm9v
bCB3aWxsRHJpZnRJbllhdzsKLSAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOwotICAg
ICAgIGJvb2wgZGV2aWNlSXNDb25uZWN0ZWQ7Ci19OwotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJh
Y2tlZCBkZXZpY2UgaW4gYSBkcml2ZXIKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCi17Ci1wdWJsaWM6Ci0K
LSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAv
LyBNYW5hZ2VtZW50IE1ldGhvZHMKLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyBy
ZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCi0gICAgICAgKiBj
YWxsZWQgYmVmb3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQg
cHJvY2Vzc29yIHVzZSBieSB0aGUKLSAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVy
IG9iamVjdCBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVk
LgotICAgICAgICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1
bnRpbCBEZWFjdGl2YXRlIGlzIGNhbGxlZCwgYnV0Ci0gICAgICAgKiBzaG91bGQgbm90IGJlIHVz
ZWQgYWZ0ZXIgdGhhdCBwb2ludC4gKi8KLSAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3Rp
dmF0ZSggdWludDMyX3QgdW5PYmplY3RJZCApID0gMDsKLQotICAgICAgIC8qKiBUaGlzIGlzIGNh
bGxlZCB3aGVuIFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcg
dGhlIGFjdGl2ZSBkaXNwbGF5Ci0gICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0
aXZlIGRpc3BsYXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQotICAg
ICAgICogYW5kIHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KLSAg
ICAgICB2aXJ0dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKLQotICAgICAgIC8qKiBIYW5kbGVz
IGEgcmVxdWVzdCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRi
eSBtb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLwotICAgICAg
IHZpcnR1YWwgdm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7Ci0KLSAgICAgICAvKiogUmVxdWVzdHMg
YSBjb21wb25lbnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBm
dW5jdGlvbmFsaXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAotICAgICAgICogaWYg
dGhlIHJlcXVlc3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25l
bnROYW1lQW5kVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFk
ZSB0aGlzIGRlYnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1
ZXN0cyBpcyBlbnRpcmVseQotICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVu
dCB0byBmaWd1cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9u
c2VzIHRoYXQKLSAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZm
ZXIgc2hvdWxkIGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCi0gICAgICAgdmly
dHVhbCB2b2lkIERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNo
UmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOwotCi0g
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgLy8g
VHJhY2tpbmcgTWV0aG9kcwotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Ci19Owot
Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNp
b24gPSAiSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKLQotfQotLy8gaXZyZGlzcGxh
eWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5
IGNvbXBvbmVudCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQotICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29t
cG9uZW50Ci0gICAgICAgewotICAgICAgIHB1YmxpYzoKLQotICAgICAgICAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8gRGlzcGxh
eSBNZXRob2RzCi0gICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3
aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCi0gICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNr
dG9wLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCAp
ID0gMDsKLQotICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlz
IHJlYWwgYW5kIG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgSXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOwotCi0gICAgICAgICAgICAgIC8q
KiBTdWdnZXN0ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQg
dGhlIGRpc3RvcnRpb24gcHVsbHMgZnJvbS4gKi8KLSAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQz
Ml90ICpwbkhlaWdodCApID0gMDsKLQotICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3Bv
cnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRp
b24gaW50byAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3Bv
cnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAq
cG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOwotCi0gICAgICAgICAgICAgIC8qKiBU
aGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRy
aXggaW4gY2FzZSB5b3VyCi0gICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29t
ZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpw
ZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKLQotICAgICAgICAg
ICAgICAvKiogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZv
ciB0aGUgc3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KLSAg
ICAgICAgICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAx
LDEgaW4gdGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCi0gICAgICAg
ICAgICAgIHZpcnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24o
IEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7Ci0KLSAgICAgICB9OwotCi0g
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJ
VlJEaXNwbGF5Q29tcG9uZW50XzAwMiI7Ci0KLX0KLQotLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNv
bXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50
IGlzIHVzZWQgZm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkg
b24gdGhlaXIgb3duCi0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93
aW5nIHRoZSBWUiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBh
cmUgeW91IGRvbid0Ci0gICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxl
bWVudCB0aGlzIGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KLSAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0
TW9kZUNvbXBvbmVudAotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0KLSAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgLy8g
RGlyZWN0IG1vZGUgbWV0aG9kcwotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMg
Y29tcG9zaXRvciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNp
bmcgdGhpcyBtZXRob2QuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2Fw
VGV4dHVyZVNldCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1
bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBT
aGFyZWRUZXh0dXJlSGFuZGxlcyApWyAzIF0gKSB7fQotCi0gICAgICAgICAgICAgIC8qKiBVc2Vk
IHRvIHRleHR1cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9u
ZSBvZiB0aGUgc2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVu
dGlyZSBzZXQuICovCi0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1
cmVTZXQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9
Ci0KLSAgICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3Ig
YSBnaXZlbiBwcm9jZXNzLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFs
bFN3YXBUZXh0dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQotCi0gICAgICAgICAgICAgIC8q
KiBBZnRlciBQcmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4
IHRvIHVzZSBmb3IgcmVuZGVyaW5nLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVk
VGV4dHVyZUhhbmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQotCi0g
ICAgICAgICAgICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJh
bWUuICBPbmUgc2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJl
IGNyZWF0ZWQKLSAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQg
c2hvdWxkIGJlIGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxh
eWVycyBoYXZlIGJlZW4gc3VibWl0dGVkLiAqLwotICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U3VibWl0TGF5ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRs
ZXNbIDIgXSwgY29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29u
c3QgdnI6OkhtZE1hdHJpeDM0X3QgKnBQb3NlICkge30KLQotICAgICAgICAgICAgICAvKiogU3Vi
bWl0cyBxdWV1ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLwotICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgUHJlc2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9
Ci0KLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAw
MiI7Ci0KLX0KLQotLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsK
LQotCi0gICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAg
ICAgIC8vIFB1cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2
aWNlLgotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDb250cm9sbGVyQ29tcG9uZW50Ci0gICAgICAgewotICAgICAgIHB1Ymxp
YzoKLQotICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICAgICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCi0gICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KLSAgICAgICAgICAg
ICAgdmlydHVhbCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7
Ci0KLSAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBw
cm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8K
LSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3Qg
dW5BeGlzSWQsIHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKLQot
ICAgICAgIH07Ci0KLQotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJD
b21wb25lbnRfVmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7Ci0KLX0KLS8v
IGl2cmNhbWVyYWNvbXBvbmVudC5oCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIGNsYXNz
IElDYW1lcmFWaWRlb1NpbmtDYWxsYmFjawotICAgICAgIHsKLSAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOwot
ICAgICAgIH07Ci0KLSAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRl
dmljZQotICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICBjbGFzcyBJVlJDYW1lcmFDb21wb25lbnQKLSAgICAgICB7Ci0gICAgICAgcHVibGljOgot
ICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICAgICAgICAgICAgLy8gQ2FtZXJhIE1ldGhvZHMKLSAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDYW1lcmFGcmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZp
ZGVvU3RyZWFtRm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVx
dWlyZW1lbnRzKCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVC
dWZmZXJEYXRhU2l6ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVy
YUZyYW1lQnVmZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVm
ZmVycywgdWludDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7Ci0gICAgICAgICAgICAg
IHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7Ci0gICAgICAgICAgICAgIHZp
cnR1YWwgdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZv
cm1hdCgpID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpw
YlBhdXNlZCwgZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0
dWFsIGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJh
bWUoKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1G
cmFtZSggY29uc3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9
IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVu
YWJsZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0o
KSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0g
MDsKLSAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0
IGZsSW5wdXRVLCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxP
dXRwdXRWICkgPSAwOwotICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVj
dGlvbiggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxa
TmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7
Ci0gICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVS
YXRlLCBpbnQgblNlbnNvckZyYW1lUmF0ZSApID0gMDsKLSAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIFNldENhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxi
YWNrICpwQ2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7Ci0gICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBHZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmls
aXR5TW9kZSAqcENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0
aWJpbGl0eU1vZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOwotICAgICAgICAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVp
bnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOwotICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJf
dCAqcENlbnRlciApID0gMDsKLSAgICAgICB9OwotCi0gICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KklWUkNhbWVyYUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOwot
fQotLy8gaXRyYWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCi1uYW1lc3BhY2UgdnIKLXsKLQot
Y2xhc3MgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7Ci1zdHJ1Y3QgVHJhY2tlZERldmljZURy
aXZlckluZm9fdDsKLXN0cnVjdCBEcml2ZXJQb3NlX3Q7Ci10eXBlZGVmIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgRHJpdmVySGFuZGxlX3Q7Ci0KLS8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92
aWRlZCBieSB2cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKLSogdGhlIHN5
c3RlbSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2Vz
IG11c3QKLSogbm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2
aWNlIGJlY2F1c2UgdGhvc2UgdmFsdWVzCi0qIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdp
dGggdGhlIGRldmljZSdzIGluZGV4LiAqLwotY2xhc3MgSVZSRHJpdmVyQ29udGV4dAotewotcHVi
bGljOgotICAgICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUg
aW50ZXJmYWNlIHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwK
LSAgICAgICAqIG91dCB0aGUgZXJyb3IuICovCi0gICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5l
cmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdGhlIHBy
b3BlcnR5IGNvbnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCi0gICAgICAgdmlydHVh
bCBEcml2ZXJIYW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Ci19OwotCi0KLS8qKiBUaGlz
IGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJl
IGxvYWRlZCBpbiB2cnNlcnZlci5leGUgKi8KLWNsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJv
dmlkZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhp
cyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KLSAg
ICAgICAqIElmIEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05v
bmUgdGhlIGRyaXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KLSAgICAgICAqCi0gICAgICAgKiBw
RHJpdmVySG9zdCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50
ZXIgdG8gYSBJU2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKLSAgICAgICAqCi0gICAgICAgKiBw
Y2hVc2VyRHJpdmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9y
eSB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCi0gICAgICAgKiAgICAgICBjb25m
aWcgZmlsZXMuCi0gICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBh
dGggb2YgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgotICAgICAgICovCi0gICAg
ICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNv
bnRleHQgKSA9IDA7Ci0KLSAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVm
b3JlIGl0IGlzIHVubG9hZGVkICovCi0gICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7
Ci0KLSAgICAgICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VT
ZXJ2ZXJEcml2ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KLSAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7Ci0KLSAg
ICAgICAvKiogQWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxv
b3Agb2YgdGhlIHNlcnZlci4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7
Ci0KLQotICAgICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIC8vCi0KLSAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBk
cml2ZXIgd2FudHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgYm9v
bCBTaG91bGRCbG9ja1N0YW5kYnlNb2RlKCkgPSAwOwotCi0gICAgICAgLyoqIENhbGxlZCB3aGVu
IHRoZSBzeXN0ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBz
d2l0Y2ggaXRzZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKLSAgICAgICAqIHN0
YXRlIGl0IGhhcy4gKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOwot
Ci0gICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1v
ZGUuIFRoZSBkcml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bwotICAgICAgIGZ1bGwg
b3BlcmF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7Ci0K
LX07Ci0KLQotc3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJf
VmVyc2lvbiA9ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7Ci0KLQotCi0KLS8q
KiBUaGlzIGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3
aWxsIGJlIGxvYWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KLWNsYXNzIElWUldhdGNoZG9nUHJvdmlk
ZXIKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRj
aGRvZyBtb2RlLiAqLwotICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZl
ckNvbnRleHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOwotCi0gICAgICAgLyoqIGNsZWFucyB1cCB0
aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwg
dm9pZCBDbGVhbnVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9n
UHJvdmlkZXJfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7Ci0KLX0KLS8vIGl2
cnByb3BlcnRpZXMuaAotI2luY2x1ZGUgPHN0cmluZz4KLQotbmFtZXNwYWNlIHZyCi17Ci0KLSAg
ICAgICBlbnVtIEVQcm9wZXJ0eVdyaXRlVHlwZQotICAgICAgIHsKLSAgICAgICAgICAgICAgUHJv
cGVydHlXcml0ZV9TZXQgPSAwLAotICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0g
MSwKLSAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKLSAgICAgICB9Owot
Ci0gICAgICAgc3RydWN0IFByb3BlcnR5V3JpdGVfdAotICAgICAgIHsKLSAgICAgICAgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOwotICAgICAgICAgICAgICBFUHJvcGVydHlXcml0
ZVR5cGUgd3JpdGVUeXBlOwotICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNl
dEVycm9yOwotICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKLSAgICAgICAgICAgICAgdWlu
dDMyX3QgdW5CdWZmZXJTaXplOwotICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRh
ZzsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKLSAgICAgICB9
OwotCi0gICAgICAgc3RydWN0IFByb3BlcnR5UmVhZF90Ci0gICAgICAgewotICAgICAgICAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Ci0gICAgICAgICAgICAgIHZvaWQgKnB2QnVm
ZmVyOwotICAgICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7Ci0gICAgICAgICAgICAg
IFByb3BlcnR5VHlwZVRhZ190IHVuVGFnOwotICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVp
cmVkQnVmZmVyU2l6ZTsKLSAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJv
cjsKLSAgICAgICB9OwotCi0KLWNsYXNzIElWUlByb3BlcnRpZXMKLXsKLXB1YmxpYzoKLQotICAg
ICAgIC8qKiBSZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJv
cGVydHlSZWFkQmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCi0gICAgICAg
dmlydHVhbCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0
Y2gsIHVpbnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIFdyaXRl
cyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJh
dGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLwotICAgICAgIHZpcnR1YWwgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQz
Ml90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOwotCi0gICAgICAgLyoqIHJldHVybnMgYSBzdHJp
bmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRo
ZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZQotICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFs
dWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hh
ciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3Ig
KSA9IDA7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0
cmFja2VkIGRldmljZSBpbmRleCAqLwotICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCBUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZSApID0gMDsKLQotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJ
VlJQcm9wZXJ0aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOwotCi1jbGFzcyBDVlJQ
cm9wZXJ0eUhlbHBlcnMKLXsKLXB1YmxpYzoKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElW
UlByb3BlcnRpZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMg
KSB7fQotCi0gICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZp
Y2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90
IG1hdGNoLAotICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KLSAg
ICAgICBib29sIEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENv
bnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0gICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7Ci0g
ICAgICAgaW50MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsKLSAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9
IDBMICk7Ci0KLSAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0
cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lz
ZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nhcnkg
dG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAgICAgKiBudWxs
LiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgPSAwTCApOwotCi0KLSAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9w
ZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlz
IG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJuIDAu
IE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBu
ZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCi0gICAg
ICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KLSAgICAgICB1aW50MzJfdCBHZXRTdHJp
bmdQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3Ig
PSAwTCApOwotCi0gICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6
OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5
IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAotICAgICAgICogcmV0dXJu
IGFuIGVtcHR5IHN0cmluZy4gKi8KLSAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0
eSggdnI6OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICk7Ci0KLSAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi0gICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIFNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOwot
ICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApOwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFu
ZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7Ci0g
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIHVpbnQ2NF90IHVsTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc3RyaW5n
IHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVl
bnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAgICBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
Y29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKTsKLQotICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5
cGVkIHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNl
cXVlbnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KLSAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9p
ZCAqcHZOZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190
IHVuVGFnICk7Ci0KLSAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBh
IHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQg
cmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvciBTZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciBlRXJyb3IgKTsKLQotICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNl
dCBmb3IgdGhlIHByb3BlcnR5LiAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFz
ZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgKTsKLQotICAgICAgIC8qIFR1cm5zIGEgZGV2aWNl
IGluZGV4IGludG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLwotICAgICAgIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFj
a2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQotCi1wcml2YXRlOgot
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlcigg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVs
dCwgUHJvcGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7Ci0KLSAgICAgICBJVlJQcm9wZXJ0aWVz
ICptX3BQcm9wZXJ0aWVzOwotfTsKLQotCi1pbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxw
ZXJzOjpHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAq
cHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRh
ZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIFByb3BlcnR5UmVh
ZF90IGJhdGNoOwotICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOwotICAgICAgIGJhdGNoLnB2QnVm
ZmVyID0gcHZCdWZmZXI7Ci0gICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXpl
OwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVy
SGFuZGxlLCAmYmF0Y2gsIDEgKTsKLQotICAgICAgIGlmICggcEVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7Ci0gICAgICAgfQotCi0gICAgICAg
aWYgKCBwdW5UYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVu
VGFnOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6
ZTsKLX0KLQotCi0vKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1
ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJv
cGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENW
UlByb3BlcnR5SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZO
ZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFn
ICkKLXsKLSAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7Ci0gICAgICAgYmF0Y2gud3JpdGVU
eXBlID0gUHJvcGVydHlXcml0ZV9TZXQ7Ci0gICAgICAgYmF0Y2gucHJvcCA9IHByb3A7Ci0gICAg
ICAgYmF0Y2gucHZCdWZmZXIgPSBwdk5ld1ZhbHVlOwotICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6
ZSA9IHVuTmV3VmFsdWVTaXplOwotICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7Ci0KLSAgICAg
ICBtX3BQcm9wZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAm
YmF0Y2gsIDEgKTsKLQotICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Ci19Ci0KLQotLyoqIFJl
dHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlk
IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwK
LSogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJl
ciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRy
YWlsaW5nCi0qIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191
bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLwotaW5saW5lIHVpbnQzMl90IENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJf
T1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKLXsKLSAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1
blRhZzsKLSAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7Ci0gICAgICAgdWludDMy
X3QgdW5SZXF1aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBjaFZhbHVlLCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7Ci0gICAgICAgaWYgKCB1
blRhZyAhPSBrX3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25n
RGF0YVR5cGU7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwRXJyb3IgKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgKnBFcnJvciA9IGVycm9yOwotICAgICAgIH0KLQotICAgICAgIGlmICggZXJy
b3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAo
IHBjaFZhbHVlICYmIHVuQnVmZmVyU2l6ZSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICpwY2hWYWx1ZSA9ICdcMCc7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0K
LSAgICAgICByZXR1cm4gdW5SZXF1aXJlZFNpemU7Ci19Ci0KLQotLyoqIFJldHVybnMgYSBzdHJp
bmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3Qg
dmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24g
d2lsbAotKiByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLwotaW5saW5lIHN0ZDo6c3RyaW5nIENW
UlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2
cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKLXsKLSAgICAgICBjaGFyIGJ1Zlsx
MDI0XTsKLSAgICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKLSAgICAgICB1aW50
MzJfdCB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVy
LCBwcm9wLCBidWYsIHNpemVvZihidWYpLCAmZXJyICk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBz
UmVzdWx0OwotCi0gICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCi0gICAg
ICAgewotICAgICAgICAgICAgICBzUmVzdWx0ID0gYnVmOwotICAgICAgIH0KLSAgICAgICBlbHNl
IGlmICggZXJyID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5d
OwotICAgICAgICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHko
IHVsQ29udGFpbmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIg
KTsKLSAgICAgICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKLSAgICAgICAgICAgICAgZGVs
ZXRlW10gcGNoQnVmZmVyOwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAg
ICAgewotICAgICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKLSAgICAgICB9Ci0KLSAgICAgICBy
ZXR1cm4gc1Jlc3VsdDsKLX0KLQotCi0vKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5l
dyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRo
aXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgY29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKQotewotICAgICAgIGlmICggIXBjaE5ld1ZhbHVl
ICkKLSAgICAgICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247Ci0K
LSAgICAgICAvLyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmlu
Zy5oCi0gICAgICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOwotICAgICAgIHdo
aWxlICggKnBjaEN1cnIgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcGNoQ3VycisrOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHBy
b3AsICh2b2lkICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVl
KSArIDEsIGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyApOwotfQotCi0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1pbmxpbmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQ
cm9wZXJ0eVR5cGVUYWdfdCB1blR5cGVUYWcgKQotewotICAgICAgIFQgYlZhbHVlOwotICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7Ci0gICAgICAgUHJvcGVydHlUeXBlVGFnX3Qg
dW5SZWFkVGFnOwotICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwg
JmJWYWx1ZSwgc2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOwotICAgICAg
IGlmICggdW5SZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3Vj
Y2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlOwotICAgICAgIH07Ci0KLSAgICAgICBpZiAoIHBFcnJvciApCi0gICAgICAgICAg
ICAgICpwRXJyb3IgPSBlRXJyb3I7Ci0gICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3Bf
U3VjY2VzcyApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7Ci0gICAg
ICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7
Ci0gICAgICAgfQotfQotCi0KLWlubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9v
bFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9y
ICkKLXsKLSAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Ci19Ci0K
LQotaW5saW5lIGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCi17Ci0gICAgICAg
cmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3As
IHBFcnJvciwgMC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgaW50MzJf
dCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9w
ZXJ0eUhlbHBlcjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwg
a191bkludDMyUHJvcGVydHlUYWcgKTsKLX0KLQotaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5
SGVscGVyczo6R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICpwRXJyb3IgKQotewotICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1
aW50NjRfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQ
cm9wZXJ0eVRhZyApOwotfQotCi1pbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3Bl
cnR5SGVscGVyczo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1Zh
bHVlICkKLXsKLSAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCAmYk5ld1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFn
ICk7Ci19Ci0KLWlubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJz
OjpTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCi17
Ci0gICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZO
ZXdWYWx1ZSwgc2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKLX0K
LQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldElu
dDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQotewotICAg
ICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFs
dWUsIHNpemVvZiggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Ci19Ci0KLWlu
bGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKLXsKLSAgICAg
ICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1
ZSwgc2l6ZW9mKCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOwotfQotCi0v
KiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVl
IHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBw
cm9wZXJ0eSAqLwotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBl
cnM6OlNldFByb3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIGVFcnJvciApCi17Ci0gICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOwotICAgICAgIGJh
dGNoLndyaXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7Ci0gICAgICAgYmF0Y2gucHJv
cCA9IHByb3A7Ci0gICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOwotCi0gICAgICAgbV9w
UHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNo
LCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwotfQotCi0vKiogQ2xlYXJzIGFu
eSB2YWx1ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KLWlubGluZSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AgKQotewotICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKLSAgICAgICBiYXRj
aC53cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOwotICAgICAgIGJhdGNoLnByb3AgPSBw
cm9wOwotCi0gICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRh
aW5lckhhbmRsZSwgJmJhdGNoLCAxICk7Ci0KLSAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwot
Ci19Ci0KLX0KLQotCi0vLyBpdnJkcml2ZXJsb2cuaAotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNz
IElWUkRyaXZlckxvZwotewotcHVibGljOgotICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2Fn
ZSB0byB0aGUgbG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KLSAgICAg
ICB2aXJ0dWFsIHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOwotfTsK
LQotCi1zdGF0aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVy
TG9nXzAwMSI7Ci0KLX0KLS8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAotbmFtZXNwYWNlIHZyCi17
Ci0KLWNsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOwotc3RydWN0IFRyYWNrZWREZXZp
Y2VEcml2ZXJJbmZvX3Q7Ci1zdHJ1Y3QgRHJpdmVyUG9zZV90OwotCi0vKiogVGhpcyBpbnRlcmZh
Y2UgaXMgcHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkg
Ci0qIHRoZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhl
c2UgY2hhbmdlcyBtdXN0Ci0qIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mg
b2YgdGhlIGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcwotKiBhcmUgcGVybWFuZW50bHkgYXNz
b2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KLWNsYXNzIElWUlNlcnZlckRyaXZl
ckhvc3QKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEg
dHJhY2tlZCBkZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0
cnVlCi0gICAgICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNl
LiBJZiBpdCByZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgotICAgICAgICogaGFzIG9j
Y3VycmVkIGFuZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJp
YWxOdW1iZXIsIEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmlj
ZVNlcnZlckRyaXZlciAqcERyaXZlciApID0gMDsKLQotICAgICAgIC8qKiBOb3RpZmllcyB0aGUg
c2VydmVyIHRoYXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLwot
ICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9z
ZVN0cnVjdFNpemUgKSA9IDA7Ci0KLSAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0
IHZzeW5jIGhhcyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRl
dmljZS4gVGhpcyBpcwotICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUg
SE1EIGNsYXNzLiAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5
bmNUaW1lT2Zmc2V0U2Vjb25kcyApID0gMDsKLQotICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2Vy
dmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0
dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0gICAgICAg
LyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8K
LSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMy
X3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1l
T2Zmc2V0ICkgPSAwOwotCi0gICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUg
YnV0dG9uIHdhcyBwcmVzc2VkICovCi0gICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VC
dXR0b25Ub3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9u
SWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7Ci0KLSAgICAgICAvKiogbm90aWZpZXMg
dGhlIHNlcnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLwotICAgICAgIHZpcnR1
YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2
aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7
Ci0KLSAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlz
IGNoYW5nZWQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVk
KCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJD
b250cm9sbGVyQXhpc190ICYgYXhpc1N0YXRlICkgPSAwOwotCi0gICAgICAgLyoqIE5vdGlmaWVz
IHRoZSBzZXJ2ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRl
dmljZSAgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQz
Ml90IHVuV2hpY2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsK
LQotICAgICAgIC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5k
b3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9FbmQgKi8KLSAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMy
X3QgdW5XaGljaERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZl
bnRfRGF0YV90ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwotCi0g
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KLSAgICAgICB2
aXJ0dWFsIGJvb2wgSXNFeGl0aW5nKCkgPSAwOwotCi0gICAgICAgLyoqIFJldHVybnMgdHJ1ZSBh
bmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRo
ZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cwotICAgICAgICogdGhpcyBtZXRob2Qg
cmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9m
IHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCi0gICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZl
bnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKLX07Ci0K
LXN0YXRpYyBjb25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2Vy
dmVyRHJpdmVySG9zdF8wMDQiOwotCi19Ci0vLyBpdnJoaWRkZW5hcmVhLmgKLW5hbWVzcGFjZSB2
cgotewotCi1jbGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycwotewotcHVibGljOgotICAgICAgIENW
UkhpZGRlbkFyZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJv
cGVydGllcyggcFByb3BlcnRpZXMgKSB7fQotCi0gICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBh
cmVhIG1lc2ggaW4gYSBwcm9wZXJ0eSAqLwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRIaWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRW
ZWN0b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKLQotICAgICAgIC8qKiBy
ZXRyaWV2ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUg
dmVydCBjb3VudCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLwotICAgICAgIHVpbnQzMl90
IEdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEht
ZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICpwZUVycm9yICk7Ci0KLXByaXZhdGU6Ci0gICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBHZXRQcm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5
cGUgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3Bl
cnR5KShQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAy
KSArIChpbnQpZUV5ZSk7Ci0gICAgICAgfQotCi0gICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJv
cGVydGllczsKLX07Ci0KLQotaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5B
cmVhSGVscGVyczo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5
cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKLXsK
LSAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVF
eWUsIHR5cGUgKTsKLSAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFBy
b3BlcnRpZXMgKTsKLSAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BI
ZWxwZXJzLlRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmlj
ZUluZGV4X0htZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZl
cnRDb3VudCwga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOwotfQotCi0KLWlubGluZSB1aW50
MzJfdCBDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVI
aWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVu
VmVydENvdW50LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQotewotICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSAp
OwotICAgICAgIENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyAp
OwotICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7Ci0gICAgICAgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UYWc7Ci0gICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BI
ZWxwZXJzLkdldFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNv
bnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXpl
b2YoIEhtZFZlY3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKLSAg
ICAgICBpZiAoIHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcHJvcEVy
cm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKLSAgICAgICAgICAgICAgdW5CeXRlc05l
ZWRlZCA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgaWYgKCBwZUVycm9yICkKLSAgICAgICB7Ci0g
ICAgICAgICAgICAgICpwZUVycm9yID0gcHJvcEVycm9yOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB1bkJ5dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKLX0KLQotfQotLy8g
aXZyd2F0Y2hkb2dob3N0LmgKLW5hbWVzcGFjZSB2cgotewotCi0vKiogVGhpcyBpbnRlcmZhY2Ug
aXMgcHJvdmlkZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5
dGhpbmcgd2FrZSB1cCAqLwotY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Ci17Ci1wdWJsaWM6Ci0gICAg
ICAgLyoqIENsaWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3
aGVuIHRoZXkgaGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxk
Ci0gICAgICAgKiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCi0gICAgICAgdmlydHVhbCB2b2lk
IFdhdGNoZG9nV2FrZVVwKCkgPSAwOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNo
ZG9nSG9zdF9WZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOwotCi19OwotCi0KLQotCi0K
LQotCi1uYW1lc3BhY2UgdnIKLXsKLSAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
SW50ZXJmYWNlVmVyc2lvbnNbXSA9Ci0gICAgICAgewotICAgICAgICAgICAgICBJVlJTZXR0aW5n
c19WZXJzaW9uLAotICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJz
aW9uLAotICAgICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCi0gICAgICAg
ICAgICAgIElWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAg
ICAgSVZSQ29udHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJDYW1l
cmFDb21wb25lbnRfVmVyc2lvbiwKLSAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQ
cm92aWRlcl9WZXJzaW9uLAotICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNp
b24sCi0gICAgICAgICAgICAgIG51bGxwdHIKLSAgICAgICB9OwotCi0gICAgICAgaW5saW5lIElW
UkRyaXZlckNvbnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAgICAgICAgICAg
ICAgc3RhdGljIElWUkRyaXZlckNvbnRleHQgKnBIb3N0OwotICAgICAgICAgICAgICByZXR1cm4g
cEhvc3Q7Ci0gICAgICAgfQotCi0gICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKLSAg
ICAgICB7Ci0gICAgICAgcHVibGljOgotICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4
dCgpIDogbV9wcm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVs
bHB0cikgeyBDbGVhcigpOyB9Ci0gICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKLQotICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOwotICAgICAgICAgICAgICBFVlJJbml0
RXJyb3IgSW5pdFdhdGNoZG9nKCk7Ci0KLSAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0
dGluZ3MoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
U2V0dGluZ3MgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0
KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
UlNldHRpbmdzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSUHJvcGVydGll
cyAqVlJQcm9wZXJ0aWVzUmF3KCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGll
cyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVz
X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3Bl
cnR5SGVscGVycyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFy
ZWFIZWxwZXJzKCBtX3BWUlByb3BlcnRpZXMgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOwot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFy
ZWEoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNS
YXcoKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsK
LSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZS
U2VydmVyRHJpdmVySG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
IGlmICggbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQotICAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElW
UlNlcnZlckRyaXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFj
ZSggSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJI
b3N0OwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpW
UldhdGNoZG9nSG9zdCgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlm
ICggbV9wVlJXYXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCi0gICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hv
c3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dI
b3N0X1ZlcnNpb24sICZlRXJyb3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKLSAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIg
KQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJMb2cgPSAoSVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRl
cmZhY2UoIElWUkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7Ci0gICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7Ci0gICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBW
UkRyaXZlckhhbmRsZSgpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBWUkRyaXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7Ci0gICAgICAgICAgICAg
IH0KLQotICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAg
ICAgICAgICAgICAgKm1fcFZSU2V0dGluZ3M7Ci0gICAgICAgICAgICAgIElWUlByb3BlcnRpZXMg
ICAgICAgICAgICAgICptX3BWUlByb3BlcnRpZXM7Ci0gICAgICAgICAgICAgIENWUlByb3BlcnR5
SGVscGVycyAgICAgICBtX3Byb3BlcnR5SGVscGVyczsKLSAgICAgICAgICAgICAgQ1ZSSGlkZGVu
QXJlYUhlbHBlcnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKLSAgICAgICAgICAgICAgSVZS
U2VydmVyRHJpdmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OwotICAgICAgICAg
ICAgICBJVlJXYXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKLSAg
ICAgICAgICAgICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7Ci0g
ICAgICAgfTsKLQotICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCi0gICAgICAgewotICAgICAgICAgICAg
ICBzdGF0aWMgdm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVv
Ziggdm9pZCAqICldOwotICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4
dCAqKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgotICAgICAgIH0KLQotICAg
ICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVz
UmF3KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgp
LlZSUHJvcGVydGllc1JhdygpOyB9Ci0gICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAq
VlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
U2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9Ci0gICAgICAgaW5saW5lIENW
UkhpZGRlbkFyZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7
IH0KLSAgICAgICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRy
aXZlckxvZygpOyB9Ci0gICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExU
WVBFIFZSU2VydmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNl
cnZlckRyaXZlckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQotICAgICAgIGlubGlu
ZSBJVlJXYXRjaGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0
KCk7IH0KLSAgICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJI
YW5kbGUoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0
KCkuVlJEcml2ZXJIYW5kbGUoKTsgfQotICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJD
b250ZXh0OjpDbGVhcigpCi0gICAgICAgewotICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0g
bnVsbHB0cjsKLSAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKLSAgICAg
ICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAg
bV9wVlJEcml2ZXJMb2cgPSBudWxscHRyOwotICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9z
dCA9IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3Bl
blZSRHJpdmVyQ29udGV4dDo6SW5pdFNlcnZlcigpCi0gICAgICAgewotICAgICAgICAgICAgICBD
bGVhcigpOwotICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQotICAgICAg
ICAgICAgICAgICAgICAgfHwgIVZSU2V0dGluZ3MoKQotICAgICAgICAgICAgICAgICAgICAgfHwg
IVZSUHJvcGVydGllcygpCi0gICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VO
b3RGb3VuZDsKLSAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Ci0gICAgICAg
fQotCi0gICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5p
dFdhdGNoZG9nKCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIENsZWFyKCk7Ci0gICAgICAgICAg
ICAgIGlmICggIVZSV2F0Y2hkb2dIb3N0KCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNl
dHRpbmdzKCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OwotICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2
ZXJDb250ZXh0ICpwQ29udGV4dCApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkRyaXZlckNv
bnRleHQoKSA9IHBDb250ZXh0OwotICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxf
TW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKLSAgICAgICB9Ci0KLSAg
ICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRy
aXZlckNvbnRleHQgKnBDb250ZXh0ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSRHJpdmVy
Q29udGV4dCgpID0gcENvbnRleHQ7Ci0gICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7Ci0gICAgICAgfQot
Ci0gICAgICAgaW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQotICAgICAgIHsKLSAg
ICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOwotICAgICAgICAgICAgICBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKLSAgICAg
ICB9Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29u
dGV4dCApIFwKLSAgICAgICAgICAgICAgICAgICAgIHsgXAotICAgICAgICAgICAgICAgICAgICAg
dnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBD
b250ZXh0ICk7IFwKLSAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5p
dEVycm9yX05vbmUgKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJv
cjsgXAotICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgI2RlZmluZSBWUl9DTEVBTlVQ
X1NFUlZFUl9EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2
ZXJDb250ZXh0KCk7Ci0KLSAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NP
TlRFWFQoIHBDb250ZXh0ICkgXAotICAgICAgICAgICAgICAgICAgICAgeyBcCi0gICAgICAgICAg
ICAgICAgICAgICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2
ZXJDb250ZXh0KCBwQ29udGV4dCApOyBcCi0gICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9y
ICE9IHZyOjpWUkluaXRFcnJvcl9Ob25lICkgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBlRXJyb3I7IFwKLSAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICNkZWZp
bmUgVlJfQ0xFQU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKLSAgICAgICAgICAgICAg
dnI6OkNsZWFudXBEcml2ZXJDb250ZXh0KCk7Ci19Ci0vLyBFbmQKLQotI2VuZGlmIC8vIF9PUEVO
VlJfRFJJVkVSX0FQSQotCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9w
YXRjaGVzL1BhdGhfV3JpdGVCaW5hcnlGaWxlLWZpeC1yZXR1cm4tY29uZGl0aW9uLnBhdGNoIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4
LXJldHVybi1jb25kaXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2
NjA4YTYyZDZjYmRhOGQyNWExNGIwNTM2YWJkOTZjYmNjNzFlMTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Bh
dGNoZXMvUGF0aF9Xcml0ZUJpbmFyeUZpbGUtZml4LXJldHVybi1jb25kaXRpb24ucGF0Y2gKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL3ZyY29tbW9uL3Bh
dGh0b29sc19wdWJsaWMuY3BwIGIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCi1p
bmRleCA3ZjdjN2U4Li5kZTdhNzJhIDEwMDY0NAotLS0tIGEvc3JjL3ZyY29tbW9uL3BhdGh0b29s
c19wdWJsaWMuY3BwCi0rKysgYi9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKLUBA
IC02NTUsNyArNjU1LDcgQEAgYm9vbCBQYXRoX1dyaXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0
cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLAotICAgICAgICAgICAgICAg
ZmNsb3NlKGYpOwotICAgICAgICB9Ci0gCi0tICAgICAgIHJldHVybiB3cml0dGVuID0gblNpemUg
PyB0cnVlIDogZmFsc2U7Ci0rICAgICAgIHJldHVybiB3cml0dGVuID09IG5TaXplID8gdHJ1ZSA6
IGZhbHNlOwotIH0KLSAKLSBzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckZpbGVuYW1lICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9wYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNoIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZjlhN2M5Y2M4MzExNWRjYmM4OTY4NDMyZmE0ZjgzMTg0YWQxY2IuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBA
QAotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IGQ3
MDI1YzBkYjRiLi5kMTNhN2Y5MGNmOCAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysg
Yi9DTWFrZUxpc3RzLnR4dAotQEAgLTEsMTQgKzEsOCBAQAotICMgU2V0IHRoZSBtaW5pbXVtIHJl
cXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KLSBjbWFrZV9taW5pbXVt
X3JlcXVpcmVkKFZFUlNJT04gMi44KQotIAotLSMgU2V0IHByb2plY3QgbmFtZS4KLS1wcm9qZWN0
KE9wZW5WUlNESykKLS0KLSAjIFNldHVwIHNvbWUgb3B0aW9ucy4KLSBvcHRpb24oQlVJTERfU0hB
UkVEICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKLS1vcHRpb24o
QlVJTERfRlJBTUVXT1JLICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgYW4gYXBwbGUgRnJhbWV3b3Jr
IiBPRkYpCi0tb3B0aW9uKEJVSUxEX1VOSVZFUlNBTCAiQnVpbGRzIHRoZSBzaGFyZWQgb3IgZnJh
bWV3b3JrIGFzIGEgdW5pdmVyc2FsIChmYXQsIDMyLSAmIDY0LWJpdCkgYmluYXJ5IiBPTikKLS1v
cHRpb24oQlVJTERfT1NYX0kzODYgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29yayBhcyBh
IDMyLWJpdCBiaW5hcnksIGV2ZW4gb24gYSA2NC1iaXQgcGxhdGZvcm0iIE9GRikKLSBvcHRpb24o
VVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQotIG9wdGlv
bihVU0VfQ1VTVE9NX0xJQkNYWCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKLSAKLUBAIC0z
NywyMSArMzEsOSBAQCBlbHNlaWYoQVBQTEUpCi0gICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRD
SEVTICIuKkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioi
KQotICAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikKLSAgICAgYWRkX2RlZmluaXRpb25zKC1E
T1NYIC1EUE9TSVgpCi0tICAgIGlmKEJVSUxEX1VOSVZFUlNBTCkKLS0gICAgICBzZXQoQ01BS0Vf
T1NYX0FSQ0hJVEVDVFVSRVMgImkzODY7eDg2XzY0IikKLS0gICAgZW5kaWYoKQotLSAgICBpZihC
VUlMRF9PU1hfSTM4NikKLS0gICAgICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikKLS0gICAgICBz
ZXQoQ01BS0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODYiKQotLSAgICBlbmRpZigpCi0gICBlbmRp
ZigpCi0gZW5kaWYoKQotIAotLSMgU2V0IG91dHB1dCBmb2xkZXIgZm9yIHN0YXRpYyBhbmQgc2hh
cmVkIGxpYnJhcmllcwotLXNldChDTUFLRV9MSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFL
RV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNl
dChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4v
JHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQotLXNldChDTUFLRV9SVU5USU1FX09V
VFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7
UFJPQ0VTU09SX0FSQ0h9KQotLQotICMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KLSBpZihDTUFL
RV9DT01QSUxFUl9JU19HTlVDQyBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5n
IikKLSAgICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRu
J3QgYmUgdmlzaWJsZQotZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBiL3NyYy9DTWFr
ZUxpc3RzLnR4dAotaW5kZXggZTU4YzllMWMwMzkuLjA5NWY4MWU1NjJiIDEwMDY0NAotLS0tIGEv
c3JjL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC0xLDggKzEs
MTAgQEAKLS0jIFByb2plY3QgbmFtZS4KLS1wcm9qZWN0KG9wZW52cl9hcGkpCi0rc2V0KE9QRU5W
Ul9TT1VSQ0VfRElSICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
KQotIAotIHNldCggTElCTkFNRSAib3BlbnZyX2FwaSIgKQotIAotK3NldChFWENFUFRJT05fRkxB
R1MgIi1mZXhjZXB0aW9ucyIpCi0rYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkK
LSsKLSAjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMgZmlsZXMuCi0gaWYoQVBQTEUp
Ci0gICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCi1AQCAtMjIsNyArMjQsNyBAQCBlbHNlaWYo
V0lOMzIpCi0gZW5kaWYoKQotIAotICMgQWRkIGluY2x1ZGUgZm9sZGVycy4KLS1pbmNsdWRlX2Rp
cmVjdG9yaWVzKCR7Q01BS0VfU09VUkNFX0RJUn0vc3JjICR7Q01BS0VfU09VUkNFX0RJUn0vaGVh
ZGVycyAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLStpbmNsdWRlX2RpcmVjdG9y
aWVzKCR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYyAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJz
ICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKLSAKLSBpZihVU0VfQ1VTVE9NX0xJ
QkNYWCkKLSAgICAgICAgbGlua19kaXJlY3RvcmllcygKLUBAIC02NSwyOCArNjcsMzUgQEAgZWxz
ZWlmKEJVSUxEX0ZSQU1FV09SSykKLSAgICAgICAgc2V0KCBMSUJOQU1FICJPcGVuVlIiICkKLSAg
ICAgICAgYWRkX2xpYnJhcnkoICR7TElCTkFNRX0gCi0gICAgICAgICAgICAgU0hBUkVEICR7U09V
UkNFX0ZJTEVTfQotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVu
dnIuaAotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBp
LmNzCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
anNvbgotLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2Fw
aS5oCi0tICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2
ZXIuaAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3MK
LSsgICAgICAgICAgICAke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNv
bgotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGku
aAotKyAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCi0gICAgICAgICkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9Q
RVJUSUVTCi0gICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQotICAgICAgICAgICAgICAgRlJB
TUVXT1JLX1ZFUlNJT04gQQotICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElG
SUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLS0gICAgICAgICAgICAgIE1B
Q09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZvLnBs
aXN0Ci0rICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtPUEVOVlJf
U09VUkNFX0RJUn0vc3JjL0luZm8ucGxpc3QKLSAgICAgICAgICAgICAgICMgImN1cnJlbnQgdmVy
c2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAg
ICAgICAgVkVSU0lPTiAxLjAuNgotICAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJz
aW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCi0gICAgICAgICAg
ICAgICBTT1ZFUlNJT04gMS4wLjAKLS0gICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7Q01B
S0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRl
cnMvb3BlbnZyX2FwaS5jczske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uOyR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7Q01BS0VfU09V
UkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0rICAgICAgICAgICAgICBQVUJMSUNf
SEVBREVSICIke09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52ci5oOyR7T1BFTlZSX1NP
VVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5jczske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFk
ZXJzL29wZW52cl9hcGkuanNvbjske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9j
YXBpLmg7JHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCi0gICAg
ICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAgICAgICkKLSBlbHNlKCkKLSAgICAg
ICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VSQ0VfRklMRVN9KQotIGVuZGlm
KCkKLSAKLStpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotKyAgICBXRUJLSVRfQUREX1RB
UkdFVF9DWFhfRkxBR1MoJHtMSUJOQU1FfSAtV25vLWltcGxpY2l0LWZhbGx0aHJvdWdoCi0rICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW5rbm93bi1wcmFn
bWFzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW51
c2VkLXBhcmFtZXRlcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtV25vLXVudXNlZC12YXJpYWJsZSkKLStlbmRpZigpCi0rCi0gaWYoVVNFX0NVU1RPTV9MSUJD
WFgpCi0gICAgICAgIHNldChFWFRSQV9MSUJTICR7RVhUUkFfTElCU30gYysrIGMrK2FiaSkKLSBl
bmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0NDBkMzZlMDk5OGY0OTQ2MzUxNmM5NzdkZWE4
MmY2OWRhYzlmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTA1ICswLDAgQEAKLXNldChPUEVOVlJfU09VUkNFX0RJUiAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52cikKLQotc2V0KCBMSUJOQU1FICJvcGVudnJf
YXBpIiApCi0KLXNldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCi1hZGRfZGVmaW5p
dGlvbnMoJHtFWENFUFRJT05fRkxBR1N9KQotCi0jIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3Bl
Y2lmaWMgZmlsZXMuCi1pZihBUFBMRSkKLSAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQotICBp
ZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJEYXJ3aW4iKQotICAgIHNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcyh2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCB2cmNvbW1vbi92cnBh
dGhyZWdpc3RyeV9wdWJsaWMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiLXggb2JqZWN0
aXZlLWMrKyIpCi0gIGVuZGlmKCkKLSAgaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09S
SykKLSAgICBmaW5kX2xpYnJhcnkoRk9VTkRBVElPTl9GUkFNRVdPUksgRm91bmRhdGlvbikKLSAg
ICBtYXJrX2FzX2FkdmFuY2VkKEZPVU5EQVRJT05fRlJBTUVXT1JLKQotICAgIHNldChFWFRSQV9M
SUJTICR7RVhUUkFfTElCU30gJHtGT1VOREFUSU9OX0ZSQU1FV09SS30pCi0gIGVuZGlmKEJVSUxE
X1NIQVJFRCBPUiBCVUlMRF9GUkFNRVdPUkspCi1lbHNlaWYoV0lOMzIpCi0gIGlmKENNQUtFX1NJ
WkVPRl9WT0lEX1AgRVFVQUwgOCkKLSAgICBhZGRfZGVmaW5pdGlvbnMoIC1EV0lONjQgKQotICAg
IHNldCggTElCTkFNRSAib3BlbnZyX2FwaTY0IiApCi0gIGVuZGlmKCkKLWVuZGlmKCkKLQotIyBB
ZGQgaW5jbHVkZSBmb2xkZXJzLgotaW5jbHVkZV9kaXJlY3Rvcmllcygke09QRU5WUl9TT1VSQ0Vf
RElSfS9zcmMgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycyAke09QRU5WUl9TT1VSQ0VfRElS
fS9zcmMvdnJjb21tb24pCi0KLWlmKFVTRV9DVVNUT01fTElCQ1hYKQotICAgICAgIGxpbmtfZGly
ZWN0b3JpZXMoCi0gICAgICAgICAgICAgICR7TElCQ1hYX0xJQl9ESVJ9Ci0gICAgICAgKQotZW5k
aWYoKQotCi0jIFNldCB0aGUgc291cmNlIGdyb3VwIGFuZCBmaWxlcy4KLXNldChDT1JFX0ZJTEVT
Ci0gICAgICAgb3BlbnZyX2FwaV9wdWJsaWMuY3BwCi0gICAgICAganNvbmNwcC5jcHAKLSkKLXNl
dChWUkNPTU1PTl9GSUxFUwotICAgICAgIHZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKLSAg
ICAgICB2cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vcGF0
aHRvb2xzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMu
Y3BwCi0gICAgICAgdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKLSAgICAgICB2cmNvbW1v
bi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwCi0gICAgICAgdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmNwcAotKQotCi1zZXQoU09VUkNFX0ZJTEVTCi0gICAgICAgJHtDT1JFX0ZJTEVTfQotICAg
ICAgICR7VlJDT01NT05fRklMRVN9Ci0pCi0KLXNvdXJjZV9ncm91cCgiU3JjIiBGSUxFUwotICAg
ICAgICR7Q09SRV9GSUxFU30KLSkKLQotc291cmNlX2dyb3VwKCJWUkNvbW1vbiIgRklMRVMKLSAg
ICAgICAke1ZSQ09NTU9OX0ZJTEVTfQotKQotCi0jIEJ1aWxkIHRoZSBsaWJyYXJ5LgotaWYoQlVJ
TERfU0hBUkVEKQotICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0gU0hBUkVEICR7U09VUkNF
X0ZJTEVTfSkKLWVsc2VpZihCVUlMRF9GUkFNRVdPUkspCi0gICAgICAgc2V0KCBMSUJOQU1FICJP
cGVuVlIiICkKLSAgICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKLSAgICAgICAgICAgIFNI
QVJFRCAke1NPVVJDRV9GSUxFU30KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hl
YWRlcnMvb3BlbnZyLmgKLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2FwaS5jcwotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfYXBpLmpzb24KLSAgICAgICAgICAgICR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2NhcGkuaAotICAgICAgICAgICAgJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9v
cGVudnJfZHJpdmVyLmgKLSAgICAgICApCi0gICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9w
ZW5WUiBQUk9QRVJUSUVTCi0gICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCi0gICAgICAgICAg
ICAgIEZSQU1FV09SS19WRVJTSU9OIEEKLSAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
REVOVElGSUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKLSAgICAgICAgICAg
ICAgTUFDT1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUICR7T1BFTlZSX1NPVVJDRV9ESVJ9L3NyYy9J
bmZvLnBsaXN0Ci0gICAgICAgICAgICAgICMgImN1cnJlbnQgdmVyc2lvbiIgaW4gc2VtYW50aWMg
Zm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42
Ci0gICAgICAgICAgICAgICMgImNvbXBhdGliaWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9y
bWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQotICAgICAgICAgICAgICBTT1ZFUlNJT04gMS4wLjAK
LSAgICAgICAgICAgICAgUFVCTElDX0hFQURFUiAiJHtPUEVOVlJfU09VUkNFX0RJUn0vaGVhZGVy
cy9vcGVudnIuaDske09QRU5WUl9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuY3M7JHtP
UEVOVlJfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtPUEVOVlJfU09VUkNF
X0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7T1BFTlZSX1NPVVJDRV9ESVJ9L2hlYWRlcnMv
b3BlbnZyX2RyaXZlci5oIgotICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCi0gICAg
ICAgKQotZWxzZSgpCi0gICAgICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VS
Q0VfRklMRVN9KQotZW5kaWYoKQotCi1pZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotICAg
IFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUygke0xJQk5BTUV9IC1Xbm8taW1wbGljaXQtZmFs
bHRocm91Z2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25v
LXVua25vd24tcHJhZ21hcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC1Xbm8tdW51c2VkLXBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC1Xbm8tdW51c2VkLXZhcmlhYmxlKQotZW5kaWYoKQotCi1pZihVU0VfQ1VT
VE9NX0xJQkNYWCkKLSAgICAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9IGMrKyBjKyth
YmkpCi1lbmRpZigpCi0KLXRhcmdldF9saW5rX2xpYnJhcmllcygke0xJQk5BTUV9ICR7RVhUUkFf
TElCU30pCi0KLWluc3RhbGwoVEFSR0VUUyAke0xJQk5BTUV9IERFU1RJTkFUSU9OIGxpYikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTVlNTY5ODA4N2YwOTM5MTQ1OGJiMTk3YWQ4ZDgxN2VlZGViODI2OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBV
QkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20v
RFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0
PgotICAgICAgIDxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0gICAgICAgPHN0cmluZz5j
b20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+Ci0gICAgICAgPGtleT5D
RkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotICAgICAgIDxzdHJpbmc+Ni4wPC9z
dHJpbmc+Ci0gICAgICAgPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KLSAgICAgICA8c3RyaW5nPk9w
ZW5WUjwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotICAg
ICAgIDxzdHJpbmc+Rk1XSzwvc3RyaW5nPgotICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmc8L2tleT4KLSAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgotICAgICAgIDxrZXk+
Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0gICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4KLTwvZGlj
dD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JF
QURNRSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MjZjNThkYTc5ZmI5NGUwMmRjZmVjZDI2YTVlNTUyZDlhYTU4YWMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotVGhpcyBpcyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBPcGVuVlIgQVBJIGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkgd2hpY2ggY29ubmVjdHMKLU9wZW5WUiBhcHBsaWNhdGlvbnMgdG8gdGhlIFN0
ZWFtVlIgcnVudGltZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgdmVyc2lvbgotb2YgdGhlIE9w
ZW5WUiBpbnRlcmZhY2UgdGhleSB3ZXJlIGNvbXBpbGVkIGFnYWluc3QuCi0KLVRoZSBjbGllbnQg
YmluZGluZyBsaWJyYXJ5IC0gb3BlbnZyX2FwaS5kbGwgb24gV2luZG93cywgb3BlbnZyX2FwaS5z
byBvbgotTGludXgsIGFuZCBvcGVudnJfYXBpLmR5bGliIG9yIE9wZW5WUi5mcmFtZXdvcmsgb24g
bWFjT1MgLSBrbm93cyBob3cgdG8gZmluZAotYW5kIHJlYWQgdGhlIFN0ZWFtVlIgcnVudGltZSBp
bnN0YWxsYXRpb24gaW5mb3JtYXRpb24gd2hpY2ggYWxsb3dzIGl0IHRvCi1maW5kIGFuZCBkeW5h
bWljYWxseSBjb25uZWN0IHRvIHRoZSBpbnN0YWxsZWQgcnVudGltZS4gSW4gY29tYmluYXRpb24g
d2l0aCB0aGUKLWludGVyZmFjZSB2ZXJzaW9uIGlkZW50aWZpZXJzIGZyb20gL2luY2x1ZGUvb3Bl
bnZyLmggd2hpY2ggYXJlIGJha2VkCi1pbnRvIGFwcGxpY2F0aW9ucyBhdCB0aGUgdGltZSB0aGV5
IGFyZSBidWlsdCwgdGhlIE9wZW5WUiBBUEkgY2xpZW50Ci1iaW5kaW5nIGxpYnJhcnkgY2FwdHVy
ZXMgYW5kIGNvbnZleXMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSB0aGUgdmVyc2lvbgotb2YgdGhl
IE9wZW5WUiBBUEkgaW50ZXJmYWNlIGJlaGF2aW9yIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGV4cGVj
dHMuCi0KLUFwcGxpY2F0aW9ucyBjYXJyeSB3aXRoIHRoZW0gYSBwcml2YXRlL2xvY2FsIGNvcHkg
b2YgdGhlIGNsaWVudCBiaW5kaW5nCi1saWJyYXJ5IHdoZW4gdGhleSBzaGlwLCBhbmQgdGhleSBz
aG91bGQgaW5zdGFsbCBpdCBsb2NhbGx5IHRvIHRoZWlyCi1hcHBsaWNhdGlvbi4gIEFwcGxpY2F0
aW9ucyBzaG91bGQgbm90IGluc3RhbGwgdGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkKLWdsb2Jh
bGx5IG9yIGF0dGVtcHQgdG8gbGluayB0byBhIGdsb2JhbGx5IGluc3RhbGxlZCBjbGllbnQgYmlu
ZGluZyBsaWJyYXJ5LgotRG9pbmcgc28gbmVnYXRlcyBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBhYmls
aXR5IGZvciB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQotdG8gYWNjdXJhdGVseSByZWZsZWN0
IHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuVlIgQVBJIHRoYXQgdGhlIGFwcGxpY2F0aW9uCi13YXMg
YnVpbHQgYWdhaW5zdCwgYW5kIHNvIGhpbmRlcnMgY29tcGF0aWJpbGl0eSBzdXBwb3J0IGluIHRo
ZSBmYWNlIG9mCi1BUEkgY2hhbmdlcy4KLQotTW9zdCBhcHBsaWNhdGlvbnMgc2hvdWxkIHNpbXBs
eSBsaW5rIHRvIGFuZCByZWRpc3RyaWJ1dGUgd2l0aCB0aGVpciBhcHBsaWNhdGlvbgotdGhlIHBy
ZS1idWlsdCBjbGllbnQgYmluZGluZyBsaWJyYXJ5IGZvdW5kIGluIHRoZSAvYmluIGRpcmVjdG9y
eSBvZiB0aGlzCi1yZXBvc2l0b3J5LiBTb21lIHNtYWxsIG51bWJlciBvZiBhcHBsaWNhdGlvbnMg
d2hpY2ggaGF2ZSBzcGVjaWZpYyByZXF1aXJlbWVudHMKLWFyb3VuZCByZWRpc3RyaWJ1dGluZyBv
bmx5IGJpbmFyaWVzIHRoZXkgYnVpbGQgdGhlbXNlbHZlcyBzaG91bGQgYnVpbGQKLXRoZSBjbGll
bnQgbGlicmFyeSBmcm9tIHRoaXMgc291cmNlIGFuZCBlaXRoZXIgc3RhdGljYWxseSBsaW5rIGl0
IGludG8KLXRoZWlyIGFwcGxpY2F0aW9uIG9yIHJlZGlzdHJpYnV0ZSB0aGUgYmluYXJ5IHRoZXkg
YnVpbGQuCi0KLVRoaXMgaXMgYSBjbWFrZSBwcm9qZWN0LCB0byBidWlsZCBpdCB1c2UgdGhlIHZl
cnNpb24gb2YgY21ha2UgYXBwcm9wcmlhdGUKLWZvciB5b3VyIHBsYXRmb3JtLiBGb3IgZXhhbXBs
ZSwgdG8gYnVpbGQgb24gYSBQT1NJWCBzeXN0ZW0gc2ltcGx5IHBlcmZvcm0KLQotICBjZCBzcmM7
IG1rZGlyIF9idWlsZDsgY2QgX2J1aWxkOyBjbWFrZSAuLjsgbWFrZQotCi1hbmQgeW91IHdpbGwg
ZW5kIHVwIHdpdGggdGhlIHN0YXRpYyBsaWJyYXJ5IC9zcmMvYmluLzxhcmNoPi9saWJvcGVudnJf
YXBpLmEKLQotVG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeSwgcGFzcyAtREJVSUxEX1NIQVJFRD0x
IHRvIGNtYWtlLgotVG8gYnVpbGQgYXMgYSBmcmFtZXdvcmsgb24gYXBwbGUgcGxhdGZvcm1zLCBw
YXNzIC1EQlVJTERfRlJBTUVXT1JLPTEgdG8gY21ha2UuCi1UbyBzZWUgYSBjb21wbGV0ZSBsaXN0
IG9mIGNvbmZpZ3VyYWJsZSBidWlsZCBvcHRpb25zLCB1c2UgYGNtYWtlIC1MQUhgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNvcmUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MWZlMzYwZWU0YWQ1MmM4Nzk5MGMyNTE3NDZmMDFjYjg5YmJmMDA2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIHZyCi17Ci0KLWNsYXNzIElWUkNsaWVu
dENvcmUKLXsKLXB1YmxpYzoKLSAgICAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIHN5c3RlbSAqLwot
ICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUg
ZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkgPSAwOwotCi0gICAg
ICAgLyoqIGNsZWFucyB1cCBldmVyeXRoaW5nIGluIHZyY2xpZW50LmRsbCBhbmQgcHJlcGFyZXMg
dGhlIERMTCB0byBiZSB1bmxvYWRlZCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkg
PSAwOwotCi0gICAgICAgLyoqIGNoZWNrcyB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBpbnRlcmZh
Y2UvdmVyc2lvbiBpcyBzdXBwb3J0ZWQgaW4gdGhpcyB2cmNsaWVudC5kbGwgKi8KLSAgICAgICB2
aXJ0dWFsIEVWUkluaXRFcnJvciBJc0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAq
cGNoSW50ZXJmYWNlVmVyc2lvbiApID0gMDsKLQotICAgICAgIC8qKiBSZXRyaWV2ZXMgYW55IGlu
dGVyZmFjZSBmcm9tIHZyY2xpZW50LmRsbCAqLwotICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2Vu
ZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoTmFtZUFuZFZlcnNpb24sIEVWUkluaXRFcnJv
ciAqcGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW55IGRyaXZl
ciBoYXMgYW4gSE1EIGF0dGFjaGVkLiBDYW4gYmUgY2FsbGVkIG91dHNpZGUgb2YgSW5pdC9DbGVh
bnVwICovCi0gICAgICAgdmlydHVhbCBib29sIEJJc0htZFByZXNlbnQoKSA9IDA7Ci0KLSAgICAg
ICAvKiogUmV0dXJucyBhbiBFbmdsaXNoIGVycm9yIHN0cmluZyBmcm9tIGluc2lkZSB2cmNsaWVu
dC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLwotICAgICAgIHZp
cnR1YWwgY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5p
dEVycm9yIGVFcnJvciApID0gMDsKLQotICAgICAgIC8qKiBSZXR1cm5zIGFuIGVycm9yIHN5bWJv
bCBmcm9tIGluc2lkZSB2cmNsaWVudC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUg
QVBJIERMTCAqLwotICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJv
ciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7Ci19OwotCi1zdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IElWUkNsaWVudENvcmVfVmVyc2lvbiA9ICJJVlJDbGllbnRDb3JlXzAwMyI7Ci0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24t
Zm9yd2FyZHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndh
cmRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGM3ZGU5NzY0YjQyMTgyYjAx
N2Y3MGVlMDA5MzFiZjZlNDkwNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2Fy
ZHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIGZvcndhcmQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KLS8v
LyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3
YXJkcy5oIgotLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9y
IGFsbCBKc29uQ3BwIHR5cGVzLgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBMSUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8qCi1UaGUgSnNv
bkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1l
bnRhdGlvbiwgCi10ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNl
bnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCi1jb25kaXRpb25zLi4uCi0KLVRoZSBhdXRob3IgKEJh
cHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAK
LWp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNo
IGp1cmlzZGljdGlvbnMsIAotdGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJs
aWMgRG9tYWluLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVi
bGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCi0yMDEwKSwgdGhpcyBzb2Z0
d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFu
ZCBpcwotcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KS4KLQotSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBw
cm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKLXNvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0
IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCi1jb25kaXRpb25z
IG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9m
IGR1YWwgCi1QdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhl
cmUsIGFzIHRoZXkgY2hvb3NlLgotCi1UaGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2Ug
dG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlzCi1kZXNjcmliZWQg
aW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6Ci0KLSAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3Jn
L3dpa2kvTUlUX0xpY2Vuc2UKLSAgIAotVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2Ug
Zm9sbG93czoKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1Db3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0
aXN0ZSBMZXBpbGxldXIKLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24KLW9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi1maWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci1yZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKLW1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK
LWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0KLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlCi1pbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KLQotVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi1FWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLU1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi1OT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCi1CRSBMSUFC
TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4KLUFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOCi1DT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFCi1TT0ZUV0FSRS4KLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKEVORCBM
SUNFTlNFIFRFWFQpCi0KLVRoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0
aGUgR1BMIGFuZCBjb21tZXJjaWFsCi1zb2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhl
IHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCi1taW5vciBudWlzYW5jZSBvZiBiZWlu
ZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlCi1hbmQgbGljZW5z
ZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRo
ZQotUHVibGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1
c2luZyB3aGF0ZXZlcgotbGljZW5zZSB5b3UgbGlrZS4KLQotKi8KLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLSNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0jIGRl
ZmluZSBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKLS8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCi0vLy8gdG8gcHJldmVu
dCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCi0jZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9O
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi9jb25maWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05f
Q09ORklHX0hfSU5DTFVERUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8g
SWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENw
cFRMIGxpYnJhcnkuCi0vLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5l
ZCwgaW5kaWNhdGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBk
ZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNw
cHRsIHZlY3RvciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6
bWFwCi0vLy8gYXMgVmFsdWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAgMQotCi0vLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25z
IHRvIHJlcG9ydCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBU
aGUgZGVmYXVsdCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBU
SU9OCi0jZGVmaW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmlu
ZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBw
cmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRv
bWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8g
I2RlZmluZSBKU09OX0lTX0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lu
Y2x1ZGUgPGNwcHRsL2NvbmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBK
U09OX1VTRV9DUFBUTCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2RlZmluZSBKU09OX0FQSSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQp
Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxl
eHBvcnQpCi0jZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNl
bmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9y
dCkKLSNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlm
IC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAot
I2lmICFkZWZpbmVkKEpTT05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElm
IEpTT05fTk9fSU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImlu
dCIgdHlwZSBmb3IKLS8vIGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2Vy
IHN1cHBvcnQgaXMgZGlzYWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYg
ZGVmaW5lZChfTVNDX1ZFUikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZD
IDYKLSAgICAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJz
aW9uIGZyb20gX19pbnQ2NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVu
c2lnbmVkIF9faW50NjQpLgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04gMQotICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNU
TCAoaWRlbnRpZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBp
biB0aGUgZGVidWcgaW5mb3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBz
ZWVuIHdpdGggVlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAg
IC8vIHdpdGggcHJhZ21hIHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6
IDQ3ODYpCi0jICBlbmRpZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBN
U1ZDIDIwMDgKLSAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBp
cyBkZXByZWNhdGVkLgotIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9f
ZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZp
bmVkKF9NU0NfVkVSKQotCi0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQot
I2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEw
Ci0jZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49
IDIwMTAKLQotI2lmZGVmIF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9y
ZWZlcmVuY2VzKQotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYg
IC8vIGhhc19mZWF0dXJlCi0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChn
Y2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19H
WFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklN
RU5UQUwKLQotI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90
IGRlZmluZWQgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0j
ZW5kaWYKLQotI2lmZGVmIF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3Qg
Y2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAo
X19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgo
ZGVwcmVjYXRlZChtZXNzYWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19f
ID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJF
Q0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlm
ICAvLyBHTlVDIHZlcnNpb24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lm
ICFkZWZpbmVkKEpTT05DUFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVE
KG1lc3NhZ2UpCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1u
YW1lc3BhY2UgSnNvbiB7Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBV
SW50OwotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7
Ci10eXBlZGVmIHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2
NAotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8v
IEZvciBNaWNyb3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMg
bm90IHN1cHBvcnRlZAotI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwg
U3R1ZGlvCi10eXBlZGVmIF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQg
VUludDY0OwotI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8v
IE90aGVyIHBsYXRmb3JtcywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IElu
dDY0OwotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBV
SW50NjQgTGFyZ2VzdFVJbnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlm
IC8vIEpTT05fQ09ORklHX0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0j
aWZuZGVmIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hf
SU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQot
Ci1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xh
c3MgU3R5bGVkV3JpdGVyOwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0
dXJlcy5oCi1jbGFzcyBGZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBp
bnQgQXJyYXlJbmRleDsKLWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQ
YXRoQXJndW1lbnQ7Ci1jbGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xh
c3MgVmFsdWVJdGVyYXRvcjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1l
c3BhY2UgSnNvbgotCi0jZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3
YXJkcy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2VuZGlmIC8vaWZuZGVmIEpTT05f
Rk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
anNvbi9qc29uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyN2Y2NWQ5ZGZhODUz
NmMzNWZmNDdkZTA4NGZlY2U3ODk4YWIxZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDIwNzcgKzAsMCBAQAotLy8vIEpzb24tY3BwIGFtYWxnYXRl
ZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgotLy8vIEl0IGlzIGlu
dGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCi0KLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLQotLyoKLVRoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29kZSwgaW5j
bHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKLXRlc3RzIGFuZCBkZW1vbnN0cmF0
aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcKLWNvbmRp
dGlvbnMuLi4KLQotVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRp
c2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAotanVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUg
c3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCi10aGlzIHNvZnR3YXJl
IGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCi0KLUluIGp1cmlzZGljdGlvbnMg
d2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcuIEdlcm1h
bnkgYXMgb2YKLTIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEw
IGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCi1yZWxlYXNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgotCi1JbiBqdXJpc2RpY3Rpb25zIHdoaWNo
IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlzIAotc29m
dHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21haW4s
IDIpIHVuZGVyIHRoZSAKLWNvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cp
LCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKLVB1YmxpYyBEb21haW4vTUlUIExpY2Vu
c2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCi0KLVRoZSBNSVQg
TGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGljZW5zZSBj
YW4gZ2V0LCBhbmQgaXMKLWRlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKLQot
ICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQotICAgCi1UaGUgZnVs
bCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgotCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLUNv
cHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotCi1QZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgotb2J0YWluaW5n
IGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KLWZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKLXJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LAotbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzCi1vZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLWluY2x1ZGVkIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotCi1USEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLUVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQKLU5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMKLUJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLUNPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKLVNPRlRXQVJF
LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0oRU5EIExJQ0VOU0UgVEVYVCkKLQotVGhlIE1JVCBsaWNlbnNl
IGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKLXNvZnR3YXJl
LCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4gd2l0aCB0
aGUKLW1pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UKLWFuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2RlLiBOb3Rl
IGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCi1QdWJsaWMgRG9tYWluICJsaWNlbnNlIiB5b3Ug
Y2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCi1saWNlbnNlIHlvdSBsaWtl
LgotCi0qLwotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBM
SUNFTlNFCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotI2lmbmRlZiBKU09OX0FNQUxHQVRF
RF9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECi0vLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAotLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgotI2RlZmluZSBKU09OX0lTX0FN
QUxHQU1BVElPTgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIERP
IE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIpIGlzIGdlbmVyYXRlZCBieSBDTWFr
ZS4KLS8vIFJ1biBDTWFrZSBjb25maWd1cmUgc3RlcCB0byB1cGRhdGUgaXQuCi0jaWZuZGVmIEpT
T05fVkVSU0lPTl9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAot
Ci0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICIxLjYuNSIKLSMgZGVmaW5lIEpTT05D
UFBfVkVSU0lPTl9NQUpPUiAxCi0jIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUlOT1IgNgotIyBk
ZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDUKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9R
VUFMSUZJRVIKLSMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhBICgoSlNPTkNQUF9WRVJTSU9O
X01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgKEpTT05DUFBf
VkVSU0lPTl9QQVRDSCA8PCA4KSkKLQotI2VuZGlmIC8vIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVE
Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi92ZXJzaW9uLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25m
aWcuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKLSNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotCi0vLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJhcnkuCi0v
LyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQotCi0vLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRo
YXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQotLy8jICBkZWZpbmUgSlNPTl9VU0Vf
Q1BQVEwgMQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3RvciBiYXNl
ZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgotLy8vIHN0ZDo6bWFwCi0vLy8gYXMgVmFs
dWUgY29udGFpbmVyLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAgMQotCi0v
LyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9ydCBiYWQg
aW5wdXQgaW5zdGVhZCBvZiBDCi0vLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVsdCBpcyB0
byB1c2UgZXhjZXB0aW9ucy4KLSNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jZGVmaW5lIEpT
T05fVVNFX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0
aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKLS8vLyB0byBwcmV2ZW50IHByaXZhdGUg
aGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmlu
ZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgotLy8gI2RlZmluZSBKU09OX0lT
X0FNQUxHQU1BVElPTgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2luY2x1ZGUgPGNwcHRsL2Nv
bmZpZy5oPgotI2lmbmRlZiBKU09OX1VTRV9DUFBUTAotI2RlZmluZSBKU09OX1VTRV9DUFBUTCAx
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWZkZWYgSlNPTl9JTl9DUFBUTAotI2RlZmluZSBKU09OX0FQ
SSBDUFBUTF9BUEkKLSNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCi0jaWYgZGVmaW5lZChf
TVNDX1ZFUikKLSNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCi0jZGVmaW5l
IEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKLSNlbmRpZiAvLyBpZiBkZWZp
bmVkKF9NU0NfVkVSKQotI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKLSNpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKLSNkZWZpbmUgSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORwotI2VuZGlmIC8vIGlmIGRlZmluZWQo
X01TQ19WRVIpCi0jZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAotI2lmICFkZWZpbmVkKEpT
T05fQVBJKQotI2RlZmluZSBKU09OX0FQSQotI2VuZGlmCi0KLS8vIElmIEpTT05fTk9fSU5UNjQg
aXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBmb3IKLS8v
IGludGVnZXIKLS8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQgaXMgZGlz
YWJsZWQuCi0vLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQotCi0jaWYgZGVmaW5lZChfTVNDX1ZF
UikgLy8gTVNWQwotIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKLSAgICAvLyBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20gX19pbnQ2
NCB0byBkb3VibGUKLSAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQp
LgotIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQotICAgIC8v
IERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRpZmllciB3
YXMgdHJ1bmNhdGVkIHRvICcyNTUnCi0gICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVidWcgaW5m
b3JtYXRpb24pCi0gICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGggVlM2IHdl
cmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZwotICAgIC8vIHdpdGggcHJhZ21h
IHB1c2gvcG9wKS4KLSMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCi0jICBlbmRp
ZiAvLyBNU1ZDIDYKLQotIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKLSAgICAv
Ly8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgot
IyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVj
YXRlZChtZXNzYWdlKSkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQot
Ci0KLSNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmIGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCi0jZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKLSNlbmRpZiAvLyBNU1ZDID49IDIwMTAKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2VzKQotI2Rl
ZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIGhhc19mZWF0dXJl
Ci0KLSNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIg
c2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQotI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFM
X0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQotI2RlZmluZSBKU09OX0hBU19S
VkFMVUVfUkVGRVJFTkNFUyAxCi0jZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKLQotI2VuZGlm
IC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXwotCi0jZW5kaWYgLy8gbm90IGRlZmluZWQgSlNPTl9I
QVNfUlZBTFVFX1JFRkVSRU5DRVMKLQotI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNF
UwotI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCi0jZW5kaWYKLQotI2lmZGVm
IF9fY2xhbmdfXwotI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21l
cyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCi0jICBpZiAoX19HTlVDX18gPiA0IHx8
IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQotIyAgICBkZWZpbmUgSlNP
TkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRlZChtZXNz
YWdlKSkpCi0jICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVD
X01JTk9SX18gPj0gMSkpCi0jICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkg
IF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKLSMgIGVuZGlmICAvLyBHTlVDIHZlcnNp
b24KLSNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KLQotI2lmICFkZWZpbmVkKEpTT05D
UFBfREVQUkVDQVRFRCkKLSNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpCi0jZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotCi1uYW1lc3BhY2UgSnNvbiB7
Ci10eXBlZGVmIGludCBJbnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OwotI2lmIGRlZmlu
ZWQoSlNPTl9OT19JTlQ2NCkKLXR5cGVkZWYgaW50IExhcmdlc3RJbnQ7Ci10eXBlZGVmIHVuc2ln
bmVkIGludCBMYXJnZXN0VUludDsKLSN1bmRlZiBKU09OX0hBU19JTlQ2NAotI2Vsc2UgICAgICAg
ICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLS8vIEZvciBNaWNyb3NvZnQg
VmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAot
I2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCi10eXBlZGVm
IF9faW50NjQgSW50NjQ7Ci10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OwotI2Vsc2Ug
ICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBsYXRmb3Jt
cywgdXNlIGxvbmcgbG9uZwotdHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwotdHlwZWRlZiB1
bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0Nf
VkVSKQotdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwotdHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJ
bnQ7Ci0jZGVmaW5lIEpTT05fSEFTX0lOVDY0Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KLQotI2VuZGlmIC8vIEpTT05fQ09ORklH
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZm9yd2FyZHMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0y
MDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2Us
IG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBq
dXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBo
dHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIEpTT05fRk9S
V0FSRFNfSF9JTkNMVURFRAotI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNv
biB7Ci0KLS8vIHdyaXRlci5oCi1jbGFzcyBGYXN0V3JpdGVyOwotY2xhc3MgU3R5bGVkV3JpdGVy
OwotCi0vLyByZWFkZXIuaAotY2xhc3MgUmVhZGVyOwotCi0vLyBmZWF0dXJlcy5oCi1jbGFzcyBG
ZWF0dXJlczsKLQotLy8gdmFsdWUuaAotdHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsK
LWNsYXNzIFN0YXRpY1N0cmluZzsKLWNsYXNzIFBhdGg7Ci1jbGFzcyBQYXRoQXJndW1lbnQ7Ci1j
bGFzcyBWYWx1ZTsKLWNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotY2xhc3MgVmFsdWVJdGVyYXRv
cjsKLWNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0j
ZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
LS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQotCi0jaWZuZGVmIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAotI2RlZmluZSBD
UFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotI2luY2x1ZGUgImZvcndhcmRzLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLyoqIFxicmllZiBD
b25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KLSAqIFRoaXMgY29uZmln
dXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBXcml0ZXIK
LSAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgotICovCi1jbGFzcyBK
U09OX0FQSSBGZWF0dXJlcyB7Ci1wdWJsaWM6Ci0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9u
IHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncwotICAgKiBh
cmUgVVRGLTguCi0gICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAotICAgKiAtIFJv
b3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQotICAgKiAtIEFzc3VtZXMgVmFsdWUgc3Ry
aW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAotICAgKi8KLSAgc3RhdGljIEZlYXR1cmVzIGFsbCgp
OwotCi0gIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29tcGF0
aWJsZSB3aXRoIHRoZSBKU09OCi0gICAqIHNwZWNpZmljYXRpb24uCi0gICAqIC0gQ29tbWVudHMg
YXJlIGZvcmJpZGRlbi4KLSAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJh
eSBvciBhbiBvYmplY3QgdmFsdWUuCi0gICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBl
bmNvZGVkIGluIFVURi04Ci0gICAqLwotICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9kZSgpOwot
Ci0gIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpzb25Db25m
aWc6OmFsbEZlYXR1cmVzOwotICAgKi8KLSAgRmVhdHVyZXMoKTsKLQotICAvLy8gXGMgdHJ1ZSBp
ZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KLSAgYm9vbCBhbGxvd0Nv
bW1lbnRzXzsKLQotICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5
IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKLSAgLy8vIGZhbHNlLgotICBib29sIHN0
cmljdFJvb3RfOwotCi0gIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhvbGRlcnMg
YXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgotICBib29sIGFsbG93RHJvcHBlZE51bGxQ
bGFjZWhvbGRlcnNfOwotCi0gIC8vLyBcYyB0cnVlIGlmIG51bWVyaWMgb2JqZWN0IGtleSBhcmUg
YWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2UuCi0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBKc29uCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX0ZFQVRVUkVT
X0hfSU5DTFVERUQKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1
ZGUvanNvbi92YWx1ZS5oCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIw
MTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgQ1BQVExfSlNP
Tl9IX0lOQ0xVREVECi0jZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAotCi0jaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSAiZm9yd2FyZHMuaCIKLSNlbmRpZiAv
LyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgPGV4Y2VwdGlvbj4KLQotI2lmbmRlZiBKU09OX1VT
RV9DUFBUTF9TTUFMTE1BUAotI2luY2x1ZGUgPG1hcD4KLSNlbHNlCi0jaW5jbHVkZSA8Y3BwdGwv
c21hbGxtYXAuaD4KLSNlbmRpZgotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0jaW5jbHVkZSA8Y3Bw
dGwvZm9yd2FyZHMuaD4KLSNlbmRpZgotCi0vLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRh
IG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KLS8vIGJlIHVz
ZWQgYnkuLi4KLSNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcpCi0jcHJhZ21hIHdhcm5pbmcocHVzaCkKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1
MSkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCi0KLS8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pLgot
ICovCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8qKiBCYXNlIGNsYXNzIGZvciBhbGwgZXhjZXB0aW9u
cyB3ZSB0aHJvdy4KLSAqCi0gKiBXZSB1c2Ugbm90aGluZyBidXQgdGhlc2UgaW50ZXJuYWxseS4g
T2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KLSAqLwotY2xhc3MgSlNPTl9BUEkgRXhj
ZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKLXB1YmxpYzoKLSAgRXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotICB+RXhjZXB0aW9uKCkgdGhyb3coKTsKLSAgY2hhciBj
b25zdCogd2hhdCgpIGNvbnN0IHRocm93KCk7Ci1wcm90ZWN0ZWQ6Ci0gIHN0ZDo6c3RyaW5nIG1z
Z187Ci19OwotCi0vKiogRXhjZXB0aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFzaWx5IGF2
b2lkLgotICoKLSAqIEUuZy4gb3V0LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9jKSwgc3Rh
Y2stb3ZlcmZsb3csIG1hbGljaW91cyBpbnB1dAotICogCi0gKiBccmVtYXJrIGRlcml2ZWQgZnJv
bSBKc29uOjpFeGNlcHRpb24KLSAqLwotY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9yIDogcHVi
bGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIFJ1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKLX07Ci0KLS8qKiBFeGNlcHRpb25zIHRocm93biBieSBKU09OX0FTU0VSVC9KU09O
X0ZBSUwgbWFjcm9zLgotICoKLSAqIFRoZXNlIGFyZSBwcmVjb25kaXRpb24tdmlvbGF0aW9ucyAo
dXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJyb3JzIChvdXIgYnVncykuCi0gKiAKLSAqIFxyZW1h
cmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgotICovCi1jbGFzcyBKU09OX0FQSSBMb2dp
Y0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7Ci1wdWJsaWM6Ci0gIExvZ2ljRXJyb3Ioc3RkOjpz
dHJpbmcgY29uc3QmIG1zZyk7Ci19OwotCi0vLy8gdXNlZCBpbnRlcm5hbGx5Ci12b2lkIHRocm93
UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwotLy8vIHVzZWQgaW50ZXJuYWxs
eQotdm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Ci0KLS8qKiBc
YnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KLSAqLwotZW51
bSBWYWx1ZVR5cGUgewotICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQotICBpbnRW
YWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCi0gIHVpbnRWYWx1ZSwgICAgIC8v
LzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQotICByZWFsVmFsdWUsICAgICAvLy88IGRvdWJsZSB2
YWx1ZQotICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQotICBib29sZWFu
VmFsdWUsICAvLy88IGJvb2wgdmFsdWUKLSAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJheSB2YWx1
ZSAob3JkZXJlZCBsaXN0KQotICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1ZSAoY29s
bGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KLX07Ci0KLWVudW0gQ29tbWVudFBsYWNlbWVu
dCB7Ci0gIGNvbW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0
aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQotICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAvLy88IGEg
Y29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQotICBjb21tZW50QWZ0
ZXIsIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkgbWFrZSBz
ZW5zZSBmb3IKLSAgLy8vIHJvb3QgdmFsdWUpCi0gIG51bWJlck9mQ29tbWVudFBsYWNlbWVudAot
fTsKLQotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgIHR5cGVkZWYgQ3BwVEw6OkFueUVu
dW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7Ci0vLyAgIHR5cGVkZWYgQ3Bw
VEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKLS8vIyBlbmRpZgot
Ci0vKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJpbmcuCi0g
KgotICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3NpZ25lbWVu
dCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCi0gKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lkIHRoZSBj
b3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCi0gKiBzdHJpbmcgb3Ig
dGhlIG1lbWJlciBuYW1lLgotICoKLSAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gKiBcY29kZQotICog
SnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gKiBKc29u
OjpWYWx1ZSBvYmplY3Q7Ci0gKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUi
KTsKLSAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gKiBcZW5kY29kZQotICovCi1jbGFzcyBKU09O
X0FQSSBTdGF0aWNTdHJpbmcgewotcHVibGljOgotICBleHBsaWNpdCBTdGF0aWNTdHJpbmcoY29u
c3QgY2hhciogY3pzdHJpbmcpIDogY19zdHJfKGN6c3RyaW5nKSB7fQotCi0gIG9wZXJhdG9yIGNv
bnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9Ci0KLSAgY29uc3QgY2hhciogY19z
dHIoKSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KLQotcHJpdmF0ZToKLSAgY29uc3QgY2hhciog
Y19zdHJfOwotfTsKLQotLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCi0gKgotICogVGhpcyBjbGFzcyBpcyBhIGRpc2Ny
aW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6Ci0gKiAtIHNpZ25l
ZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCi0gKiAtIHVu
c2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCi0gKiAtIGRvdWJsZQot
ICogLSBVVEYtOCBzdHJpbmcKLSAqIC0gYm9vbGVhbgotICogLSAnbnVsbCcKLSAqIC0gYW4gb3Jk
ZXJlZCBsaXN0IG9mIFZhbHVlCi0gKiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyAo
amF2YXNjcmlwdCBvYmplY3QpCi0gKgotICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFsdWUgaXMg
cmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZAotICogY2FuIGJlIG9idGFpbmVkIHVzaW5n
IHR5cGUoKS4KLSAqCi0gKiBWYWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVl
IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkKLSAqIG1ldGhvZHMuCi0gKiBOb24t
Y29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUg
ZWxlbWVudAotICogaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gKiBUaGUgc2VxdWVuY2Ugb2YgYW4g
I2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRpYWxpemVk
Ci0gKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFyZ2Ugb3Ig
dHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCi0gKgotICogVGhlIGdldCgpIG1ldGhvZHMgY2FuIGJl
IHVzZWQgdG8gb2J0YWluIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCi0gKiByZXF1aXJl
ZCBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgotICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJh
dGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcKLSAqIHRoZSBn
ZXRNZW1iZXJOYW1lcygpIG1ldGhvZC4KLSAqCi0gKiBcbm90ZSAjVmFsdWUgc3RyaW5nLWxlbmd0
aCBmaXQgaW4gc2l6ZV90LCBidXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KLSAqIChUaGUgcmVhc29u
IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCByYWlzZSBh
bgotICogZXhjZXB0aW9uIGlmIGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2VjdXJpdHkg
aG9sZXMgaW4geW91ciBhcHAsCi0gKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3QqIGNoZWNr
IGJvdW5kcy4gVGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKLSAqIG9mIHRoZSBjYWxsZXIuCi0g
Ki8KLWNsYXNzIEpTT05fQVBJIFZhbHVlIHsKLSAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JC
YXNlOwotcHVibGljOgotICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBNZW1iZXJz
OwotICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7Ci0gIHR5cGVkZWYgVmFsdWVDb25z
dEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotICB0eXBlZGVmIEpzb246OlVJbnQgVUludDsKLSAg
dHlwZWRlZiBKc29uOjpJbnQgSW50OwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHR5
cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKLSAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICB0eXBlZGVmIEpzb246Okxhcmdl
c3RJbnQgTGFyZ2VzdEludDsKLSAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0VUlu
dDsKLSAgdHlwZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7Ci0KLSAgc3RhdGljIGNv
bnN0IFZhbHVlJiBudWxsOyAgLy8vPCBXZSByZWdyZXQgdGhpcyByZWZlcmVuY2UgdG8gYSBnbG9i
YWwgaW5zdGFuY2U7IHByZWZlciB0aGUgc2ltcGxlciBWYWx1ZSgpLgotICBzdGF0aWMgY29uc3Qg
VmFsdWUmIG51bGxSZWY7ICAvLy88IGp1c3QgYSBrbHVkZ2UgZm9yIGJpbmFyeS1jb21wYXRpYmls
aXR5OyBzYW1lIGFzIG51bGwKLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhh
dCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBMYXJnZXN0
SW50IG1pbkxhcmdlc3RJbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRo
YXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFyZ2Vz
dEludCBtYXhMYXJnZXN0SW50OwotICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVl
IHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgTGFy
Z2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7Ci0KLSAgLy8vIE1pbmltdW0gc2lnbmVkIGludCB2YWx1
ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgc3RhdGljIGNvbnN0IElu
dCBtaW5JbnQ7Ci0gIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50OwotICAvLy8g
TWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7Ci0KLSNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQotICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBj
YW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gIHN0YXRpYyBjb25zdCBJbnQ2NCBtaW5J
bnQ2NDsKLSAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJl
IHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgSW50NjQgbWF4SW50NjQ7
Ci0gIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0
b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2NDsK
LSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi1wcml2YXRlOgotI2lmbmRlZiBK
U09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gIGNsYXNzIENaU3RyaW5nIHsKLSAg
cHVibGljOgotICAgIGVudW0gRHVwbGljYXRpb25Qb2xpY3kgewotICAgICAgbm9EdXBsaWNhdGlv
biA9IDAsCi0gICAgICBkdXBsaWNhdGUsCi0gICAgICBkdXBsaWNhdGVPbkNvcHkKLSAgICB9Owot
ICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOwotICAgIENaU3RyaW5nKGNoYXIgY29uc3Qq
IHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7Ci0gICAg
Q1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKLSNpZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUwotICAgIENaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpOwotI2VuZGlmCi0gICAgfkNa
U3RyaW5nKCk7Ci0gICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyBvdGhlcik7Ci0gICAg
Ym9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBib29sIG9w
ZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKLSAgICBBcnJheUluZGV4IGlu
ZGV4KCkgY29uc3Q7Ci0gICAgLy9jb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0OyAvLy88IFxkZXBy
ZWNhdGVkCi0gICAgY2hhciBjb25zdCogZGF0YSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OwotICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLQotICBwcml2YXRl
OgotICAgIHZvaWQgc3dhcChDWlN0cmluZyYgb3RoZXIpOwotCi0gICAgc3RydWN0IFN0cmluZ1N0
b3JhZ2UgewotICAgICAgdW5zaWduZWQgcG9saWN5XzogMjsKLSAgICAgIHVuc2lnbmVkIGxlbmd0
aF86IDMwOyAvLyAxR0IgbWF4Ci0gICAgfTsKLQotICAgIGNoYXIgY29uc3QqIGNzdHJfOyAgLy8g
YWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVwCi0gICAg
dW5pb24gewotICAgICAgQXJyYXlJbmRleCBpbmRleF87Ci0gICAgICBTdHJpbmdTdG9yYWdlIHN0
b3JhZ2VfOwotICAgIH07Ci0gIH07Ci0KLXB1YmxpYzoKLSNpZm5kZWYgSlNPTl9VU0VfQ1BQVExf
U01BTExNQVAKLSAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVl
czsKLSNlbHNlCi0gIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2Jq
ZWN0VmFsdWVzOwotI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotI2Vu
ZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLXB1Ymxp
YzoKLSAgLyoqIFxicmllZiBDcmVhdGUgYSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZlbiB0eXBl
LgotCi0gICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgotICAgIFRvIGNyZWF0
ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgotICAgIFRvIGNyZWF0ZSBhbiBlbXB0
eSBvYmplY3QsIHBhc3Mgb2JqZWN0VmFsdWUuCi0gICAgQW5vdGhlciBWYWx1ZSBjYW4gdGhlbiBi
ZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KLVRoaXMgaXMgdXNlZnVsIHNpbmNlIGNs
ZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAgRXhhbXBsZXM6
Ci1cY29kZQotSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAotSnNvbjo6VmFsdWUgYXJy
X3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQotSnNvbjo6VmFsdWUgb2JqX3ZhbHVlKEpz
b246Om9iamVjdFZhbHVlKTsgLy8ge30KLVxlbmRjb2RlCi0gICovCi0gIFZhbHVlKFZhbHVlVHlw
ZSB0eXBlID0gbnVsbFZhbHVlKTsKLSAgVmFsdWUoSW50IHZhbHVlKTsKLSAgVmFsdWUoVUludCB2
YWx1ZSk7Ci0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgVmFsdWUoSW50NjQgdmFsdWUp
OwotICBWYWx1ZShVSW50NjQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCi0gIFZhbHVlKGRvdWJsZSB2YWx1ZSk7Ci0gIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVl
KTsgLy8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0LikKLSAg
VmFsdWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29weSBhbGws
IGluY2wgemVyb2VzLgotICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9tIGEgc3Rh
dGljIHN0cmluZy4KLQotICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1Y3RvciBi
dXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgotICAgKiBpbnRlcm5hbCBzdG9yYWdl
LiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxsIHRvIHRo
aXMKLSAgICogY29uc3RydWN0b3IuCi0gICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBmb3IgbnVs
bC10ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQotICAgKiAgIHNpemUg
b2YgdGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5ndGgsCi0g
ICAqICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3BlcmF0aW9u
cy4pCi0gICAqCi0gICAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gICAqIFxjb2RlCi0gICAqIHN0YXRp
YyBTdGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKLSAgICogSnNvbjo6VmFsdWUgYVZhbHVl
KGZvbyk7Ci0gICAqIFxlbmRjb2RlCi0gICAqLwotICBWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcm
IHZhbHVlKTsKLSAgVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsgLy8vPCBDb3B5IGRh
dGEoKSB0aWwgc2l6ZSgpLiBFbWJlZGRlZCB6ZXJvZXMgdG9vLgotI2lmZGVmIEpTT05fVVNFX0NQ
UFRMCi0gIFZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpOwotI2VuZGlmCi0g
IFZhbHVlKGJvb2wgdmFsdWUpOwotICAvLy8gRGVlcCBjb3B5LgotICBWYWx1ZShjb25zdCBWYWx1
ZSYgb3RoZXIpOwotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0gIC8vLyBNb3ZlIGNv
bnN0cnVjdG9yCi0gIFZhbHVlKFZhbHVlJiYgb3RoZXIpOwotI2VuZGlmCi0gIH5WYWx1ZSgpOwot
Ci0gIC8vLyBEZWVwIGNvcHksIHRoZW4gc3dhcChvdGhlcikuCi0gIC8vLyBcbm90ZSBPdmVyLXdy
aXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlICNzd2FwUGF5
bG9hZCgpLgotICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlIG90aGVyKTsKLSAgLy8vIFN3YXAgZXZl
cnl0aGluZy4KLSAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7Ci0gIC8vLyBTd2FwIHZhbHVlcyBi
dXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgotICB2b2lkIHN3
YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7Ci0KLSAgVmFsdWVUeXBlIHR5cGUoKSBjb25zdDsKLQot
ICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBldGMuCi0gIGJvb2wgb3Bl
cmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3BlcmF0b3I8PShjb25z
dCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBib29sIG9wZXJhdG9yPj0oY29uc3QgVmFsdWUmIG90
aGVyKSBjb25zdDsKLSAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsK
LSAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Ci0gIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OwotICBpbnQgY29tcGFyZShjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0OwotCi0gIGNvbnN0IGNoYXIqIGFzQ1N0cmluZygpIGNvbnN0OyAv
Ly88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJsZSEKLSAgc3RkOjpzdHJp
bmcgYXNTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3NpYmxlLgot
ICAvKiogR2V0IHJhdyBjaGFyKiBvZiBzdHJpbmctdmFsdWUuCi0gICAqICBccmV0dXJuIGZhbHNl
IGlmICFzdHJpbmcuIChTZWctZmF1bHQgaWYgc3RyIG9yIGVuZCBhcmUgTlVMTC4pCi0gICAqLwot
ICBib29sIGdldFN0cmluZygKLSAgICAgIGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBjb25zdCoq
IGVuZCkgY29uc3Q7Ci0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgQ3BwVEw6OkNvbnN0U3RyaW5n
IGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKLSNlbmRpZgotICBJbnQgYXNJbnQoKSBjb25zdDsKLSAg
VUludCBhc1VJbnQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICBJbnQ2
NCBhc0ludDY0KCkgY29uc3Q7Ci0gIFVJbnQ2NCBhc1VJbnQ2NCgpIGNvbnN0OwotI2VuZGlmIC8v
IGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIExhcmdlc3RJbnQgYXNMYXJnZXN0SW50KCkg
Y29uc3Q7Ci0gIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKLSAgZmxvYXQgYXNG
bG9hdCgpIGNvbnN0OwotICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKLSAgYm9vbCBhc0Jvb2wo
KSBjb25zdDsKLQotICBib29sIGlzTnVsbCgpIGNvbnN0OwotICBib29sIGlzQm9vbCgpIGNvbnN0
OwotICBib29sIGlzSW50KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnQ2NCgpIGNvbnN0OwotICBib29s
IGlzVUludCgpIGNvbnN0OwotICBib29sIGlzVUludDY0KCkgY29uc3Q7Ci0gIGJvb2wgaXNJbnRl
Z3JhbCgpIGNvbnN0OwotICBib29sIGlzRG91YmxlKCkgY29uc3Q7Ci0gIGJvb2wgaXNOdW1lcmlj
KCkgY29uc3Q7Ci0gIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKLSAgYm9vbCBpc0FycmF5KCkgY29u
c3Q7Ci0gIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKLQotICBib29sIGlzQ29udmVydGlibGVUbyhW
YWx1ZVR5cGUgb3RoZXIpIGNvbnN0OwotCi0gIC8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAvLy8gXGJyaWVmIFJl
dHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Ci0gIC8vLyBv
dGhlcndpc2UsIGZhbHNlLgotICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgLy8vIFJldHVybiBp
c051bGwoKQotICBib29sIG9wZXJhdG9yISgpIGNvbnN0OwotCi0gIC8vLyBSZW1vdmUgYWxsIG9i
amVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgLy8vIFxwcmUgdHlwZSgpIGlzIGFy
cmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKLSAgLy8vIFxwb3N0IHR5cGUoKSBp
cyB1bmNoYW5nZWQKLSAgdm9pZCBjbGVhcigpOwotCi0gIC8vLyBSZXNpemUgdGhlIGFycmF5IHRv
IHNpemUgZWxlbWVudHMuCi0gIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIG51
bGwuCi0gIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5VmFsdWUu
Ci0gIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBv
c3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgdm9pZCByZXNpemUoQXJyYXlJbmRleCBzaXplKTsK
LQotICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KLSAg
Ly8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBu
dWxsIHZhbHVlIGFyZQotICAvLy8gaW5zZXJ0ZWQKLSAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0
IGl0cyBzaXplIGlzIGluZGV4KzEuCi0gIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVb
MHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAvLy8gIHRoaXMgZnJv
bSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gIFZhbHVlJiBvcGVyYXRv
cltdKEFycmF5SW5kZXggaW5kZXgpOwotCi0gIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAo
emVybyBiYXNlZCBpbmRleCApLgotICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhh
biBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCi0gIC8vLyBpbnNlcnRlZAotICAv
Ly8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgLy8vIChZb3Ug
bWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rp
bmd1aXNoCi0gIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3Ry
aW5nLikKLSAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsKLQotICAvLy8gQWNjZXNzIGFu
IGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBtYXkgbmVlZCB0
byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAg
Ly8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICBj
b25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLQotICAvLy8g
QWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAvLy8gKFlvdSBt
YXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGlu
Z3Vpc2gKLSAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJp
bmcuKQotICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0OwotCi0gIC8v
LyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJu
cyB0aGUgZWxlbWVudAotICAvLy8gdmFsdWUsCi0gIC8vLyBvdGhlcndpc2UgcmV0dXJucyBkZWZh
dWx0VmFsdWUuCi0gIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4LCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgot
ICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdDsKLSAgLy8vIFxicmll
ZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KLSAgLy8vCi0gIC8vLyBFcXVpdmFs
ZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICBWYWx1ZSYgYXBw
ZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8v
LyBcbm90ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGltaXRlZCB0
byAyXjMwIC0xIGNoYXJzLgotICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2UgYW4gZXhj
ZXB0aW9uLgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOwotICAvLy8gQWNj
ZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8g
bWVtYmVyIHdpdGgKLSAgLy8vIHRoYXQgbmFtZS4KLSAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgY2hhcioga2V5KSBjb25zdDsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkg
bmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gIC8vLyBc
cGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSYgb3BlcmF0b3Jb
XShjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKLSAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCi0gIC8vLyB0
aGF0IG5hbWUuCi0gIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgot
ICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBjb25zdDsK
LSAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51
bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90Ci0gICBleGlzdC4KLQotICAgKiBJZiB0aGUgb2JqZWN0
IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1c2VkIHRv
IHN0b3JlCi0gICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAqIEV4YW1w
bGUgb2YgdXNlOgotICAgKiBcY29kZQotICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAqIHN0
YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgKiBvYmplY3RbY29kZV0g
PSAxMjM0OwotICAgKiBcZW5kY29kZQotICAgKi8KLSAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qg
U3RhdGljU3RyaW5nJiBrZXkpOwotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0gIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcm
IGtleSk7Ci0gIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVs
bCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAotICAvLy8gdGhhdCBuYW1lLgotICBjb25zdCBW
YWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVm
YXVsdFZhbHVlIG90aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICBWYWx1ZSBnZXQo
Y29uc3QgY2hhcioga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSAgLy8v
IFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90
aGVyd2lzZS4KLSAgLy8vIFxub3RlIGRlZXAgY29weQotICAvLy8gXG5vdGUga2V5IG1heSBjb250
YWluIGVtYmVkZGVkIG51bGxzLgotICBWYWx1ZSBnZXQoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0
IGNoYXIqIGVuZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBSZXR1
cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndp
c2UuCi0gIC8vLyBcbm90ZSBkZWVwIGNvcHkKLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4g
ZW1iZWRkZWQgbnVsbHMuCi0gIFZhbHVlIGdldChjb25zdCBzdGQ6OnN0cmluZyYga2V5LCBjb25z
dCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTAotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgotICAvLy8gXG5vdGUgZGVlcCBjb3B5Ci0gIFZhbHVlIGdldChjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0j
ZW5kaWYKLSAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2YgaXNNZW1i
ZXIoKWNvbnN0LCBnZXQoKWNvbnN0LAotICAvLy8gYW5kIG9wZXJhdG9yW11jb25zdAotICAvLy8g
XG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIChlbmQt
YmVnaW4pID49IDJeMzAKLSAgVmFsdWUgY29uc3QqIGZpbmQoY2hhciBjb25zdCogYmVnaW4sIGNo
YXIgY29uc3QqIGVuZCkgY29uc3Q7Ci0gIC8vLyBNb3N0IGdlbmVyYWwgYW5kIGVmZmljaWVudCB2
ZXJzaW9uIG9mIG9iamVjdC1tdXRhdG9ycy4KLSAgLy8vIFxub3RlIEFzIHN0YXRlZCBlbHNld2hl
cmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCi0gIC8vLyBc
cmV0dXJuIG5vbi16ZXJvLCBidXQgSlNPTl9BU1NFUlQgaWYgdGhpcyBpcyBuZWl0aGVyIG9iamVj
dCBub3IgbnVsbFZhbHVlLgotICBWYWx1ZSBjb25zdCogZGVtYW5kKGNoYXIgY29uc3QqIGJlZ2lu
LCBjaGFyIGNvbnN0KiBlbmQpOwotICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJuIHRoZSBu
YW1lZCBtZW1iZXIuCi0gIC8vLwotICAvLy8gRG8gbm90aGluZyBpZiBpdCBkaWQgbm90IGV4aXN0
LgotICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgLy8vIFxwcmUg
dHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAvLy8gXHBvc3QgdHlwZSgpIGlz
IHVuY2hhbmdlZAotICAvLy8gXGRlcHJlY2F0ZWQKLSAgVmFsdWUgcmVtb3ZlTWVtYmVyKGNvbnN0
IGNoYXIqIGtleSk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKikKLSAg
Ly8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCi0gIC8vLyBcZGVwcmVj
YXRlZAotICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0gIC8v
LyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5k
LCBWYWx1ZSogcmVtb3ZlZCksCi0gIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5hdGVkLgot
ICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKTsKLSAg
LyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCi0KLSAgICAgIFVwZGF0ZSAn
cmVtb3ZlZCcgaWZmIHJlbW92ZWQuCi0gICAgICBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVk
ZGVkIG51bGxzLgotICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNlcHRpb25z
KQotICAqLwotICBib29sIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1
ZSogcmVtb3ZlZCk7Ci0gIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25z
dCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKLSAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhciog
YmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOwotICAvKiogXGJyaWVmIFJl
bW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgotCi0gICAgICBPKG4pIGV4cGVuc2l2ZSBv
cGVyYXRpb25zLgotICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KLSAgICAgIFxy
ZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKLSAgKi8KLSAgYm9vbCByZW1v
dmVJbmRleChBcnJheUluZGV4IGksIFZhbHVlKiByZW1vdmVkKTsKLQotICAvLy8gUmV0dXJuIHRy
dWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAvLy8gXG5vdGUgJ2tl
eScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCi0gIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hhciog
a2V5KSBjb25zdDsKLSAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVy
IG5hbWVkIGtleS4KLSAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMu
Ci0gIGJvb2wgaXNNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7Ci0gIC8vLyBT
YW1lIGFzIGlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpY29uc3QKLSAgYm9vbCBpc01l
bWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSBjb25zdDsKLSNpZmRlZiBK
U09OX1VTRV9DUFBUTAotICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1i
ZXIgbmFtZWQga2V5LgotICBib29sIGlzTWVtYmVyKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYg
a2V5KSBjb25zdDsKLSNlbmRpZgotCi0gIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBvZiB0aGUg
bWVtYmVyIG5hbWVzLgotICAvLy8KLSAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0eSBsaXN0
LgotICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCi0gIC8vLyBc
cG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgTWVt
YmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OwotCi0gIC8vIyBpZmRlZiBKU09OX1VTRV9DUFBU
TAotICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKLSAg
Ly8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKLSAgLy8jIGVuZGlmCi0KLSAg
Ly8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJV
c2Ugc2V0Q29tbWVudChzdGQ6OnN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKLSAgdm9pZCBzZXRD
b21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsK
LSAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCi0gIHZvaWQgc2V0Q29t
bWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCk7Ci0gIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICB2
b2lkIHNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1l
bnQgcGxhY2VtZW50KTsKLSAgYm9vbCBoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KSBjb25zdDsKLSAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQgbmV3bGlu
ZXMuCi0gIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
IGNvbnN0OwotCi0gIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7Ci0KLSAgY29u
c3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKLSAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7
Ci0KLSAgaXRlcmF0b3IgYmVnaW4oKTsKLSAgaXRlcmF0b3IgZW5kKCk7Ci0KLSAgLy8gQWNjZXNz
b3JzIGZvciB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSBKU09O
IHRleHQgZnJvbQotICAvLyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFueS4KLSAg
dm9pZCBzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpOwotICB2b2lkIHNldE9mZnNldExpbWl0
KHNpemVfdCBsaW1pdCk7Ci0gIHNpemVfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0OwotICBzaXpl
X3QgZ2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdm9pZCBpbml0QmFzaWMo
VmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkID0gZmFsc2UpOwotCi0gIFZhbHVlJiByZXNv
bHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7Ci0gIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNl
KGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKLQotICBzdHJ1Y3QgQ29tbWVudElu
Zm8gewotICAgIENvbW1lbnRJbmZvKCk7Ci0gICAgfkNvbW1lbnRJbmZvKCk7Ci0KLSAgICB2b2lk
IHNldENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbik7Ci0KLSAgICBjaGFyKiBj
b21tZW50XzsKLSAgfTsKLQotICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KLSAgLy97
Ci0gIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKLSAgLy8gICBjb25zdCBj
aGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0Ci0gIC8vICAgewot
ICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7Ci0gIC8vICAgfQotICAvL307Ci0KLSAgdW5p
b24gVmFsdWVIb2xkZXIgewotICAgIExhcmdlc3RJbnQgaW50XzsKLSAgICBMYXJnZXN0VUludCB1
aW50XzsKLSAgICBkb3VibGUgcmVhbF87Ci0gICAgYm9vbCBib29sXzsKLSAgICBjaGFyKiBzdHJp
bmdfOyAgLy8gYWN0dWFsbHkgcHRyIHRvIHVuc2lnbmVkLCBmb2xsb3dlZCBieSBzdHIsIHVubGVz
cyAhYWxsb2NhdGVkXwotICAgIE9iamVjdFZhbHVlcyogbWFwXzsKLSAgfSB2YWx1ZV87Ci0gIFZh
bHVlVHlwZSB0eXBlXyA6IDg7Ci0gIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsgLy8gTm90
ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGFsbG9jYXRlZF8sIHN0cmluZ18gbXVzdCBi
ZSBudWxsLXRlcm1pbmF0ZWQuCi0gIENvbW1lbnRJbmZvKiBjb21tZW50c187Ci0gIFZhbHVlICpk
ZWZhdWx0X3ZhbHVlXzsgIC8vIGlmIHZpYSAuZ2V0KCAia2V5IiwgZGVmYXVsdCApLCB0aGlzIHdh
cyB0aGUgZGVmYXVsdAotCi0gIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBpbiB0aGUg
c291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKLSAgLy8gd2FzIGV4dHJhY3Rl
ZC4KLSAgc2l6ZV90IHN0YXJ0XzsKLSAgc2l6ZV90IGxpbWl0XzsKLX07Ci0KLS8qKiBcYnJpZWYg
RXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9mIHRoZSAi
cGF0aCIgdG8KLSAqIGFjY2VzcyBhIG5vZGUuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBhdGhBcmd1
bWVudCB7Ci1wdWJsaWM6Ci0gIGZyaWVuZCBjbGFzcyBQYXRoOwotCi0gIFBhdGhBcmd1bWVudCgp
OwotICBQYXRoQXJndW1lbnQoQXJyYXlJbmRleCBpbmRleCk7Ci0gIFBhdGhBcmd1bWVudChjb25z
dCBjaGFyKiBrZXkpOwotICBQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Ci0K
LXByaXZhdGU6Ci0gIGVudW0gS2luZCB7Ci0gICAga2luZE5vbmUgPSAwLAotICAgIGtpbmRJbmRl
eCwKLSAgICBraW5kS2V5Ci0gIH07Ci0gIHN0ZDo6c3RyaW5nIGtleV87Ci0gIEFycmF5SW5kZXgg
aW5kZXhfOwotICBLaW5kIGtpbmRfOwotfTsKLQotLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5k
IHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gKgotICog
U3ludGF4OgotICogLSAiLiIgPT4gcm9vdCBub2RlCi0gKiAtICIuW25dIiA9PiBlbGVtZW50cyBh
dCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKLSAqIC0gIi5uYW1lIiA9
PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVlKQotICog
LSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICogLSAiLlswXVsxXVsyXS5uYW1lMVszXSIKLSAqIC0g
Ii4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIKLSAqIC0gIi5bJV0i
ID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCi0gKi8KLWNsYXNzIEpTT05fQVBJIFBh
dGggewotcHVibGljOgotICBQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAotICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRo
QXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCi0gICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhMyA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQgPSBQ
YXRoQXJndW1lbnQoKSwKLSAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0aEFyZ3Vt
ZW50KCkpOwotCi0gIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290KSBjb25z
dDsKLSAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3Q7Ci0gIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBz
cGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgotICAvLy8gdGhlIG5vZGUu
Ci0gIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgdHlwZWRl
ZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7Ci0gIHR5cGVkZWYgc3Rk
Ojp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOwotCi0gIHZvaWQgbWFrZVBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pOwotICB2b2lkIGFkZFBhdGhJbkFyZyhj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5Bcmdz
JiBpbiwKLSAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFy
ZywKLSAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpOwotICB2b2lk
IGludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBpbnQgbG9jYXRpb24pOwotCi0g
IEFyZ3MgYXJnc187Ci19OwotCi0vKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVlIGl0ZXJh
dG9ycy4KLSAqCi0gKi8KLWNsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3JCYXNlIHsKLXB1Ymxp
YzoKLSAgdHlwZWRlZiBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGl0ZXJhdG9yX2Nh
dGVnb3J5OwotICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gIHR5cGVkZWYgaW50IGRp
ZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlwZTsKLQot
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBp
c0VxdWFsKG90aGVyKTsgfQotCi0gIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFsKG90aGVyKTsgfQotCi0gIGRpZmZlcmVuY2VfdHlw
ZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7Ci0gICAgcmV0dXJuIG90
aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7Ci0gIH0KLQotICAvLy8gUmV0dXJuIGVpdGhlciB0
aGUgaW5kZXggb3IgdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHZhbHVlIGFzIGEK
LSAgLy8vIFZhbHVlLgotICBWYWx1ZSBrZXkoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBp
bmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFuIGFycmF5
VmFsdWUuCi0gIFVJbnQgaW5kZXgoKSBjb25zdDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8v
LyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1bHQsIGFz
IGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCi0gIHN0ZDo6c3RyaW5nIG5hbWUoKSBjb25z
dDsKLQotICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1
ZS4gIiIgaWYgaXQgaXMgbm90IGFuCi0gIC8vLyBvYmplY3RWYWx1ZS4KLSAgLy8vIFxkZXByZWNh
dGVkIFRoaXMgY2Fubm90IGJlIHVzZWQgZm9yIFVURi04IHN0cmluZ3MsIHNpbmNlIHRoZXJlIGNh
biBiZSBlbWJlZGRlZCBudWxscy4KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtleSA9IG5h
bWUoKTtgIGluc3RlYWQuIikKLSAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0OwotICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgTlVM
TCBpZiBpdCBpcyBub3QgYW4KLSAgLy8vIG9iamVjdFZhbHVlLgotICAvLy8gXG5vdGUgQmV0dGVy
IHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4KLSAgY2hh
ciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKLQotcHJvdGVjdGVk
OgotICBWYWx1ZSYgZGVyZWYoKSBjb25zdDsKLQotICB2b2lkIGluY3JlbWVudCgpOwotCi0gIHZv
aWQgZGVjcmVtZW50KCk7Ci0KLSAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5jZShjb25z
dCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OwotCi0gIGJvb2wgaXNFcXVhbChjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0OwotCi0gIHZvaWQgY29weShjb25zdCBTZWxmVHlwZSYgb3RoZXIpOwot
Ci1wcml2YXRlOgotICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50XzsKLSAg
Ly8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KLSAgYm9vbCBp
c051bGxfOwotCi1wdWJsaWM6Ci0gIC8vIEZvciBzb21lIHJlYXNvbiwgQk9STEFORCBuZWVkcyB0
aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKLSAgLy8gdGhhbiBlYXJsaWVyLiBObyBpZGVhIHdoeS4K
LSAgVmFsdWVJdGVyYXRvckJhc2UoKTsKLSAgZXhwbGljaXQgVmFsdWVJdGVyYXRvckJhc2UoY29u
c3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotfTsKLQotLyoqIFxi
cmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAqCi0gKi8K
LWNsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9y
QmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0eXBlZGVmIGNvbnN0
IFZhbHVlIHZhbHVlX3R5cGU7Ci0gIC8vdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAv
L3R5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgdHlwZWRlZiBjb25zdCBWYWx1ZSYgcmVm
ZXJlbmNlOwotICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOwotICB0eXBlZGVmIFZhbHVl
Q29uc3RJdGVyYXRvciBTZWxmVHlwZTsKLQotICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKLSAgVmFs
dWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKTsKLQotcHJpdmF0ZToK
LS8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4KLSAqLwot
ICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6
aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGljOgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQp
IHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICArKyp0aGlzOwotICAgIHJldHVybiB0
ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKLSAgICBTZWxmVHlwZSB0
ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2Vs
ZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7Ci0gICAgaW5jcmVtZW50KCk7Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVy
biAmZGVyZWYoKTsgfQotfTsKLQotLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBh
cnJheSB2YWx1ZS4KLSAqLwotY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1YmxpYyBW
YWx1ZUl0ZXJhdG9yQmFzZSB7Ci0gIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLQotcHVibGljOgotICB0
eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsK
LSAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICB0eXBlZGVmIFZhbHVlJiByZWZlcmVu
Y2U7Ci0gIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7Ci0gIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBT
ZWxmVHlwZTsKLQotICBWYWx1ZUl0ZXJhdG9yKCk7Ci0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3Io
Y29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7Ci0gIFZhbHVlSXRlcmF0b3IoY29uc3Qg
VmFsdWVJdGVyYXRvciYgb3RoZXIpOwotCi1wcml2YXRlOgotLyohIFxpbnRlcm5hbCBVc2UgYnkg
VmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICovCi0gIGV4cGxpY2l0IFZhbHVlSXRlcmF0
b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwotcHVibGlj
OgotICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7Ci0KLSAgU2Vs
ZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAr
Kyp0aGlzOwotICAgIHJldHVybiB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUgb3BlcmF0b3ItLShp
bnQpIHsKLSAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKLSAgICAtLSp0aGlzOwotICAgIHJldHVy
biB0ZW1wOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7Ci0gICAgZGVjcmVtZW50
KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7
Ci0gICAgaW5jcmVtZW50KCk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgcmVmZXJlbmNl
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KLQotICBwb2ludGVyIG9wZXJh
dG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
SnNvbgotCi0KLW5hbWVzcGFjZSBzdGQgewotLy8vIFNwZWNpYWxpemUgc3RkOjpzd2FwKCkgZm9y
IEpzb246OlZhbHVlLgotdGVtcGxhdGU8PgotaW5saW5lIHZvaWQgc3dhcChKc29uOjpWYWx1ZSYg
YSwgSnNvbjo6VmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9Ci19Ci0KLQotI2lmIGRlZmluZWQoSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEgd2FybmluZyhwb3Ap
Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92YWx1ZS5oCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
Ci0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0jZGVmaW5lIENQ
UFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKLQotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQotI2luY2x1ZGUgImZlYXR1cmVzLmgiCi0jaW5jbHVkZSAidmFsdWUuaCIKLSNlbmRp
ZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxkZXF1ZT4K
LSNpbmNsdWRlIDxpb3Nmd2Q+Ci0jaW5jbHVkZSA8c3RhY2s+Ci0jaW5jbHVkZSA8c3RyaW5nPgot
I2luY2x1ZGUgPGlzdHJlYW0+Ci0KLS8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVt
YmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bwotLy8gYmUgdXNlZCBi
eS4uLgotI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykK
LSNwcmFnbWEgd2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQot
I2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklO
RykKLQotbmFtZXNwYWNlIEpzb24gewotCi0vKiogXGJyaWVmIFVuc2VyaWFsaXplIGEgPGEgSFJF
Rj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQgaW50byBhCi0gKlZhbHVl
LgotICoKLSAqIFxkZXByZWNhdGVkIFVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRl
ci4KLSAqLwotY2xhc3MgSlNPTl9BUEkgUmVhZGVyIHsKLXB1YmxpYzoKLSAgdHlwZWRlZiBjaGFy
IENoYXI7Ci0gIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247Ci0KLSAgLyoqIFxicmllZiBB
biBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBpbiB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBlbmNvdW50
ZXJlZC4KLSAgICoKLSAgICogVGhlIG9mZnNldHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFu
Z2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0LiBOb3RlCi0gICAqIHRoYXQgdGhpcyBpcyBieXRl
cywgbm90IGNvZGVwb2ludHMuCi0gICAqCi0gICAqLwotICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9y
IHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRfbGltaXQ7Ci0g
ICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICAvKiogXGJyaWVmIENvbnN0cnVjdHMg
YSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCi0gICAqIGZvciBwYXJzaW5nLgotICAgKi8K
LSAgUmVhZGVyKCk7Ci0KLSAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5n
IHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKLSAgICogZm9yIHBhcnNpbmcuCi0gICAqLwotICBS
ZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKLQotICAvKiogXGJyaWVmIFJlYWQgYSBW
YWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KLSAgICog
ZG9jdW1lbnQuCi0gICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmluZyBjb250
YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAqICAgICAg
ICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCi0gICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMg
XGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQotICAgKiBi
YWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxj
IGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
VGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgotICAgKiBGZWF0dXJlczo6YWxsb3dDb21tZW50
c18KLSAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KLSAgICogXHJldHVy
biBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFs
c2UgaWYgYW4KLSAgICogZXJyb3Igb2NjdXJyZWQuCi0gICAqLwotICBib29sCi0gIHBhcnNlKGNv
bnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1l
bnRzID0gdHJ1ZSk7Ci0KLSAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9
Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+Ci0gICBkb2N1bWVudC4KLSAgICogXHBhcmFt
IGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBz
dHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBv
aW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVnaW5Eb2Mu
Ci0gICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBk
b2N1bWVudCBpZiBpdCB3YXMKLSAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4K
LSAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBh
bmQgYWxsb3cgd3JpdGluZyB0aGVtCi0gICBiYWNrIGR1cmluZwotICAgKiAgICAgICAgICAgICAg
ICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0g
ICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgot
ICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCi0gICAqICAgICAgICAgICAgICAgICAgICAgICAg
aXMgXGMgZmFsc2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1
Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCi0gICBlcnJvciBvY2N1cnJlZC4KLSAg
ICovCi0gIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgY29u
c3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7Ci0KLSAgLy8vIFxicmllZiBQYXJzZSBmcm9t
IGlucHV0IHN0cmVhbS4KLSAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0m
LCBKc29uOjpWYWx1ZSYpLgotICBib29sIHBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZhbHVlJiBy
b290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwotCi0gIC8qKiBcYnJpZWYgUmV0dXJu
cyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZAot
ICAgKiBkb2N1bWVudC4KLSAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZSB3aXRo
IHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCi0gICAqIGluCi0gICAqICAg
ICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlm
IG5vIGVycm9yCi0gICAqIG9jY3VycmVkCi0gICAqICAgICAgICAgZHVyaW5nIHBhcnNpbmcuCi0g
ICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZCAo
dHlwbyBmaXgpLgotICAgKi8KLSAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgZ2V0Rm9ybWF0dGVk
RXJyb3JNZXNzYWdlcygpIGluc3RlYWQuIikKLSAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0ZWRFcnJv
ck1lc3NhZ2VzKCkgY29uc3Q7Ci0KLSAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRs
eSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRvY3VtZW50Lgot
ICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJy
b3JzIHdpdGggdGhlaXIgbG9jYXRpb24KLSAgICogaW4KLSAgICogICAgICAgICB0aGUgcGFyc2Vk
IGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKLSAgICog
b2NjdXJyZWQKLSAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KLSAgICovCi0gIHN0ZDo6c3Ry
aW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKLQotICAvKiogXGJyaWVmIFJl
dHVybnMgYSB2ZWN0b3Igb2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUgcGFyc2lu
Zy4KLSAgICogXHJldHVybiBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVjdHVyZWRF
cnJvciBvYmplY3RzLiBDdXJyZW50bHkKLSAgICogICAgICAgICBvbmx5IG9uZSBlcnJvciBjYW4g
YmUgcmV0dXJuZWQsIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQotICAgKiBtdWx0aXBs
ZQotICAgKiAgICAgICAgIGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJzZXIgcmVj
b3ZlcnMgZnJvbSBhIG5vbi1mYXRhbAotICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFuZCB0aGVu
IGVuY291bnRlcnMgYWRkaXRpb25hbCBlcnJvcnMuCi0gICAqLwotICBzdGQ6OnZlY3RvcjxTdHJ1
Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLQotICAvKiogXGJyaWVm
IEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxwYXJhbSB2YWx1ZSBKU09OIFZh
bHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKLSAgICogXHBhcmFtIG1lc3Nh
Z2UgVGhlIGVycm9yIG1lc3NhZ2UuCi0gICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Ig
d2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCi0gICAqIFZhbHVlIG9mZnNl
dCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgotICAgKi8KLSAgYm9vbCBwdXNoRXJyb3IoY29u
c3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgLyoqIFxi
cmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlIHdpdGggZXh0cmEgY29udGV4dC4KLSAg
ICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBl
cnJvcgotICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KLSAgICogXHBhcmFt
IGV4dHJhIEFkZGl0aW9uYWwgSlNPTiBWYWx1ZSBsb2NhdGlvbiB0byBjb250ZXh0dWFsaXplIHRo
ZSBlcnJvcgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVs
bHkgYWRkZWQsIFxjIGZhbHNlIGlmIGVpdGhlcgotICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0
aGUgZG9jdW1lbnQgc2l6ZS4KLSAgICovCi0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2
YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0K
LSAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4KLSAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxjIGZhbHNl
IGlmCi0gICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgotICAgKi8KLSAgYm9vbCBnb29kKCkgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gIGVudW0gVG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFt
ID0gMCwKLSAgICB0b2tlbk9iamVjdEJlZ2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRv
a2VuQXJyYXlCZWdpbiwKLSAgICB0b2tlbkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAg
IHRva2VuTnVtYmVyLAotICAgIHRva2VuVHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2Vu
TnVsbCwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9y
LAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tlbkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9r
ZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBlIHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0
XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9OwotCi0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1
YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAg
TG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+
IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBT
cGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAgYm9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwot
ICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIHZv
aWQgcmVhZE51bWJlcigpOwotICBib29sIHJlYWRWYWx1ZSgpOwotICBib29sIHJlYWRPYmplY3Qo
VG9rZW4mIHRva2VuKTsKLSAgYm9vbCByZWFkQXJyYXkoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBk
ZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKLSAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRv
a2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbik7
Ci0gIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQp
OwotICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZURvdWJs
ZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVVbmljb2RlQ29k
ZVBvaW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0
aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsK
LSAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOwotICBib29sIGFkZEVy
cm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4
dHJhID0gMCk7Ci0gIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9r
ZW4pOwotICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOwotICB2b2lkIHNraXBVbnRp
bFNwYWNlKCk7Ci0gIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKLSAgQ2hhciBnZXROZXh0Q2hhcigp
OwotICB2b2lkCi0gIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwg
aW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHN0ZDo6c3RyaW5nIGdl
dExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Ci0gIHZvaWQgYWRkQ29t
bWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCk7Ci0gIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKLQotICB0eXBl
ZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKLSAgTm9kZXMgbm9kZXNfOwotICBFcnJvcnMg
ZXJyb3JzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwotICBMb2NhdGlvbiBiZWdpbl87Ci0g
IExvY2F0aW9uIGVuZF87Ci0gIExvY2F0aW9uIGN1cnJlbnRfOwotICBMb2NhdGlvbiBsYXN0VmFs
dWVFbmRfOwotICBWYWx1ZSogbGFzdFZhbHVlXzsKLSAgc3RkOjpzdHJpbmcgY29tbWVudHNCZWZv
cmVfOwotICBGZWF0dXJlcyBmZWF0dXJlc187Ci0gIGJvb2wgY29sbGVjdENvbW1lbnRzXzsKLX07
ICAvLyBSZWFkZXIKLQotLyoqIEludGVyZmFjZSBmb3IgcmVhZGluZyBKU09OIGZyb20gYSBjaGFy
IGFycmF5LgotICovCi1jbGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyIHsKLXB1YmxpYzoKLSAgdmly
dHVhbCB+Q2hhclJlYWRlcigpIHt9Ci0gIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgotICAgZG9jdW1lbnQuCi0gICAq
IFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0
aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAgICoKLSAgICogXHBhcmFtIGJlZ2luRG9jIFBvaW50ZXIg
b24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBk
b2N1bWVudCB0byByZWFkLgotICAgKiBccGFyYW0gZW5kRG9jIFBvaW50ZXIgb24gdGhlIGVuZCBv
ZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCi0gICBkb2N1bWVudCB0byByZWFkLgot
ICAgKiAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KLSAgICogXHBhcmFtIHJvb3QgW291dF0g
Q29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcwotICAgKiAg
ICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgotICAgKiBccGFyYW0gZXJycyBbb3V0XSBG
b3JtYXR0ZWQgZXJyb3IgbWVzc2FnZXMgKGlmIG5vdCBOVUxMKQotICAgKiAgICAgICAgYSB1c2Vy
IGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3RzIGVycm9ycyBpbiB0aGUgcGFyc2VkCi0gICAqIGRv
Y3VtZW50LgotICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNz
ZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgotICAgZXJyb3Igb2NjdXJyZWQuCi0gICAqLwot
ICB2aXJ0dWFsIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBj
b25zdCogZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSA9IDA7
Ci0KLSAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5G
YWN0b3J5KCkge30KLSAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2aWEgb3Bl
cmF0b3IgbmV3KCkuCi0gICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBn
b2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCi0gICAgICovCi0gICAgdmlydHVhbCBD
aGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3QgPSAwOwotICB9OyAgLy8gRmFjdG9yeQot
fTsgIC8vIENoYXJSZWFkZXIKLQotLyoqIFxicmllZiBCdWlsZCBhIENoYXJSZWFkZXIgaW1wbGVt
ZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcgbmFtZXNwYWNlIEpzb247Ci0gIENo
YXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbGxlY3RDb21tZW50cyJdID0g
ZmFsc2U7Ci0gIFZhbHVlIHZhbHVlOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0g
cGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsKLVxlbmRj
b2RlCi0qLwotY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMgQ2hhclJl
YWRlcjo6RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVl
IHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcwotICAvLyB3aXRo
b3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgotICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1
aWxkZXIuCi0gICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgotICAgIEF2YWlsYWJsZSBzZXR0
aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgotICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBmYWxzZSBv
ciB0cnVlYAotICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGlu
ZyB0aGVtCi0gICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRvIGRpc2Nh
cmQgY29tbWVudHMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgYWxsb3dD
b21tZW50cyBpcyBmYWxzZS4KLSAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9yIHRydWVg
Ci0gICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuCi0gICAgLSBgInN0cmljdFJv
b3QiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCi0gICAgLSBgImFsbG93RHJvcHBlZE51bGxQbGFj
ZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIGRyb3BwZWQgbnVsbCBw
bGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUgU3RyZWFtV3JpdGVyQnVpbGRlci4pCi0gICAg
LSBgImFsbG93TnVtZXJpY0tleXMiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSB0cnVlIGlmIG51
bWVyaWMgb2JqZWN0IGtleXMgYXJlIGFsbG93ZWQuCi0gICAgLSBgImFsbG93U2luZ2xlUXVvdGVz
IjogZmFsc2Ugb3IgdHJ1ZWAKLSAgICAgIC0gdHJ1ZSBpZiAnJyBhcmUgYWxsb3dlZCBmb3Igc3Ry
aW5ncyAoYm90aCBrZXlzIGFuZCB2YWx1ZXMpCi0gICAgLSBgInN0YWNrTGltaXQiOiBpbnRlZ2Vy
YAotICAgICAgLSBFeGNlZWRpbmcgc3RhY2tMaW1pdCAocmVjdXJzaXZlIGRlcHRoIG9mIGByZWFk
VmFsdWUoKWApIHdpbGwKLSAgICAgICAgY2F1c2UgYW4gZXhjZXB0aW9uLgotICAgICAgLSBUaGlz
IGlzIGEgc2VjdXJpdHkgaXNzdWUgKHNlZy1mYXVsdHMgY2F1c2VkIGJ5IGRlZXBseSBuZXN0ZWQg
SlNPTiksCi0gICAgICAgIHNvIHRoZSBkZWZhdWx0IGlzIGxvdy4KLSAgICAtIGAiZmFpbElmRXh0
cmEiOiBmYWxzZSBvciB0cnVlYAotICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0dXJucyBm
YWxzZSB3aGVuIGV4dHJhIG5vbi13aGl0ZXNwYWNlIHRyYWlscwotICAgICAgICB0aGUgSlNPTiB2
YWx1ZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgotICAgIC0gYCJyZWplY3REdXBLZXlzIjogZmFsc2Ug
b3IgdHJ1ZWAKLSAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBh
IGtleSBpcyBkdXBsaWNhdGVkIHdpdGhpbiBhbiBvYmplY3QuCi0gICAgLSBgImFsbG93U3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWVgCi0gICAgICAtIElmIHRydWUsIHNwZWNpYWwgZmxvYXQg
dmFsdWVzIChOYU5zIGFuZCBpbmZpbml0aWVzKSBhcmUgYWxsb3dlZCAKLSAgICAgICAgYW5kIHRo
ZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KLQotICAgIFlvdSBjYW4gZXhhbWlu
ZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgotICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4g
YWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKLSAgICBKU09OIFZhbHVlLgot
ICAgIFxzYSBzZXREZWZhdWx0cygpCi0gICAgKi8KLSAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOwot
Ci0gIENoYXJSZWFkZXJCdWlsZGVyKCk7Ci0gIH5DaGFyUmVhZGVyQnVpbGRlcigpOwotCi0gIENo
YXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdDsKLQotICAvKiogXHJldHVybiB0cnVlIGlm
ICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50OwotICAgKiAgIG90aGVyd2lzZSwg
aW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCi0gICAqLwotICBib29sIHZhbGlk
YXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKLQotICAvKiogQSBzaW1wbGUgd2F5IHRv
IHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCi0gICAqLwotICBWYWx1ZSYgb3BlcmF0b3JbXShz
dGQ6OnN0cmluZyBrZXkpOwotCi0gIC8qKiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBjYW4gdXNl
IHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgotICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAo
YnV0IEpzb246Om51bGwgaXMgZmluZSkKLSAgICogXHJlbWFyayBEZWZhdWx0czoKLSAgICogXHNu
aXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRlckRlZmF1
bHRzCi0gICAqLwotICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGlu
Z3MpOwotICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6OnN0cmljdE1vZGUoKS4KLSAgICogXHBy
ZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCi0gICAqIFxyZW1h
cmsgRGVmYXVsdHM6Ci0gICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAg
Q2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCi0gICAqLwotICBzdGF0aWMgdm9pZCBzdHJpY3RN
b2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Ci19OwotCi0vKiogQ29uc3VtZSBlbnRpcmUgc3Ry
ZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KLSAgKiBTb21lZGF5IHdlIG1pZ2h0IGhhdmUgYSBy
ZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcwotICAqIGlzIGNvbnZlbmllbnQuCi0g
ICovCi1ib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbSgKLSAgICBDaGFyUmVhZGVyOjpGYWN0
b3J5IGNvbnN0JiwKLSAgICBzdGQ6OmlzdHJlYW0mLAotICAgIFZhbHVlKiByb290LCBzdGQ6OnN0
cmluZyogZXJycyk7Ci0KLS8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jvb3QnLgot
Ci0gQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KLQotIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9iamVjdC4KLSBG
b3IgZXhhbXBsZToKLSBcY29kZQotIEpzb246OlZhbHVlIHJvb3Q7Ci0gY2luID4+IHJvb3RbImRp
ciJdWyJmaWxlIl07Ci0gY291dCA8PCByb290OwotIFxlbmRjb2RlCi0gUmVzdWx0OgotIFx2ZXJi
YXRpbQotIHsKLSAiZGlyIjogewotICAgICAiZmlsZSI6IHsKLSAgICAgLy8gVGhlIGlucHV0IHN0
cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgotICAgICB9Ci0gfQotIH0KLSBcZW5kdmVy
YmF0aW0KLSBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCi0gXHNlZSBKc29u
OjpvcGVyYXRvcjw8KCkKLSovCi1KU09OX0FQSSBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3Rk
Ojppc3RyZWFtJiwgVmFsdWUmKTsKLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0jaWYgZGVmaW5l
ZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQotI3ByYWdtYSB3YXJuaW5n
KHBvcCkKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9y
ZWFkZXIuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRlci5oCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0KLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxs
ZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZm5kZWYgSlNPTl9XUklURVJfSF9JTkNMVURFRAotI2Rl
ZmluZSBKU09OX1dSSVRFUl9IX0lOQ0xVREVECi0KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKLSNpbmNsdWRlICJ2YWx1ZS5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0j
aW5jbHVkZSA8b3N0cmVhbT4KLQotLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1i
ZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCi0vLyBiZSB1c2VkIGJ5
Li4uCi0jaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQot
I3ByYWdtYSB3YXJuaW5nKHB1c2gpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCi0j
ZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5H
KQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLWNsYXNzIFZhbHVlOwotCi0vKioKLQotVXNhZ2U6Ci1c
Y29kZQotICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKLSAgdm9pZCB3cml0ZVRvU3Rkb3V0KFN0cmVh
bVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHZhbHVlKSB7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gY29uc3Qgd3JpdGVyKAotICAgICAgZmFj
dG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7Ci0gICAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6
Y291dCk7Ci0gICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gK
LSAgfQotXGVuZGNvZGUKLSovCi1jbGFzcyBKU09OX0FQSSBTdHJlYW1Xcml0ZXIgewotcHJvdGVj
dGVkOgotICBzdGQ6Om9zdHJlYW0qIHNvdXRfOyAgLy8gbm90IG93bmVkOyB3aWxsIG5vdCBkZWxl
dGUKLXB1YmxpYzoKLSAgU3RyZWFtV3JpdGVyKCk7Ci0gIHZpcnR1YWwgflN0cmVhbVdyaXRlcigp
OwotICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBjb25maWd1cmVkIGluIHN1Yi1j
bGFzcy4KLSAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBzb3V0LCBidXQgbWFpbnRhaW4g
YSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgotICAgICAgXHByZSBzb3V0ICE9IE5VTEwKLSAg
ICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3ZSBhbHdheXMgcmV0dXJuIHpl
cm8sIHNvIGNoZWNrIHRoZSBzdHJlYW0gaW5zdGVhZC4pCi0gICAgICBcdGhyb3cgc3RkOjpleGNl
cHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCi0gICAqLwotICB2aXJ0
dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KSA9IDA7
Ci0KLSAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5LgotICAgKi8KLSAgY2xh
c3MgSlNPTl9BUEkgRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5GYWN0b3J5KCk7
Ci0gICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygp
LgotICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAo
ZS5nLiBpbnZhbGlkIHNldHRpbmdzKQotICAgICAqLwotICAgIHZpcnR1YWwgU3RyZWFtV3JpdGVy
KiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7Ci0gIH07ICAvLyBGYWN0b3J5Ci19OyAgLy8g
U3RyZWFtV3JpdGVyCi0KLS8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdzdHJlYW0sIHRoZW4g
cmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgotICogQSBTdHJlYW1Xcml0ZXIgd2lsbCBi
ZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRlbGV0ZWQuCi0gKi8K
LXN0ZDo6c3RyaW5nIEpTT05fQVBJIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBj
b25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpOwotCi0KLS8qKiBcYnJpZWYgQnVpbGQg
YSBTdHJlYW1Xcml0ZXIgaW1wbGVtZW50YXRpb24uCi0KLVVzYWdlOgotXGNvZGUKLSAgdXNpbmcg
bmFtZXNwYWNlIEpzb247Ci0gIFZhbHVlIHZhbHVlID0gLi4uOwotICBTdHJlYW1Xcml0ZXJCdWls
ZGVyIGJ1aWxkZXI7Ci0gIGJ1aWxkZXJbImNvbW1lbnRTdHlsZSJdID0gIk5vbmUiOwotICBidWls
ZGVyWyJpbmRlbnRhdGlvbiJdID0gIiAgICI7ICAvLyBvciB3aGF0ZXZlciB5b3UgbGlrZQotICBz
dGQ6OnVuaXF1ZV9wdHI8SnNvbjo6U3RyZWFtV3JpdGVyPiB3cml0ZXIoCi0gICAgICBidWlsZGVy
Lm5ld1N0cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6Y291dCk7
Ci0gIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCi1cZW5kY29k
ZQotKi8KLWNsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlckJ1aWxkZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyOjpGYWN0b3J5IHsKLXB1YmxpYzoKLSAgLy8gTm90ZTogV2UgdXNlIGEgSnNvbjo6VmFs
dWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCi0gIC8vIHdp
dGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCi0gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoaXMg
YnVpbGRlci4KLSAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToKLSAgICAt
ICJjb21tZW50U3R5bGUiOiAiTm9uZSIgb3IgIkFsbCIKLSAgICAtICJpbmRlbnRhdGlvbiI6ICAi
PGFueXRoaW5nPiIKLSAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNlIG9yIHRy
dWUKLSAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBjb2xvbnMK
LSAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gRHJv
cCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1
ZXMuCi0gICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBC
dXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAgICAgIGZlZCB0byBhIGJyb3dzZXIncyBK
YXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQotICAgICAgICBi
cm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCi0gICAgLSAidXNlU3BlY2lh
bEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKLSAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBub24tZmlu
aXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKLSAgICAgICAg
TmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5IiwgYW5k
IG5lZ2F0aXZlIGluZmluaXR5Ci0gICAgICAgIGFzICItSW5maW5pdHkiLgotCi0gICAgWW91IGNh
biBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCi0gICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4g
WW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQotICAgIEpTT04g
VmFsdWUuCi0gICAgXHNhIHNldERlZmF1bHRzKCkKLSAgICAqLwotICBKc29uOjpWYWx1ZSBzZXR0
aW5nc187Ci0KLSAgU3RyZWFtV3JpdGVyQnVpbGRlcigpOwotICB+U3RyZWFtV3JpdGVyQnVpbGRl
cigpOwotCi0gIC8qKgotICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdv
ZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKLSAgICovCi0gIFN0cmVhbVdyaXRlciog
bmV3U3RyZWFtV3JpdGVyKCkgY29uc3Q7Ci0KLSAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGlu
Z3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKLSAgICogICBvdGhlcndpc2UsIGluZGljYXRl
IGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgotICAgKi8KLSAgYm9vbCB2YWxpZGF0ZShKc29u
OjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7Ci0gIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEg
c3BlY2lmaWMgc2V0dGluZy4KLSAgICovCi0gIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5n
IGtleSk7Ci0KLSAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byBy
ZXNldCBzZXR0aW5nc18uCi0gICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6
bnVsbCBpcyBmaW5lKQotICAgKiBccmVtYXJrIERlZmF1bHRzOgotICAgKiBcc25pcHBldCBzcmMv
bGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0cwotICAg
Ki8KLSAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKLX07
Ci0KLS8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCi0gKiBcZGVwcmVjYXRl
ZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlv
biBkZXRhaWwuKQotICovCi1jbGFzcyBKU09OX0FQSSBXcml0ZXIgewotcHVibGljOgotICB2aXJ0
dWFsIH5Xcml0ZXIoKTsKLQotICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVl
JiByb290KSA9IDA7Ci19OwotCi0vKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVG
PSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKLSAqd2l0aG91dCBmb3JtYXR0
aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgotICoKLSAqIFRoZSBKU09OIGRvY3VtZW50IGlzIHdy
aXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVtYW4nCi0g
KmNvbnN1bXB0aW9uLAotICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVhdHVyZSBz
dWNoIGFzIFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgotICogXHNhIFJlYWRlciwgVmFs
dWUKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgotICovCi1jbGFzcyBK
U09OX0FQSSBGYXN0V3JpdGVyIDogcHVibGljIFdyaXRlciB7Ci0KLXB1YmxpYzoKLSAgRmFzdFdy
aXRlcigpOwotICB+RmFzdFdyaXRlcigpIHt9Ci0KLSAgdm9pZCBlbmFibGVZQU1MQ29tcGF0aWJp
bGl0eSgpOwotCi0gIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3
cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCi0gICAqIFN0cmljdGx5IHNwZWFraW5nLCB0
aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCi0gICAq
IGZlZCB0byBhIGJyb3dzZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRw
dXQgYW5kIHRoZQotICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUu
Ci0gICAqLwotICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7Ci0KLSAgdm9pZCBvbWl0RW5k
aW5nTGluZUZlZWQoKTsKLQotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCi0gIHN0
ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKLQotcHJpdmF0ZToKLSAgdm9pZCB3
cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0KLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRf
OwotICBib29sIHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXzsKLSAgYm9vbCBkcm9wTnVsbFBsYWNl
aG9sZGVyc187Ci0gIGJvb2wgb21pdEVuZGluZ0xpbmVGZWVkXzsKLX07Ci0KLS8qKiBcYnJpZWYg
V3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4g
Zm9ybWF0IGluIGEKLSAqaHVtYW4gZnJpZW5kbHkgd2F5LgotICoKLSAqIFRoZSBydWxlcyBmb3Ig
bGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6Ci0gKiAtIE9iamVjdCB2YWx1ZToK
LSAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUg
YnJlYWsKLSAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYg
aW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCi0gKmxpbmUKLSAqICAgICAgIGFuZCB0aGVuIHVu
aW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCi0gKiAtIEFycmF5IHZhbHVlOgot
ICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBi
cmVhawotICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1ZSwgZW1w
dHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQotICp0eXBlcywKLSAqICAgICAgIGFuZCBhbGwg
dGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNp
bmdsZQotICpsaW5lLgotICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRvIG5vdCBm
aXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucwotICogICAgICAgb2JqZWN0IG9y
IG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCi0gKgotICog
SWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBhY2NvcmRp
bmcgdG8gdGhlaXIKLSAqI0NvbW1lbnRQbGFjZW1lbnQuCi0gKgotICogXHNhIFJlYWRlciwgVmFs
dWUsIFZhbHVlOjpzZXRDb21tZW50KCkKLSAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJC
dWlsZGVyLgotICovCi1jbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXIgOiBwdWJsaWMgV3JpdGVy
IHsKLXB1YmxpYzoKLSAgU3R5bGVkV3JpdGVyKCk7Ci0gIH5TdHlsZWRXcml0ZXIoKSB7fQotCi1w
dWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKLSAgLyoqIFxicmllZiBTZXJpYWxpemUg
YSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQu
Ci0gICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KLSAgICogXHJldHVybiBTdHJp
bmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhlIHJvb3Qg
dmFsdWUuCi0gICAqLwotICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0K
LXByaXZhdGU6Ci0gIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICB2b2lk
IHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBib29sIGlzTXVsdGluZUFy
cmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7Ci0gIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7Ci0gIHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgdm9pZCB3cml0ZVdpdGhJbmRl
bnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKLSAgdm9pZCBpbmRlbnQoKTsKLSAgdm9pZCB1
bmluZGVudCgpOwotICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiBy
b290KTsKLSAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1
ZSYgcm9vdCk7Ci0gIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7
Ci0gIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJpbmcmIHRl
eHQpOwotCi0gIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwot
Ci0gIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwot
ICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBpbnQg
aW5kZW50U2l6ZV87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOwotfTsKLQotLyoqIFxicmllZiBX
cml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQgaW4gYQotIGh1bWFuIGZyaWVuZGx5IHdheSwKLSAgICAgdG8gYSBzdHJlYW0gcmF0aGVy
IHRoYW4gdG8gYSBzdHJpbmcuCi0gKgotICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBp
bmRlbnQgYXJlIGFzIGZvbGxvdzoKLSAqIC0gT2JqZWN0IHZhbHVlOgotICogICAgIC0gaWYgZW1w
dHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhawotICogICAgIC0g
aWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9u
ZSB2YWx1ZSBwZXIKLSBsaW5lCi0gKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBi
cmVhayBhbmQgcHJpbnQgJ30nLgotICogLSBBcnJheSB2YWx1ZToKLSAqICAgICAtIGlmIGVtcHR5
IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKLSAqICAgICAtIGlm
IHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUg
b3RoZXIgdmFsdWUKLSB0eXBlcywKLSAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24g
b25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQotIGxpbmUuCi0gKiAg
ICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3Ig
dGhlIGFycmF5IGNvbnRhaW5zCi0gKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0
aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KLSAqCi0gKiBJZiB0aGUgVmFsdWUgaGF2ZSBj
b21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgotICNDb21t
ZW50UGxhY2VtZW50LgotICoKLSAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwg
YmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCi0gKiBcc2EgUmVhZGVyLCBWYWx1ZSwg
VmFsdWU6OnNldENvbW1lbnQoKQotICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxk
ZXIuCi0gKi8KLWNsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlciB7Ci1wdWJsaWM6Ci0g
IFN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIpOwotICB+
U3R5bGVkU3RyZWFtV3JpdGVyKCkge30KLQotcHVibGljOgotICAvKiogXGJyaWVmIFNlcmlhbGl6
ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1h
dC4KLSAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8gd3JpdGUgdG8uIChDYW4gYmUgb3N0cmluZ3N0
cmVhbSwgZS5nLikKLSAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgotICAgKiBc
bm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2luY2Ugd3Jp
dGUoKSBzaG91bGQgbm90Ci0gICAqIHJldHVybiBhIHZhbHVlLgotICAgKi8KLSAgdm9pZCB3cml0
ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOwotCi1wcml2YXRlOgotICB2
b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUFycmF5VmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKLSAgYm9vbCBpc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpOwotICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwot
ICB2b2lkIHdyaXRlSW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6
c3RyaW5nJiB2YWx1ZSk7Ci0gIHZvaWQgaW5kZW50KCk7Ci0gIHZvaWQgdW5pbmRlbnQoKTsKLSAg
dm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Ci0gIHZvaWQg
d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpOwotICBi
b29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwotICBzdGF0aWMgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKLQotICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKLQotICBDaGlsZFZhbHVl
cyBjaGlsZFZhbHVlc187Ci0gIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOwotICBzdGQ6OnN0cmlu
ZyBpbmRlbnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRhdGlvbl87Ci0gIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKLSAgYm9vbCBpbmRlbnRlZF8g
OiAxOwotfTsKLQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1zdGQ6OnN0cmluZyBKU09O
X0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1
ZVRvU3RyaW5nKFVJbnQgdmFsdWUpOwotI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCi1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUp
Owotc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSk7
Ci1zdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSk7Ci1zdGQ6
OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOwotc3RkOjpzdHJpbmcg
SlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSk7Ci0KLS8vLyBc
YnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCi0vLy8gXHNlZSBKc29u
OjpvcGVyYXRvcj4+KCkKLUpTT05fQVBJIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mLCBjb25zdCBWYWx1ZSYgcm9vdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI2lm
IGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKLSNwcmFnbWEg
d2FybmluZyhwb3ApCi0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lO
VEVSRkFDRV9XQVJOSU5HKQotCi0jZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURFRAotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24v
d3JpdGVyLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3NlcnRpb25z
LmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgot
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VSVElPTlNf
SF9JTkNMVURFRAotI2RlZmluZSBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAotCi0j
aW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLQotI2lmICFkZWZpbmVkKEpT
T05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotCi0vKiogSXQgc2hvdWxkIG5vdCBiZSBwb3Nz
aWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCi0gKiAgY2F1c2UgYW4gYWJv
cnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5Ci0gKiAgZm9y
IHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3JzLgotICov
Ci0jaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0KLS8vIEB0b2RvIDw9IGFkZCBkZXRhaWwgYWJvdXQg
Y29uZGl0aW9uIGluIGV4Y2VwdGlvbgotIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0aW9uKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAge2lmICgh
KGNvbmRpdGlvbikpIHtKc29uOjp0aHJvd0xvZ2ljRXJyb3IoICJhc3NlcnQganNvbiBmYWlsZWQi
ICk7fX0KLQotIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpzb246OnRocm93TG9naWNFcnJvcihvc3Mu
c3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBh
Ym9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gIH0KLQotI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBUSU9OCi0K
LSMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikKLQotLy8g
VGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4gZGVi
dWcgYnVpbGRzLiBJbgotLy8gcmVsZWFzZSBidWlsZHMgd2UgYWJvcnQsIGZvciBhIGNvcmUtZHVt
cCBvciBkZWJ1Z2dlci4KLSMgZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhc3NlcnQoZmFsc2UgJiYgb3Nz
LnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICB9Ci0KLQotI2VuZGlmCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpTT05fRkFJTF9NRVNT
QUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgfQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQK
LQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9q
c29uL2Fzc2VydGlvbnMuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLQotCi0KLSNlbmRpZiAvL2lm
bmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy9qc29uY3BwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYzMjg3MzI3YzBk
NjYzMjE1MDVlYWQyZDJlZTQ2N2U3MzlmMTVlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTI2NiArMCwwIEBACi0vLy8gSnNvbi1jcHAgYW1hbGdh
dGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuCi0vLy8gSXQgaXMg
aW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29uL2pzb24uaCIKLQotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotCi0vKgotVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBp
bmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24sIAotdGVzdHMgYW5kIGRlbW9uc3Ry
YXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZwotY29u
ZGl0aW9ucy4uLgotCi1UaGUgYXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkg
ZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCi1qdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6
ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKLXRoaXMgc29mdHdh
cmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERvbWFpbi4KLQotSW4ganVyaXNkaWN0aW9u
cyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2Vy
bWFueSBhcyBvZgotMjAxMCksIHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIw
MTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMKLXJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdykuCi0KLUluIGp1cmlzZGljdGlvbnMgd2hp
Y2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCi1z
b2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFp
biwgMikgdW5kZXIgdGhlIAotY29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxv
dyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBkdWFsIAotUHVibGljIERvbWFpbi9NSVQgTGlj
ZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KLQotVGhlIE1J
VCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNl
IGNhbiBnZXQsIGFuZCBpcwotZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0Ogot
Ci0gICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCi0gICAKLVRoZSBm
dWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxvd3M6Ci0KLT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Q29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0KLVBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCi1vYnRhaW5p
bmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgot
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAot
cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksCi1tb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMKLW9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi1mdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotaW5jbHVkZWQgaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCi1NRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORAotTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUwotQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCi1BQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotQ09OTkVDVElPTiBXSVRI
IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotU09GVFdB
UkUuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLShFTkQgTElDRU5TRSBURVhUKQotCi1UaGUgTUlUIGxpY2Vu
c2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAotc29mdHdh
cmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRo
IHRoZQotbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZQotYW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5v
dGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUKLVB1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlv
dSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKLWxpY2Vuc2UgeW91IGxp
a2UuCi0KLSovCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6
IExJQ0VOU0UKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0KLSNpbmNsdWRlICJqc29uL2pz
b24uaCIKLQotI2lmbmRlZiBKU09OX0lTX0FNQUxHQU1BVElPTgotI2Vycm9yICJDb21waWxlIHdp
dGggLUkgUEFUSF9UT19KU09OX0RJUkVDVE9SWSIKLSNlbmRpZgotCi0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3Rv
b2wuaAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9P
TF9IX0lOQ0xVREVECi0jZGVmaW5lIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECi0K
LS8qIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGNvbW1vbiBzdHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBv
cnQsIHN1Y2ggYXMgVVRGLTgsCi0gKiBwb3J0YWJsZSBjb252ZXJzaW9uIGZyb20vdG8gc3RyaW5n
Li4uCi0gKgotICogSXQgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIHRoYXQgbXVzdCBub3QgYmUgZXhw
b3NlZC4KLSAqLwotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vLyBDb252ZXJ0cyBhIHVuaWNvZGUg
Y29kZS1wb2ludCB0byBVVEYtOC4KLXN0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgY29kZVBvaW50
VG9VVEY4KHVuc2lnbmVkIGludCBjcCkgewotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0KLSAgLy8g
YmFzZWQgb24gZGVzY3JpcHRpb24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VU
Ri04Ci0KLSAgaWYgKGNwIDw9IDB4N2YpIHsKLSAgICByZXN1bHQucmVzaXplKDEpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweDdG
RikgewotICAgIHJlc3VsdC5yZXNpemUoMik7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKLSAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxj
aGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKLSAgfSBlbHNlIGlmIChjcCA8PSAweEZG
RkYpIHsKLSAgICByZXN1bHQucmVzaXplKDMpOwotICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzBdID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhFMCB8ICgweGYgJiAoY3AgPj4gMTIpKSk7Ci0gIH0gZWxzZSBpZiAoY3Ag
PD0gMHgxMEZGRkYpIHsKLSAgICByZXN1bHQucmVzaXplKDQpOwotICAgIHJlc3VsdFszXSA9IHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgcmVzdWx0WzJdID0gc3Rh
dGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7Ci0gICAgcmVzdWx0WzFd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOwotICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOwot
ICB9Ci0KLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8vIFJldHVybnMgdHJ1ZSBpZiBjaCBpcyBh
IGNvbnRyb2wgY2hhcmFjdGVyIChpbiByYW5nZSBbMSwzMV0pLgotc3RhdGljIGlubGluZSBib29s
IGlzQ29udHJvbENoYXJhY3RlcihjaGFyIGNoKSB7IHJldHVybiBjaCA+IDAgJiYgY2ggPD0gMHgx
RjsgfQotCi1lbnVtIHsKLSAgLy8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQgdG8KLSAgLy8vIHVpbnRUb1N0cmluZy4KLSAg
dWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMgKiBzaXplb2YoTGFyZ2VzdFVJbnQpICsgMQotfTsK
LQotLy8gRGVmaW5lcyBhIGNoYXIgYnVmZmVyIGZvciB1c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4K
LXR5cGVkZWYgY2hhciBVSW50VG9TdHJpbmdCdWZmZXJbdWludFRvU3RyaW5nQnVmZmVyU2l6ZV07
Ci0KLS8qKiBDb252ZXJ0cyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRvIHN0cmluZy4KLSAqIEBwYXJh
bSB2YWx1ZSBVbnNpZ25lZCBpbnRlcmdlciB0byBjb252ZXJ0IHRvIHN0cmluZwotICogQHBhcmFt
IGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZmZXIuCi0gKiAgICAgICAgTXVzdCBoYXZl
IGF0IGxlYXN0IHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgY2hhcnMgZnJlZS4KLSAqLwotc3RhdGlj
IGlubGluZSB2b2lkIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSwgY2hhciomIGN1cnJl
bnQpIHsKLSAgKi0tY3VycmVudCA9IDA7Ci0gIGRvIHsKLSAgICAqLS1jdXJyZW50ID0gc3RhdGlj
X2Nhc3Q8c2lnbmVkIGNoYXI+KHZhbHVlICUgMTBVICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCcw
JykpOwotICAgIHZhbHVlIC89IDEwOwotICB9IHdoaWxlICh2YWx1ZSAhPSAwKTsKLX0KLQotLyoq
IENoYW5nZSAnLCcgdG8gJy4nIGV2ZXJ5d2hlcmUgaW4gYnVmZmVyLgotICoKLSAqIFdlIGhhZCBh
IHNvcGhpc3RpY2F0ZWQgd2F5LCBidXQgaXQgZGlkIG5vdCB3b3JrIGluIFdpbkNFLgotICogQHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3B1bGwvOQot
ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgZml4TnVtZXJpY0xvY2FsZShjaGFyKiBiZWdpbiwgY2hh
ciogZW5kKSB7Ci0gIHdoaWxlIChiZWdpbiA8IGVuZCkgewotICAgIGlmICgqYmVnaW4gPT0gJywn
KSB7Ci0gICAgICAqYmVnaW4gPSAnLic7Ci0gICAgfQotICAgICsrYmVnaW47Ci0gIH0KLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbiB7Ci0KLSNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xf
SF9JTkNMVURFRAotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxl
OiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi0KLQotCi0K
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9s
aWJfanNvbi9qc29uX3JlYWRlci5jcHAKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLy8gQ29weXJpZ2h0
IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgot
I2luY2x1ZGUgPGpzb24vcmVhZGVyLmg+Ci0jaW5jbHVkZSA8anNvbi92YWx1ZS5oPgotI2luY2x1
ZGUgImpzb25fdG9vbC5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFU
SU9OKQotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotI2luY2x1ZGUgPGNh
c3NlcnQ+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxpc3RyZWFtPgotI2luY2x1ZGUg
PHNzdHJlYW0+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDxs
aW1pdHM+Ci0KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2lmICFkZWZpbmVkKFdJTkNFKSAmJiBk
ZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9NU0NfVkVSID49IDE1MDAgLy8gVkMrKyA5
LjAgYW5kIGFib3ZlIAotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNlbGlmIF9NU0NfVkVS
ID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNu
cHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotI2VsaWYg
ZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQotI2RlZmluZSBzbnBy
aW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19RTlhOVE9fXykKLSNk
ZWZpbmUgc3NjYW5mIHN0ZDo6c3NjYW5mCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX01TQ19WRVIp
ICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4LjAKLS8vIERpc2FibGUgd2FybmluZyBhYm91
dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5
NikKLSNlbmRpZgotCi1zdGF0aWMgaW50IGNvbnN0IHN0YWNrTGltaXRfZyA9IDEwMDA7Ci1zdGF0
aWMgaW50ICAgICAgIHN0YWNrRGVwdGhfZyA9IDA7ICAvLyBzZWUgcmVhZFZhbHVlKCkKLQotbmFt
ZXNwYWNlIEpzb24gewotCi0jaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAoZGVmaW5lZChf
Q1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIwKQotdHlwZWRlZiBzdGQ6OnVuaXF1ZV9w
dHI8Q2hhclJlYWRlcj4gQ2hhclJlYWRlclB0cjsKLSNlbHNlCi10eXBlZGVmIHN0ZDo6YXV0b19w
dHI8Q2hhclJlYWRlcj4gICBDaGFyUmVhZGVyUHRyOwotI2VuZGlmCi0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIEZlYXR1cmVzCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1GZWF0dXJlczo6RmVhdHVyZXMoKQotICAgIDogYWxsb3dDb21tZW50c18odHJ1ZSksIHN0
cmljdFJvb3RfKGZhbHNlKSwKLSAgICAgIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKGZh
bHNlKSwgYWxsb3dOdW1lcmljS2V5c18oZmFsc2UpIHt9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjph
bGwoKSB7IHJldHVybiBGZWF0dXJlcygpOyB9Ci0KLUZlYXR1cmVzIEZlYXR1cmVzOjpzdHJpY3RN
b2RlKCkgewotICBGZWF0dXJlcyBmZWF0dXJlczsKLSAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18g
PSBmYWxzZTsKLSAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICBmZWF0dXJlcy5hbGxv
d0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IGZhbHNlOwotICBmZWF0dXJlcy5hbGxvd051bWVy
aWNLZXlzXyA9IGZhbHNlOwotICByZXR1cm4gZmVhdHVyZXM7Ci19Ci0KLS8vIEltcGxlbWVudGF0
aW9uIG9mIGNsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJl
YWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKLSAg
ICBpZiAoKmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCi0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci1SZWFkZXI6OlJlYWRlcigpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8o
KSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVf
KCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oRmVhdHVyZXM6OmFsbCgpKSwKLSAgICAg
IGNvbGxlY3RDb21tZW50c18oKSB7fQotCi1SZWFkZXI6OlJlYWRlcihjb25zdCBGZWF0dXJlcyYg
ZmVhdHVyZXMpCi0gICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygp
LCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1l
bnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgewot
fQotCi1ib29sCi1SZWFkZXI6OnBhcnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFs
dWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGRvY3VtZW50XyA9IGRvY3VtZW50
OwotICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOwotICBjb25zdCBjaGFy
KiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsKLSAgcmV0dXJuIHBhcnNlKGJlZ2lu
LCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpwYXJzZShz
dGQ6OmlzdHJlYW0mIHNpbiwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0g
IC8vIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBiZWdpbihzaW4pOwotICAvLyBzdGQ6Omlz
dHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOwotICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1l
ZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKLSAgLy8gdGVtcGxhdGUgZnVu
Y3Rpb24uCi0KLSAgLy8gU2luY2Ugc3RkOjpzdHJpbmcgaXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRo
aXMgYXQgbGVhc3QgZG9lcyBub3QKLSAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHkuCi0gIHN0ZDo6
c3RyaW5nIGRvYzsKLSAgc3RkOjpnZXRsaW5lKHNpbiwgZG9jLCAoY2hhcilFT0YpOwotICByZXR1
cm4gcGFyc2UoZG9jLCByb290LCBjb2xsZWN0Q29tbWVudHMpOwotfQotCi1ib29sIFJlYWRlcjo6
cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogZW5kRG9jLAotICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29t
bWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8g
PSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERvYzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxl
Y3RDb21tZW50czsKLSAgY3VycmVudF8gPSBiZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwot
ICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xl
YXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5v
ZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFja0RlcHRoX2cgPSAwOyAgLy8gWWVzLCB0aGlzIGlz
IGJhZCBjb2RpbmcsIGJ1dCBvcHRpb25zIGFyZSBsaW1pdGVkLgotICBib29sIHN1Y2Nlc3NmdWwg
PSByZWFkVmFsdWUoKTsKLSAgVG9rZW4gdG9rZW47Ci0gIHNraXBDb21tZW50VG9rZW5zKHRva2Vu
KTsKLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQot
ICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7Ci0gIGlm
IChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFy
b290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBv
ZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAgICAvLyBpbiBk
b2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2VuLnN0YXJ0XyA9
IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFkZEVycm9yKAot
ICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkg
b3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9vbCBSZWFkZXI6
OnJlYWRWYWx1ZSgpIHsKLSAgLy8gVGhpcyBpcyBhIG5vbi1yZWVudHJhbnQgd2F5IHRvIHN1cHBv
cnQgYSBzdGFja0xpbWl0LiBUZXJyaWJsZSEKLSAgLy8gQnV0IHRoaXMgZGVwcmVjYXRlZCBjbGFz
cyBoYXMgYSBzZWN1cml0eSBwcm9ibGVtOiBCYWQgaW5wdXQgY2FuCi0gIC8vIGNhdXNlIGEgc2Vn
LWZhdWx0LiBUaGlzIHNlZW1zIGxpa2UgYSBmYWlyLCBiaW5hcnktY29tcGF0aWJsZSB3YXkKLSAg
Ly8gdG8gcHJldmVudCB0aGUgcHJvYmxlbS4KLSAgaWYgKHN0YWNrRGVwdGhfZyA+PSBzdGFja0xp
bWl0X2cpIHRocm93UnVudGltZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1
ZSgpLiIpOwotICArK3N0YWNrRGVwdGhfZzsKLQotICBUb2tlbiB0b2tlbjsKLSAgc2tpcENvbW1l
bnRUb2tlbnModG9rZW4pOwotICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOwotCi0gIGlmIChjb2xs
ZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkgewotICAgIGN1cnJlbnRW
YWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKLSAgICBj
b21tZW50c0JlZm9yZV8gPSAiIjsKLSAgfQotCi0gIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKLSAg
Y2FzZSB0b2tlbk9iamVjdEJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2Vu
KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7
Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5BcnJheUJlZ2luOgotICAgIHN1Y2Nlc3NmdWwgPSBy
ZWFkQXJyYXkodG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJl
bnRfIC0gYmVnaW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51bWJlcjoKLSAgICBzdWNj
ZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2VuKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlblN0
cmluZzoKLSAgICBzdWNjZXNzZnVsID0gZGVjb2RlU3RyaW5nKHRva2VuKTsKLSAgICBicmVhazsK
LSAgY2FzZSB0b2tlblRydWU6Ci0gICAgewotICAgIFZhbHVlIHYodHJ1ZSk7Ci0gICAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9r
ZW5GYWxzZToKLSAgICB7Ci0gICAgVmFsdWUgdihmYWxzZSk7Ci0gICAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4u
c3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tl
bi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OdWxsOgot
ICAgIHsKLSAgICBWYWx1ZSB2OwotICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7
Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
Ci0gICAgfQotICAgIGJyZWFrOwotICBjYXNlIHRva2VuQXJyYXlTZXBhcmF0b3I6Ci0gIGNhc2Ug
dG9rZW5PYmplY3RFbmQ6Ci0gIGNhc2UgdG9rZW5BcnJheUVuZDoKLSAgICBpZiAoZmVhdHVyZXNf
LmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKSB7Ci0gICAgICAvLyAiVW4tcmVhZCIgdGhl
IGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1cnJlbnQgdmFsdWUgYXMgYSBudWxsCi0gICAg
ICAvLyB0b2tlbi4KLSAgICAgIGN1cnJlbnRfLS07Ci0gICAgICBWYWx1ZSB2OwotICAgICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEpOwotICAgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwotICAgICAgYnJlYWs7Ci0gICAgfSAvLyBF
bHNlLCBmYWxsIHRocm91Z2guLi4KLSAgZGVmYXVsdDoKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIHJldHVybiBhZGRFcnJvcigi
U3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsK
LSAgfQotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgbGFzdFZhbHVlRW5kXyA9IGN1
cnJlbnRfOwotICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7Ci0gIH0KLQotICAtLXN0
YWNrRGVwdGhfZzsKLSAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19Ci0KLXZvaWQgUmVhZGVyOjpza2lw
Q29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKLSAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1l
bnRzXykgewotICAgIGRvIHsKLSAgICAgIHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfSB3aGlsZSAo
dG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKLSAgfSBlbHNlIHsKLSAgICByZWFkVG9rZW4o
dG9rZW4pOwotICB9Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7
Ci0gIHNraXBTcGFjZXMoKTsKLSAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gIENoYXIgYyA9
IGdldE5leHRDaGFyKCk7Ci0gIGJvb2wgb2sgPSB0cnVlOwotICBzd2l0Y2ggKGMpIHsKLSAgY2Fz
ZSAneyc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgIGJyZWFrOwot
ICBjYXNlICd9JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOwotICAgIGJyZWFr
OwotICBjYXNlICdbJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXSc6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOwotICAg
IGJyZWFrOwotICBjYXNlICciJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOwotICAg
IG9rID0gcmVhZFN0cmluZygpOwotICAgIGJyZWFrOwotICBjYXNlICcvJzoKLSAgICB0b2tlbi50
eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21tZW50KCk7Ci0gICAgYnJlYWs7
Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6Ci0gIGNhc2UgJzMnOgotICBj
YXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBjYXNlICc3JzoKLSAgY2FzZSAn
OCc6Ci0gIGNhc2UgJzknOgotICBjYXNlICctJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVt
YmVyOwotICAgIHJlYWROdW1iZXIoKTsKLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9r
ZW4udHlwZV8gPSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9
IG1hdGNoKCJhbHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5
cGVfID0gdG9rZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwot
ICBjYXNlICcsJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgJzonOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0
b3I7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgMDoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZT
dHJlYW07Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgb2sgPSBmYWxzZTsKLSAgICBicmVh
azsKLSAgfQotICBpZiAoIW9rKQotICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9r
ZW4uZW5kXyA9IGN1cnJlbnRfOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZWFkZXI6OnNr
aXBTcGFjZXMoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0g
KmN1cnJlbnRfOwotICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8
IGMgPT0gJ1xuJykKLSAgICAgICsrY3VycmVudF87Ci0gICAgZWxzZQotICAgICAgYnJlYWs7Ci0g
IH0KLX0KLQotYm9vbCBSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJu
TGVuZ3RoKSB7Ci0gIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKLSAgd2hpbGUgKGluZGV4
LS0pCi0gICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKLSAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKLSAgTG9jYXRpb24gY29tbWVudEJl
Z2luID0gY3VycmVudF8gLSAxOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIHN1
Y2Nlc3NmdWwgPSBmYWxzZTsKLSAgaWYgKGMgPT0gJyonKQotICAgIHN1Y2Nlc3NmdWwgPSByZWFk
Q1N0eWxlQ29tbWVudCgpOwotICBlbHNlIGlmIChjID09ICcvJykKLSAgICBzdWNjZXNzZnVsID0g
cmVhZENwcFN0eWxlQ29tbWVudCgpOwotICBpZiAoIXN1Y2Nlc3NmdWwpCi0gICAgcmV0dXJuIGZh
bHNlOwotCi0gIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Ci0gICAgQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOwotICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250
YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgewotICAgICAgaWYgKGMg
IT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCi0gICAg
ICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7Ci0gICAgfQotCi0gICAgYWRk
Q29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOwotICB9Ci0gIHJldHVy
biB0cnVlOwotfQotCi1zdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKFJlYWRlcjo6TG9j
YXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5kKSB7Ci0gIHN0ZDo6c3RyaW5nIG5vcm1h
bGl6ZWQ7Ci0gIG5vcm1hbGl6ZWQucmVzZXJ2ZShlbmQgLSBiZWdpbik7Ci0gIFJlYWRlcjo6TG9j
YXRpb24gY3VycmVudCA9IGJlZ2luOwotICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKLSAgICBj
aGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICdccicpIHsKLSAgICAgIGlmIChjdXJy
ZW50ICE9IGVuZCAmJiAqY3VycmVudCA9PSAnXG4nKQotICAgICAgICAgLy8gY29udmVydCBkb3Mg
RU9MCi0gICAgICAgICArK2N1cnJlbnQ7Ci0gICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKLSAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKLSAgICB9IGVsc2UgewotICAgICAgbm9ybWFsaXplZCArPSBj
OwotICAgIH0KLSAgfQotICByZXR1cm4gbm9ybWFsaXplZDsKLX0KLQotdm9pZAotUmVhZGVyOjph
ZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpz
dHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFj
ZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVf
ICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50
KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQot
fQotCi1ib29sIFJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
KicgJiYgKmN1cnJlbnRfID09ICcvJykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXRO
ZXh0Q2hhcigpID09ICcvJzsKLX0KLQotYm9vbCBSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQo
KSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENo
YXIoKTsKLSAgICBpZiAoYyA9PSAnXG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xy
JykgewotICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4g
YWRkQ29tbWVudC4KLSAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAn
XG4nKQotICAgICAgICBnZXROZXh0Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkg
RU9MLgotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi12b2lk
IFJlYWRlcjo6cmVhZE51bWJlcigpIHsKLSAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOwotICBj
aGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCi0g
IC8vIGludGVncmFsIHBhcnQKLSAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKLSAgLy8gZnJhY3Rpb25hbCBwYXJ0
Ci0gIGlmIChjID09ICcuJykgewotICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgLy8gZXhwb25lbnRpYWwgcGFydAot
ICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBl
bmRfID8gKnArKyA6IDA7Ci0gICAgaWYgKGMgPT0gJysnIHx8IGMgPT0gJy0nKQotICAgICAgYyA9
IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIHdoaWxlIChjID49ICcwJyAm
JiBjIDw9ICc5JykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsK
LSAgfQotfQotCi1ib29sIFJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAg
d2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBp
ZiAoYyA9PSAnXFwnKQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICci
JykKLSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotYm9vbCBSZWFk
ZXI6OnJlYWRPYmplY3QoVG9rZW4mIHRva2VuU3RhcnQpIHsKLSAgVG9rZW4gdG9rZW5OYW1lOwot
ICBzdGQ6OnN0cmluZyBuYW1lOwotICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKLSAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKLSAgd2hpbGUgKHJlYWRUb2tlbih0b2tl
bk5hbWUpKSB7Ci0gICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKHRv
a2VuTmFtZS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCi0gICAgICBp
bml0aWFsVG9rZW5PayA9IHJlYWRUb2tlbih0b2tlbk5hbWUpOwotICAgIGlmICghaW5pdGlhbFRv
a2VuT2spCi0gICAgICBicmVhazsKLSAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2Jq
ZWN0RW5kICYmIG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBuYW1lID0gIiI7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmlu
ZykgewotICAgICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKLSAgICAgICAg
cmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOwotICAgIH0gZWxzZSBpZiAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNL
ZXlzXykgewotICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKLSAgICAgIGlmICghZGVjb2RlTnVtYmVy
KHRva2VuTmFtZSwgbnVtYmVyTmFtZSkpCi0gICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHRva2VuT2JqZWN0RW5kKTsKLSAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIFRva2VuIGNvbG9uOwotICAg
IGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFy
YXRvcikgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAiTWlz
c2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5k
KTsKLSAgICB9Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07Ci0gICAg
bm9kZXNfLnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9k
ZXNfLnBvcCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1
cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7Ci0KLSAgICBUb2tlbiBjb21tYTsK
LSAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKLSAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRv
a2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKLSAg
ICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkpIHsKLSAgICAgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3Qg
ZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RFbmQpOwotICAgIH0KLSAgICBib29sIGZp
bmFsaXplVG9rZW5PayA9IHRydWU7Ci0gICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29t
bWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCi0gICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9r
ZW4oY29tbWEpOwotICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKLSAgICAg
IHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAi
TWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLCB0b2tlbk9iamVj
dEVuZCk7Ci19Ci0KLWJvb2wgUmVhZGVyOjpyZWFkQXJyYXkoVG9rZW4mIHRva2VuU3RhcnQpIHsK
LSAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
aW5pdCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRf
IC0gYmVnaW5fKTsKLSAgc2tpcFNwYWNlcygpOwotICBpZiAoKmN1cnJlbnRfID09ICddJykgLy8g
ZW1wdHkgYXJyYXkKLSAgewotICAgIFRva2VuIGVuZEFycmF5OwotICAgIHJlYWRUb2tlbihlbmRB
cnJheSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgaW50IGluZGV4ID0gMDsKLSAgZm9yICg7
OykgewotICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOwotICAgIG5v
ZGVzXy5wdXNoKCZ2YWx1ZSk7Ci0gICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgIG5vZGVz
Xy5wb3AoKTsKLSAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgcmV0dXJu
IHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7Ci0KLSAgICBUb2tlbiB0b2tlbjsKLSAg
ICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgotICAgIG9r
ID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21t
ZW50ICYmIG9rKSB7Ci0gICAgICBvayA9IHJlYWRUb2tlbih0b2tlbik7Ci0gICAgfQotICAgIGJv
b2wgYmFkVG9rZW5UeXBlID0KLSAgICAgICAgKHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBh
cmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCk7Ci0gICAgaWYgKCFvayB8fCBi
YWRUb2tlblR5cGUpIHsKLSAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAg
ICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tl
bkFycmF5RW5kKTsKLSAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQp
Ci0gICAgICBicmVhazsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRl
Y29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKLSAgVmFsdWUgZGVjb2RlZDsKLSAgaWYgKCFkZWNv
ZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQotICAgIHJldHVybiBmYWxzZTsKLSAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFk
ZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7Ci0gIC8vIEF0
dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBp
cwotICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50
ZWdlciB0aGVuCi0gIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgotICBMb2Nh
dGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwotICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVu
dCA9PSAnLSc7Ci0gIGlmIChpc05lZ2F0aXZlKQotICAgICsrY3VycmVudDsKLSAgLy8gVE9ETzog
SGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBn
ZXQgcmlkIG9mIHRoZW0uCi0gIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQot
ICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdElu
dCkgKyAxCi0gICAgICAgICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OwotICBWYWx1
ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5kXykg
ewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykK
LSAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgIFZhbHVlOjpV
SW50IGRpZ2l0KGMgLSAnMCcpOwotICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKLSAgICAg
IC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJv
dW5kZWQgZG93bikuIElmCi0gICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUg
bGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFuZAotICAgICAgLy8gYykgaXQncyBz
bWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCi0g
ICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQg
b3ZlcmZsb3cuCi0gICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVudCAhPSB0b2tl
bi5lbmRfIHx8Ci0gICAgICAgICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkgewotICAg
ICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKLSAgICAgIH0KLSAgICB9
Ci0gICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0gIH0KLSAgaWYgKGlzTmVnYXRpdmUg
JiYgdmFsdWUgPT0gbWF4SW50ZWdlclZhbHVlKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6bWluTGFy
Z2VzdEludDsKLSAgZWxzZSBpZiAoaXNOZWdhdGl2ZSkKLSAgICBkZWNvZGVkID0gLVZhbHVlOjpM
YXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50
KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7
Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwot
ICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwot
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQp
IHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0
XywgdG9rZW4uZW5kXyk7Ci0gIHN0ZDo6aXN0cmluZ3N0cmVhbSBpcyhidWZmZXIpOwotICBpZiAo
IShpcyA+PiB2YWx1ZSkpCi0gICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5nKHRv
a2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKwotICAgICAgICAgICAgICAgICAgICAgICAgIicgaXMg
bm90IGEgbnVtYmVyLiIsCi0gICAgICAgICAgICAgICAgICAgIHRva2VuKTsKLSAgZGVjb2RlZCA9
IHZhbHVlOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhU
b2tlbiYgdG9rZW4pIHsKLSAgc3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7Ci0gIGlmICghZGVj
b2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCi0gICAgcmV0dXJuIGZhbHNlOwotICBW
YWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKLSAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoZGVjb2RlZCk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8g
LSBiZWdpbl8pOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKSB7Ci0gIGRlY29kZWQucmVzZXJ2
ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7Ci0gIExvY2F0aW9uIGN1cnJlbnQgPSB0
b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJwotICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRf
IC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCi0gIHdoaWxlIChjdXJyZW50ICE9IGVu
ZCkgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJyInKQotICAgICAg
YnJlYWs7Ci0gICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7Ci0gICAgICBpZiAoY3VycmVudCA9PSBl
bmQpCi0gICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0
cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAgIENoYXIgZXNjYXBlID0gKmN1cnJlbnQrKzsK
LSAgICAgIHN3aXRjaCAoZXNjYXBlKSB7Ci0gICAgICBjYXNlICciJzoKLSAgICAgICAgZGVjb2Rl
ZCArPSAnIic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnLyc6Ci0gICAgICAgIGRlY29k
ZWQgKz0gJy8nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgZGVj
b2RlZCArPSAnXFwnOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2InOgotICAgICAgICBk
ZWNvZGVkICs9ICdcYic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnZic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJ1xmJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICduJzoKLSAgICAg
ICAgZGVjb2RlZCArPSAnXG4nOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ3InOgotICAg
ICAgICBkZWNvZGVkICs9ICdccic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAndCc6Ci0g
ICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICd1Jzog
ewotICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAgICAgaWYgKCFkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQotICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7
Ci0gICAgICB9IGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGFkZEVycm9y
KCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKLSAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgZGVjb2RlZCArPSBjOwotICAgIH0KLSAgfQotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4m
IHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNv
ZGUpIHsKLQotICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVu
dCwgZW5kLCB1bmljb2RlKSkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIGlmICh1bmljb2RlID49IDB4
RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgewotICAgIC8vIHN1cnJvZ2F0ZSBwYWlycwotICAg
IGlmIChlbmQgLSBjdXJyZW50IDwgNikKLSAgICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAg
ICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1
cnJvZ2F0ZSBwYWlyLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7Ci0g
ICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7Ci0gICAgaWYgKCooY3VycmVudCsrKSA9PSAn
XFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKLSAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNj
YXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpcikpIHsKLSAgICAg
ICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsgKHN1cnJv
Z2F0ZVBhaXIgJiAweDNGRik7Ci0gICAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gZWxzZQotICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3RpbmcgYW5vdGhlciBcXHUg
dG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKLSAgICAgICAgICAgICAgICAgICAg
ICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKLSAgICAgICAgICAgICAgICAgICAgICB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50KTsKLSAgfQotICByZXR1cm4gdHJ1ZTsK
LX0KLQotYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9r
ZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBj
dXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlv
biBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSkgewotICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCi0gICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzog
Zm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKLSAgICAgICAgdG9rZW4sCi0gICAgICAgIGN1cnJlbnQp
OwotICB1bmljb2RlID0gMDsKLSAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5k
ZXgpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIHVuaWNvZGUgKj0gMTY7Ci0gICAg
aWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQotICAgICAgdW5pY29kZSArPSBjIC0gJzAnOwotICAg
IGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQotICAgICAgdW5pY29kZSArPSBjIC0gJ2En
ICsgMTA7Ci0gICAgZWxzZSBpZiAoYyA+PSAnQScgJiYgYyA8PSAnRicpCi0gICAgICB1bmljb2Rl
ICs9IGMgLSAnQScgKyAxMDsKLSAgICBlbHNlCi0gICAgICByZXR1cm4gYWRkRXJyb3IoCi0gICAg
ICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFs
IGRpZ2l0IGV4cGVjdGVkLiIsCi0gICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgY3VycmVudCk7
Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wKLVJlYWRlcjo6YWRkRXJyb3IoY29uc3Qg
c3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEpIHsKLSAg
RXJyb3JJbmZvIGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8g
PSBtZXNzYWdlOwotICBpbmZvLmV4dHJhXyA9IGV4dHJhOwotICBlcnJvcnNfLnB1c2hfYmFjayhp
bmZvKTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFJlYWRlcjo6cmVjb3ZlckZyb21FcnJv
cihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKLSAgaW50IGVycm9yQ291bnQgPSBpbnQoZXJy
b3JzXy5zaXplKCkpOwotICBUb2tlbiBza2lwOwotICBmb3IgKDs7KSB7Ci0gICAgaWYgKCFyZWFk
VG9rZW4oc2tpcCkpCi0gICAgICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsgLy8gZGlzY2Fy
ZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5Ci0gICAgaWYgKHNraXAudHlwZV8gPT0gc2tpcFVu
dGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtKQotICAgICAgYnJlYWs7
Ci0gIH0KLSAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsK
LSAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOwotICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcihz
a2lwVW50aWxUb2tlbik7Ci19Ci0KLVZhbHVlJiBSZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0
dXJuICoobm9kZXNfLnRvcCgpKTsgfQotCi1SZWFkZXI6OkNoYXIgUmVhZGVyOjpnZXROZXh0Q2hh
cigpIHsKLSAgaWYgKGN1cnJlbnRfID09IGVuZF8pCi0gICAgcmV0dXJuIDA7Ci0gIHJldHVybiAq
Y3VycmVudF8rKzsKLX0KLQotdm9pZCBSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50JiBsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNv
bHVtbikgY29uc3QgewotICBMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW5fOwotICBMb2NhdGlvbiBs
YXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgbGluZSA9IDA7Ci0gIHdoaWxlIChjdXJyZW50IDwg
bG9jYXRpb24gJiYgY3VycmVudCAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsK
LSAgICBpZiAoYyA9PSAnXHInKSB7Ci0gICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKLSAgICAg
ICAgKytjdXJyZW50OwotICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICArK2xp
bmU7Ci0gICAgfSBlbHNlIGlmIChjID09ICdcbicpIHsKLSAgICAgIGxhc3RMaW5lU3RhcnQgPSBj
dXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0KLSAgfQotICAvLyBjb2x1bW4gJiBsaW5lIHN0
YXJ0IGF0IDEKLSAgY29sdW1uID0gaW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOwot
ICArK2xpbmU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7Ci0gIGludCBsaW5lLCBjb2x1bW47Ci0gIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKLSAgY2hhciBi
dWZmZXJbMTggKyAxNiArIDE2ICsgMV07Ci0gIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZl
ciksICJMaW5lICVkLCBDb2x1bW4gJWQiLCBsaW5lLCBjb2x1bW4pOwotICByZXR1cm4gYnVmZmVy
OwotfQotCi1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBs
b2NhdGlvbikgY29uc3QgewotICAgICAgIHN0ZDo6c3RyaW5nIHNuaXBwZXQgPSAiIjsKLSAgICAg
ICBzdGQ6OmlzdHJpbmdzdHJlYW0gZG9jU3RyZWFtKGRvY3VtZW50Xyk7Ci0gICAgICAgaW50IGxp
biwgY29sOwotICAgICAgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluLCBj
b2wpOwotICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7Ci0gICAgICAgZm9yIChpbnQgaT0xOyBpPGxp
bisyICYmIHN0ZDo6Z2V0bGluZShkb2NTdHJlYW0sIGxpbmUpOyBpKyspCi0gICAgICAgewotICAg
ICAgICAgICAgICBpZiAobGluLWkgPCAyKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICBzbmlwcGV0ICs9ICIgICIgKyBzdGQ6OnRvX3N0cmluZyhpKSArICI6ICIgKyBsaW5l
ICsgIlxuIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gc25pcHBl
dDsKLX0KLQotLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmls
aXR5Ci1zdGQ6OnN0cmluZyBSZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0
IHsKLSAgcmV0dXJuIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKLX0KLQotc3RkOjpzdHJp
bmcgUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgICAgZm9ybWF0
dGVkTWVzc2FnZSArPSBnZXRMb2NhdGlvblNuaXBwZXQoZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAi
XG4iOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxu
IjsKLSAgICBpZiAoZXJyb3IuZXh0cmFfKQotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQotICAg
ICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8pICsg
IiBmb3IgZGV0YWlsLlxuIjsKLSAgfQotICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKLX0KLQot
c3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJl
ZEVycm9ycygpIGNvbnN0IHsKLSAgc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+
IGFsbEVycm9yczsKLSAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJv
cnNfLmJlZ2luKCk7Ci0gICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOwotICAgICAgICsr
aXRFcnJvcikgewotICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKLSAgICBS
ZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0
X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsKLSAgICBzdHJ1Y3R1cmVkLm9m
ZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQu
bWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOwotICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0
dXJlZCk7Ci0gIH0KLSAgcmV0dXJuIGFsbEVycm9yczsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hF
cnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7Ci0g
IHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOwotICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFy
dCgpID4gbGVuZ3RoCi0gICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIFRva2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJy
b3I7Ci0gIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0g
IHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKLSAgRXJyb3JJbmZv
IGluZm87Ci0gIGluZm8udG9rZW5fID0gdG9rZW47Ci0gIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdl
OwotICBpbmZvLmV4dHJhXyA9IDA7Ci0gIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOwotICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoCi0gICAgfHwg
ZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIFRv
a2VuIHRva2VuOwotICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLnN0YXJ0XyA9
IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Ci0gIHRva2VuLmVuZF8gPSBiZWdpbl8g
KyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5mbzsKLSAgaW5mby50b2tl
bl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0gIGluZm8uZXh0cmFfID0g
YmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5m
byk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIFJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKLSAg
cmV0dXJuICFlcnJvcnNfLnNpemUoKTsKLX0KLQotLy8gZXhhY3QgY29weSBvZiBGZWF0dXJlcwot
Y2xhc3MgT3VyRmVhdHVyZXMgewotcHVibGljOgotICBzdGF0aWMgT3VyRmVhdHVyZXMgYWxsKCk7
Ci0gIGJvb2wgYWxsb3dDb21tZW50c187Ci0gIGJvb2wgc3RyaWN0Um9vdF87Ci0gIGJvb2wgYWxs
b3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187Ci0gIGJvb2wgYWxsb3dOdW1lcmljS2V5c187Ci0g
IGJvb2wgYWxsb3dTaW5nbGVRdW90ZXNfOwotICBib29sIGZhaWxJZkV4dHJhXzsKLSAgYm9vbCBy
ZWplY3REdXBLZXlzXzsKLSAgYm9vbCBhbGxvd1NwZWNpYWxGbG9hdHNfOwotICBpbnQgc3RhY2tM
aW1pdF87Ci19OyAgLy8gT3VyRmVhdHVyZXMKLQotLy8gZXhhY3QgY29weSBvZiBJbXBsZW1lbnRh
dGlvbiBvZiBjbGFzcyBGZWF0dXJlcwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLQotT3VyRmVhdHVyZXMgT3VyRmVhdHVyZXM6OmFsbCgpIHsgcmV0dXJuIE91ckZlYXR1cmVz
KCk7IH0KLQotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgUmVhZGVyCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBleGFjdCBjb3B5IG9mIFJlYWRlciwgcmVuYW1l
ZCB0byBPdXJSZWFkZXIKLWNsYXNzIE91clJlYWRlciB7Ci1wdWJsaWM6Ci0gIHR5cGVkZWYgY2hh
ciBDaGFyOwotICB0eXBlZGVmIGNvbnN0IENoYXIqIExvY2F0aW9uOwotICBzdHJ1Y3QgU3RydWN0
dXJlZEVycm9yIHsKLSAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OwotICAgIHNpemVfdCBvZmZzZXRf
bGltaXQ7Ci0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKLSAgfTsKLQotICBPdXJSZWFkZXIoT3Vy
RmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsKLSAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBiZWdp
bkRvYywKLSAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCi0gICAgICAgICAgICAgVmFs
dWUmIHJvb3QsCi0gICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKLSAg
c3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OwotICBzdGQ6OnZl
Y3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKLSAgYm9v
bCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSk7Ci0gIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7Ci0gIGJvb2wgZ29vZCgpIGNvbnN0Owot
Ci1wcml2YXRlOgotICBPdXJSZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCi0g
IHZvaWQgb3BlcmF0b3I9KE91clJlYWRlciBjb25zdCYpOyAgLy8gbm8gaW1wbAotCi0gIGVudW0g
VG9rZW5UeXBlIHsKLSAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKLSAgICB0b2tlbk9iamVjdEJl
Z2luLAotICAgIHRva2VuT2JqZWN0RW5kLAotICAgIHRva2VuQXJyYXlCZWdpbiwKLSAgICB0b2tl
bkFycmF5RW5kLAotICAgIHRva2VuU3RyaW5nLAotICAgIHRva2VuTnVtYmVyLAotICAgIHRva2Vu
VHJ1ZSwKLSAgICB0b2tlbkZhbHNlLAotICAgIHRva2VuTnVsbCwKLSAgICB0b2tlbk5hTiwKLSAg
ICB0b2tlblBvc0luZiwKLSAgICB0b2tlbk5lZ0luZiwKLSAgICB0b2tlbkFycmF5U2VwYXJhdG9y
LAotICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAotICAgIHRva2VuQ29tbWVudCwKLSAgICB0b2tl
bkVycm9yCi0gIH07Ci0KLSAgY2xhc3MgVG9rZW4gewotICBwdWJsaWM6Ci0gICAgVG9rZW5UeXBl
IHR5cGVfOwotICAgIExvY2F0aW9uIHN0YXJ0XzsKLSAgICBMb2NhdGlvbiBlbmRfOwotICB9Owot
Ci0gIGNsYXNzIEVycm9ySW5mbyB7Ci0gIHB1YmxpYzoKLSAgICBUb2tlbiB0b2tlbl87Ci0gICAg
c3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0gICAgTG9jYXRpb24gZXh0cmFfOwotICB9OwotCi0gIHR5
cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9yczsKLQotICBib29sIHJlYWRUb2tlbihU
b2tlbiYgdG9rZW4pOwotICB2b2lkIHNraXBTcGFjZXMoKTsKLSAgYm9vbCBtYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7Ci0gIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAg
Ym9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOwotICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
LSAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gIGJvb2wgcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7Ci0g
IGJvb2wgcmVhZE51bWJlcihib29sIGNoZWNrSW5mKTsKLSAgYm9vbCByZWFkVmFsdWUoKTsKLSAg
Ym9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0
b2tlbik7Ci0gIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7Ci0gIGJvb2wgZGVjb2Rl
TnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOwotICBib29sIGRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4pOwotICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6
c3RyaW5nJiBkZWNvZGVkKTsKLSAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKTsKLSAg
Ym9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7Ci0gIGJvb2wg
ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uIGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSk7Ci0gIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2Vu
JiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2Rl
KTsKLSAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRv
a2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOwotICBib29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKTsKLSAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tl
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsK
LSAgdm9pZCBza2lwVW50aWxTcGFjZSgpOwotICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7Ci0gIENo
YXIgZ2V0TmV4dENoYXIoKTsKLSAgdm9pZAotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OwotICBzdGQ6OnN0
cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0Owot
ICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBs
YWNlbWVudCBwbGFjZW1lbnQpOwotICB2b2lkIHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tl
bik7Ci0KLSAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7Ci0gIE5vZGVzIG5vZGVz
XzsKLSAgRXJyb3JzIGVycm9yc187Ci0gIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKLSAgTG9jYXRp
b24gYmVnaW5fOwotICBMb2NhdGlvbiBlbmRfOwotICBMb2NhdGlvbiBjdXJyZW50XzsKLSAgTG9j
YXRpb24gbGFzdFZhbHVlRW5kXzsKLSAgVmFsdWUqIGxhc3RWYWx1ZV87Ci0gIHN0ZDo6c3RyaW5n
IGNvbW1lbnRzQmVmb3JlXzsKLSAgaW50IHN0YWNrRGVwdGhfOwotCi0gIE91ckZlYXR1cmVzIGNv
bnN0IGZlYXR1cmVzXzsKLSAgYm9vbCBjb2xsZWN0Q29tbWVudHNfOwotfTsgIC8vIE91clJlYWRl
cgotCi0vLyBjb21wbGV0ZSBjb3B5IG9mIFJlYWQgaW1wbCwgZm9yIE91clJlYWRlcgotCi1PdXJS
ZWFkZXI6Ok91clJlYWRlcihPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCi0gICAgOiBlcnJv
cnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFs
dWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLAotICAgICAg
c3RhY2tEZXB0aF8oMCksCi0gICAgICBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVu
dHNfKCkgewotfQotCi1ib29sIE91clJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2Ms
Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAotICAgICAgICAgICAgICAg
ICAgIFZhbHVlJiByb290LAotICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
KSB7Ci0gIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7Ci0gICAgY29sbGVjdENvbW1l
bnRzID0gZmFsc2U7Ci0gIH0KLQotICBiZWdpbl8gPSBiZWdpbkRvYzsKLSAgZW5kXyA9IGVuZERv
YzsKLSAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKLSAgY3VycmVudF8gPSBi
ZWdpbl87Ci0gIGxhc3RWYWx1ZUVuZF8gPSAwOwotICBsYXN0VmFsdWVfID0gMDsKLSAgY29tbWVu
dHNCZWZvcmVfID0gIiI7Ci0gIGVycm9yc18uY2xlYXIoKTsKLSAgd2hpbGUgKCFub2Rlc18uZW1w
dHkoKSkKLSAgICBub2Rlc18ucG9wKCk7Ci0gIG5vZGVzXy5wdXNoKCZyb290KTsKLQotICBzdGFj
a0RlcHRoXyA9IDA7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOwotICBUb2tlbiB0
b2tlbjsKLSAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOwotICBpZiAoZmVhdHVyZXNfLmZhaWxJ
ZkV4dHJhXykgewotICAgIGlmICh0b2tlbi50eXBlXyAhPSB0b2tlbkVycm9yICYmIHRva2VuLnR5
cGVfICE9IHRva2VuRW5kT2ZTdHJlYW0pIHsKLSAgICAgIGFkZEVycm9yKCJFeHRyYSBub24td2hp
dGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2VuKTsKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gIH0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5l
bXB0eSgpKQotICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRl
cik7Ci0gIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKLSAgICBpZiAoIXJvb3QuaXNBcnJh
eSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKLSAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0
byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCi0gICAg
ICAvLyBpbiBkb2MKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgIHRva2Vu
LnN0YXJ0XyA9IGJlZ2luRG9jOwotICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgIGFk
ZEVycm9yKAotICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIg
YW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgdG9rZW4pOwotICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotYm9v
bCBPdXJSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKLSAgaWYgKHN0YWNrRGVwdGhfID49IGZlYXR1cmVz
Xy5zdGFja0xpbWl0XykgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4g
cmVhZFZhbHVlKCkuIik7Ci0gICsrc3RhY2tEZXB0aF87Ci0gIFRva2VuIHRva2VuOwotICBza2lw
Q29tbWVudFRva2Vucyh0b2tlbik7Ci0gIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7Ci0KLSAgaWYg
KGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOwot
ICAgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOwotICB9Ci0KLSAgc3dpdGNoICh0b2tlbi50eXBlXykg
ewotICBjYXNlIHRva2VuT2JqZWN0QmVnaW46Ci0gICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3Qo
dG9rZW4pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVn
aW5fKTsKLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbkFycmF5QmVnaW46Ci0gICAgc3VjY2Vzc2Z1
bCA9IHJlYWRBcnJheSh0b2tlbik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQo
Y3VycmVudF8gLSBiZWdpbl8pOwotICAgIGJyZWFrOwotICBjYXNlIHRva2VuTnVtYmVyOgotICAg
IHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOwotICAgIGJyZWFrOwotICBjYXNlIHRv
a2VuU3RyaW5nOgotICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOwotICAgIGJy
ZWFrOwotICBjYXNlIHRva2VuVHJ1ZToKLSAgICB7Ci0gICAgVmFsdWUgdih0cnVlKTsKLSAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2Fz
ZSB0b2tlbkZhbHNlOgotICAgIHsKLSAgICBWYWx1ZSB2KGZhbHNlKTsKLSAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk51
bGw6Ci0gICAgewotICAgIFZhbHVlIHY7Ci0gICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
dik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdG9rZW5OYU46Ci0gICAgewotICAgIFZh
bHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7Ci0gICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKLSAgICB9Ci0gICAgYnJlYWs7Ci0gIGNhc2Ug
dG9rZW5Qb3NJbmY6Ci0gICAgewotICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwot
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwot
ICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tlbk5lZ0luZjoKLSAgICB7Ci0gICAgVmFsdWUg
digtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKLSAgICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKLSAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFy
dCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSB0b2tl
bkFycmF5U2VwYXJhdG9yOgotICBjYXNlIHRva2VuT2JqZWN0RW5kOgotICBjYXNlIHRva2VuQXJy
YXlFbmQ6Ci0gICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykg
ewotICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJy
ZW50IHZhbHVlIGFzIGEgbnVsbAotICAgICAgLy8gdG9rZW4uCi0gICAgICBjdXJyZW50Xy0tOwot
ICAgICAgVmFsdWUgdjsKLSAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwotICAg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsK
LSAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsK
LSAgICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSwgZmFsbCB0aHJvdWdoIC4uLgotICBkZWZhdWx0
OgotICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7Ci0gICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2lu
Xyk7Ci0gICAgcmV0dXJuIGFkZEVycm9yKCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3Ig
YXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4pOwotICB9Ci0KLSAgaWYgKGNvbGxlY3RDb21tZW50c18p
IHsKLSAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87Ci0gICAgbGFzdFZhbHVlXyA9ICZjdXJy
ZW50VmFsdWUoKTsKLSAgfQotCi0gIC0tc3RhY2tEZXB0aF87Ci0gIHJldHVybiBzdWNjZXNzZnVs
OwotfQotCi12b2lkIE91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7
Ci0gIGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKLSAgICBkbyB7Ci0gICAgICByZWFk
VG9rZW4odG9rZW4pOwotICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7
Ci0gIH0gZWxzZSB7Ci0gICAgcmVhZFRva2VuKHRva2VuKTsKLSAgfQotfQotCi1ib29sIE91clJl
YWRlcjo6cmVhZFRva2VuKFRva2VuJiB0b2tlbikgewotICBza2lwU3BhY2VzKCk7Ci0gIHRva2Vu
LnN0YXJ0XyA9IGN1cnJlbnRfOwotICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICBib29sIG9r
ID0gdHJ1ZTsKLSAgc3dpdGNoIChjKSB7Ci0gIGNhc2UgJ3snOgotICAgIHRva2VuLnR5cGVfID0g
dG9rZW5PYmplY3RCZWdpbjsKLSAgICBicmVhazsKLSAgY2FzZSAnfSc6Ci0gICAgdG9rZW4udHlw
ZV8gPSB0b2tlbk9iamVjdEVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnWyc6Ci0gICAgdG9rZW4u
dHlwZV8gPSB0b2tlbkFycmF5QmVnaW47Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ10nOgotICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5BcnJheUVuZDsKLSAgICBicmVhazsKLSAgY2FzZSAnIic6Ci0gICAg
dG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAgICBi
cmVhazsKLSAgY2FzZSAnXCcnOgotICAgIGlmIChmZWF0dXJlc18uYWxsb3dTaW5nbGVRdW90ZXNf
KSB7Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKLSAgICBvayA9IHJlYWRTdHJpbmdT
aW5nbGVRdW90ZSgpOwotICAgIGJyZWFrOwotICAgIH0gLy8gZWxzZSBjb250aW51ZQotICBjYXNl
ICcvJzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICBvayA9IHJlYWRDb21t
ZW50KCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJzAnOgotICBjYXNlICcxJzoKLSAgY2FzZSAnMic6
Ci0gIGNhc2UgJzMnOgotICBjYXNlICc0JzoKLSAgY2FzZSAnNSc6Ci0gIGNhc2UgJzYnOgotICBj
YXNlICc3JzoKLSAgY2FzZSAnOCc6Ci0gIGNhc2UgJzknOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdW1iZXI7Ci0gICAgcmVhZE51bWJlcihmYWxzZSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJy0n
OgotICAgIGlmIChyZWFkTnVtYmVyKHRydWUpKSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2Vu
TnVtYmVyOwotICAgIH0gZWxzZSB7Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVnSW5mOwot
ICAgICAgb2sgPSBmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgibmZpbml0
eSIsIDcpOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAndCc6Ci0gICAgdG9rZW4udHlwZV8g
PSB0b2tlblRydWU7Ci0gICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgJ2YnOgotICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICBvayA9IG1hdGNoKCJh
bHNlIiwgNCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgJ24nOgotICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdWxsOwotICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwotICAgIGJyZWFrOwotICBjYXNlICdO
JzoKLSAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKLSAgICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5OYU47Ci0gICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnSSc6Ci0g
ICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7Ci0gICAgICB0b2tlbi50eXBl
XyA9IHRva2VuUG9zSW5mOwotICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBvayA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSAnLCc6
Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOwotICAgIGJyZWFrOwotICBj
YXNlICc6JzoKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOwotICAgIGJy
ZWFrOwotICBjYXNlIDA6Ci0gICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOwotICAg
IGJyZWFrOwotICBkZWZhdWx0OgotICAgIG9rID0gZmFsc2U7Ci0gICAgYnJlYWs7Ci0gIH0KLSAg
aWYgKCFvaykKLSAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gIHRva2VuLmVuZF8gPSBj
dXJyZW50XzsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgT3VyUmVhZGVyOjpza2lwU3BhY2Vz
KCkgewotICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50
XzsKLSAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdc
bicpCi0gICAgICArK2N1cnJlbnRfOwotICAgIGVsc2UKLSAgICAgIGJyZWFrOwotICB9Ci19Ci0K
LWJvb2wgT3VyUmVhZGVyOjptYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0
aCkgewotICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gIHdoaWxlIChpbmRleC0tKQot
ICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0pCi0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1ib29sIE91clJlYWRlcjo6cmVhZENvbW1lbnQoKSB7Ci0gIExvY2F0aW9uIGNvbW1lbnRCZWdp
biA9IGN1cnJlbnRfIC0gMTsKLSAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgYm9vbCBzdWNj
ZXNzZnVsID0gZmFsc2U7Ci0gIGlmIChjID09ICcqJykKLSAgICBzdWNjZXNzZnVsID0gcmVhZENT
dHlsZUNvbW1lbnQoKTsKLSAgZWxzZSBpZiAoYyA9PSAnLycpCi0gICAgc3VjY2Vzc2Z1bCA9IHJl
YWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgaWYgKCFzdWNjZXNzZnVsKQotICAgIHJldHVybiBmYWxz
ZTsKLQotICBpZiAoY29sbGVjdENvbW1lbnRzXykgewotICAgIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50ID0gY29tbWVudEJlZm9yZTsKLSAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFp
bnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKLSAgICAgIGlmIChjICE9
ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQotICAgICAg
ICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOwotICAgIH0KLQotICAgIGFkZENv
bW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50KTsKLSAgfQotICByZXR1cm4g
dHJ1ZTsKLX0KLQotdm9pZAotT3VyUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBM
b2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7Ci0gIGFzc2VydChjb2xs
ZWN0Q29tbWVudHNfKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxp
emVFT0woYmVnaW4sIGVuZCk7Ci0gIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1l
TGluZSkgewotICAgIGFzc2VydChsYXN0VmFsdWVfICE9IDApOwotICAgIGxhc3RWYWx1ZV8tPnNl
dENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsKLSAgfSBlbHNlIHsKLSAgICBjb21tZW50
c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKLSAgfQotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZENT
dHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykK
LSAgICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKLX0KLQot
Ym9vbCBPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7Ci0gIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7Ci0gICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAn
XG4nKQotICAgICAgYnJlYWs7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewotICAgICAgLy8gQ29uc3Vt
ZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KLSAgICAgIGlm
IChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAnXG4nKQotICAgICAgICBnZXROZXh0
Q2hhcigpOwotICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkgRU9MLgotICAgICAgYnJlYWs7Ci0g
ICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cmVhZE51bWJl
cihib29sIGNoZWNrSW5mKSB7Ci0gIGNvbnN0IGNoYXIgKnAgPSBjdXJyZW50XzsKLSAgaWYgKGNo
ZWNrSW5mICYmIHAgIT0gZW5kXyAmJiAqcCA9PSAnSScpIHsKLSAgICBjdXJyZW50XyA9ICsrcDsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBh
bHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgotICAvLyBpbnRlZ3JhbCBwYXJ0Ci0gIHdoaWxlIChj
ID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnAr
KyA6IDA7Ci0gIC8vIGZyYWN0aW9uYWwgcGFydAotICBpZiAoYyA9PSAnLicpIHsKLSAgICBjID0g
KGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gICAgd2hpbGUgKGMgPj0gJzAnICYm
IGMgPD0gJzknKQotICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwot
ICB9Ci0gIC8vIGV4cG9uZW50aWFsIHBhcnQKLSAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7
Ci0gICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwotICAgIGlmIChjID09
ICcrJyB8fCBjID09ICctJykKLSAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogMDsKLSAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCi0gICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci1ib29s
IE91clJlYWRlcjo6cmVhZFN0cmluZygpIHsKLSAgQ2hhciBjID0gMDsKLSAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKLSAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICBpZiAoYyA9PSAnXFwn
KQotICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICBlbHNlIGlmIChjID09ICciJykKLSAgICAgIGJy
ZWFrOwotICB9Ci0gIHJldHVybiBjID09ICciJzsKLX0KLQotCi1ib29sIE91clJlYWRlcjo6cmVh
ZFN0cmluZ1NpbmdsZVF1b3RlKCkgewotICBDaGFyIGMgPSAwOwotICB3aGlsZSAoY3VycmVudF8g
IT0gZW5kXykgewotICAgIGMgPSBnZXROZXh0Q2hhcigpOwotICAgIGlmIChjID09ICdcXCcpCi0g
ICAgICBnZXROZXh0Q2hhcigpOwotICAgIGVsc2UgaWYgKGMgPT0gJ1wnJykKLSAgICAgIGJyZWFr
OwotICB9Ci0gIHJldHVybiBjID09ICdcJyc7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpyZWFkT2Jq
ZWN0KFRva2VuJiB0b2tlblN0YXJ0KSB7Ci0gIFRva2VuIHRva2VuTmFtZTsKLSAgc3RkOjpzdHJp
bmcgbmFtZTsKLSAgVmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKGluaXQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0
YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7Ci0gIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgewot
ICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOwotICAgIHdoaWxlICh0b2tlbk5hbWUudHlw
ZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tlbk9rKQotICAgICAgaW5pdGlhbFRva2Vu
T2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKLSAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQotICAg
ICAgYnJlYWs7Ci0gICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBu
YW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgbmFt
ZSA9ICIiOwotICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKLSAgICAg
IGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCi0gICAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLSAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50
eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKLSAg
ICAgIFZhbHVlIG51bWJlck5hbWU7Ci0gICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUs
IG51bWJlck5hbWUpKQotICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVj
dEVuZCk7Ci0gICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOwotICAgIH0gZWxzZSB7
Ci0gICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBUb2tlbiBjb2xvbjsKLSAgICBpZiAoIXJlYWRU
b2tlbihjb2xvbikgfHwgY29sb24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKLSAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCi0gICAgICAgICAgIk1pc3NpbmcgJzonIGFm
dGVyIG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQot
ICAgIGlmIChuYW1lLmxlbmd0aCgpID49ICgxVTw8MzApKSB0aHJvd1J1bnRpbWVFcnJvcigia2V5
bGVuZ3RoID49IDJeMzAiKTsKLSAgICBpZiAoZmVhdHVyZXNfLnJlamVjdER1cEtleXNfICYmIGN1
cnJlbnRWYWx1ZSgpLmlzTWVtYmVyKG5hbWUpKSB7Ci0gICAgICBzdGQ6OnN0cmluZyBtc2cgPSAi
RHVwbGljYXRlIGtleTogJyIgKyBuYW1lICsgIiciOwotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICBtc2csIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOwotICAg
IH0KLSAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKLSAgICBub2Rlc18u
cHVzaCgmdmFsdWUpOwotICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICBub2Rlc18ucG9w
KCk7Ci0gICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgIHJldHVybiByZWNv
dmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKLQotICAgIFRva2VuIGNvbW1hOwotICAgIGlm
ICghcmVhZFRva2VuKGNvbW1hKSB8fAotICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmpl
Y3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgotICAgICAgICAg
Y29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKLSAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJh
dGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7Ci0gICAgfQotICAgIGJvb2wgZmluYWxpemVU
b2tlbk9rID0gdHJ1ZTsKLSAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYm
IGZpbmFsaXplVG9rZW5PaykKLSAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21t
YSk7Ci0gICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQotICAgICAgcmV0dXJu
IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICJNaXNzaW5n
ICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsK
LX0KLQotYm9vbCBPdXJSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkgewotICBW
YWx1ZSBpbml0KGFycmF5VmFsdWUpOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0
KTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBi
ZWdpbl8pOwotICBza2lwU3BhY2VzKCk7Ci0gIGlmICgqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0
eSBhcnJheQotICB7Ci0gICAgVG9rZW4gZW5kQXJyYXk7Ci0gICAgcmVhZFRva2VuKGVuZEFycmF5
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotICBpbnQgaW5kZXggPSAwOwotICBmb3IgKDs7KSB7
Ci0gICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107Ci0gICAgbm9kZXNf
LnB1c2goJnZhbHVlKTsKLSAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgbm9kZXNfLnBv
cCgpOwotICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICByZXR1cm4gcmVj
b3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKLQotICAgIFRva2VuIHRva2VuOwotICAgIC8v
IEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCi0gICAgb2sgPSBy
ZWFkVG9rZW4odG9rZW4pOwotICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYgb2spIHsKLSAgICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKLSAgICB9Ci0gICAgYm9vbCBi
YWRUb2tlblR5cGUgPQotICAgICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRv
ciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKLSAgICBpZiAoIW9rIHx8IGJhZFRv
a2VuVHlwZSkgewotICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKLSAgICAgICAgICAi
TWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRva2VuQXJy
YXlFbmQpOwotICAgIH0KLSAgICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVuZCkKLSAg
ICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVj
b2RlTnVtYmVyKFRva2VuJiB0b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29k
ZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJl
YWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgLy8g
QXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVy
IGlzCi0gIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBp
bnRlZ2VyIHRoZW4KLSAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCi0gIExv
Y2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87Ci0gIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJy
ZW50ID09ICctJzsKLSAgaWYgKGlzTmVnYXRpdmUpCi0gICAgKytjdXJyZW50OwotICAvLyBUT0RP
OiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9y
IGdldCByaWQgb2YgdGhlbS4KLSAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9
Ci0gICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2Vz
dEludCkKLSAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7Ci0gIFZhbHVl
OjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKLSAgVmFsdWU6
Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKLSAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRfKSB7
Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQot
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7Ci0gICAgVmFsdWU6OlVJ
bnQgZGlnaXQoYyAtICcwJyk7Ci0gICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgewotICAgICAg
Ly8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91
bmRlZCBkb3duKS4gSWYKLSAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBs
aW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCi0gICAgICAvLyBjKSBpdCdzIHNt
YWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KLSAg
ICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBv
dmVyZmxvdy4KLSAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRva2Vu
LmVuZF8gfHwKLSAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOwotICAgICAgfQotICAgIH0K
LSAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKLSAgfQotICBpZiAoaXNOZWdhdGl2ZSkK
LSAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKLSAgZWxzZSBpZiAodmFs
dWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhJbnQpKQotICAgIGRlY29kZWQgPSBW
YWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7Ci0gIGVsc2UKLSAgICBkZWNvZGVkID0gdmFsdWU7Ci0g
IHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0
b2tlbikgewotICBWYWx1ZSBkZWNvZGVkOwotICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVj
b2RlZCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChk
ZWNvZGVkKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKLSAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJl
Z2luXyk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6ZGVjb2RlRG91Ymxl
KFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKLSAgZG91YmxlIHZhbHVlID0gMDsKLSAg
Y29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKLSAgaW50IGNvdW50OwotICBpbnQgbGVuZ3RoID0g
aW50KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8pOwotCi0gIC8vIFNhbml0eSBjaGVjayB0byBh
dm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCi0gIGlmIChsZW5ndGggPCAwKSB7Ci0gICAg
cmV0dXJuIGFkZEVycm9yKCJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwgdG9rZW4pOwot
ICB9Ci0KLSAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQg
Y29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KLSAgLy8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBo
YXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUKLSAgLy8gaW5m
bzoKLSAgLy8KLSAgLy8gICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFj
LyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRpYmls
aXRpZXMuaHRtbAotICBjaGFyIGZvcm1hdFtdID0gIiVsZiI7Ci0KLSAgaWYgKGxlbmd0aCA8PSBi
dWZmZXJTaXplKSB7Ci0gICAgQ2hhciBidWZmZXJbYnVmZmVyU2l6ZSArIDFdOwotICAgIG1lbWNw
eShidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3RoKTsKLSAgICBidWZmZXJbbGVuZ3RoXSA9IDA7
Ci0gICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSk7Ci0gIH0gZWxzZSB7
Ci0gICAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7Ci0gICAg
Y291bnQgPSBzc2NhbmYoYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlKTsKLSAgfQotCi0g
IGlmIChjb3VudCAhPSAxKQotICAgIHJldHVybiBhZGRFcnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0
b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKLSAgICAgICAgICAgICAgICAgICAgICAgICInIGlz
IG5vdCBhIG51bWJlci4iLAotICAgICAgICAgICAgICAgICAgICB0b2tlbik7Ci0gIGRlY29kZWQg
PSB2YWx1ZTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJp
bmcoVG9rZW4mIHRva2VuKSB7Ci0gIHN0ZDo6c3RyaW5nIGRlY29kZWRfc3RyaW5nOwotICBpZiAo
IWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQotICAgIHJldHVybiBmYWxzZTsK
LSAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7Ci0gIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKGRlY29kZWQpOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5z
dGFydF8gLSBiZWdpbl8pOwotICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5l
bmRfIC0gYmVnaW5fKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNv
ZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCkgewotICBkZWNvZGVk
LnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIpOwotICBMb2NhdGlvbiBjdXJy
ZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAnIicKLSAgTG9jYXRpb24gZW5kID0gdG9r
ZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlICciJwotICB3aGlsZSAoY3VycmVu
dCAhPSBlbmQpIHsKLSAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgIGlmIChjID09ICciJykK
LSAgICAgIGJyZWFrOwotICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgewotICAgICAgaWYgKGN1cnJl
bnQgPT0gZW5kKQotICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7Ci0gICAgICBDaGFyIGVzY2FwZSA9ICpjdXJy
ZW50Kys7Ci0gICAgICBzd2l0Y2ggKGVzY2FwZSkgewotICAgICAgY2FzZSAnIic6Ci0gICAgICAg
IGRlY29kZWQgKz0gJyInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJy8nOgotICAgICAg
ICBkZWNvZGVkICs9ICcvJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdcXCc6Ci0gICAg
ICAgIGRlY29kZWQgKz0gJ1xcJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdiJzoKLSAg
ICAgICAgZGVjb2RlZCArPSAnXGInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgJ2YnOgot
ICAgICAgICBkZWNvZGVkICs9ICdcZic7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSAnbic6
Ci0gICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdy
JzoKLSAgICAgICAgZGVjb2RlZCArPSAnXHInOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2Ug
J3QnOgotICAgICAgICBkZWNvZGVkICs9ICdcdCc7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2Fz
ZSAndSc6IHsKLSAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7Ci0gICAgICAgIGlmICghZGVj
b2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKLSAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVu
aWNvZGUpOwotICAgICAgfSBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBh
ZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7
Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRlY29kZWQgKz0gYzsKLSAgICB9Ci0gIH0K
LSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBv
aW50KFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uJiBjdXJyZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50JiB1bmljb2RlKSB7Ci0KLSAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9r
ZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCi0gICAgcmV0dXJuIGZhbHNlOwotICBpZiAodW5p
Y29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKLSAgICAvLyBzdXJyb2dhdGUg
cGFpcnMKLSAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICByZXR1cm4gYWRkRXJyb3Io
Ci0gICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2Ug
dW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAotICAgICAgICAgIHRva2VuLAotICAgICAgICAgIGN1
cnJlbnQpOwotICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWlyOwotICAgIGlmICgqKGN1cnJl
bnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7Ci0gICAgICBpZiAoZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIp
KSB7Ci0gICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEw
KSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOwotICAgICAgfSBlbHNlCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9IGVsc2UKLSAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFu
b3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCi0gICAgICAgICAgICAgICAg
ICAgICAgdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgY3VycmVudCk7Ci0gIH0KLSAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVu
Y2UoVG9rZW4mIHRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhdGlvbiYgY3VycmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKLSAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQot
ICAgIHJldHVybiBhZGRFcnJvcigKLSAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsCi0gICAgICAgIHRva2VuLAotICAg
ICAgICBjdXJyZW50KTsKLSAgdW5pY29kZSA9IDA7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsgaW5k
ZXggPCA0OyArK2luZGV4KSB7Ci0gICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICB1bmljb2Rl
ICo9IDE2OwotICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKLSAgICAgIHVuaWNvZGUgKz0g
YyAtICcwJzsKLSAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKLSAgICAgIHVuaWNv
ZGUgKz0gYyAtICdhJyArIDEwOwotICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQot
ICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7Ci0gICAgZWxzZQotICAgICAgcmV0dXJuIGFk
ZEVycm9yKAotICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
OiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAotICAgICAgICAgIHRva2VuLAotICAgICAg
ICAgIGN1cnJlbnQpOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi1ib29sCi1PdXJSZWFkZXI6
OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhKSB7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2VuXyA9IHRva2VuOwot
ICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAgZXJy
b3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBPdXJSZWFk
ZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGludCBl
cnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgVG9rZW4gc2tpcDsKLSAgZm9yICg7
OykgewotICAgIGlmICghcmVhZFRva2VuKHNraXApKQotICAgICAgZXJyb3JzXy5yZXNpemUoZXJy
b3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQotICAgIGlmIChz
a2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0
cmVhbSkKLSAgICAgIGJyZWFrOwotICB9Ci0gIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOwot
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIo
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuJiB0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKSB7Ci0gIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKLSAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4pOwotfQotCi1WYWx1ZSYgT3VyUmVh
ZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KLQotT3VyUmVh
ZGVyOjpDaGFyIE91clJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7Ci0gIGlmIChjdXJyZW50XyA9PSBl
bmRfKQotICAgIHJldHVybiAwOwotICByZXR1cm4gKmN1cnJlbnRfKys7Ci19Ci0KLXZvaWQgT3Vy
UmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKLSAgTG9jYXRp
b24gY3VycmVudCA9IGJlZ2luXzsKLSAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7
Ci0gIGxpbmUgPSAwOwotICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0g
ZW5kXykgewotICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgaWYgKGMgPT0gJ1xyJykgewot
ICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCi0gICAgICAgICsrY3VycmVudDsKLSAgICAgIGxh
c3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgKytsaW5lOwotICAgIH0gZWxzZSBpZiAoYyA9
PSAnXG4nKSB7Ci0gICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICsrbGluZTsK
LSAgICB9Ci0gIH0KLSAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCi0gIGNvbHVtbiA9IGlu
dChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKLSAgKytsaW5lOwotfQotCi1zdGQ6OnN0
cmluZyBPdXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlv
bikgY29uc3QgewotICBpbnQgbGluZSwgY29sdW1uOwotICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1
bW4obG9jYXRpb24sIGxpbmUsIGNvbHVtbik7Ci0gIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiAr
IDFdOwotICBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1u
ICVkIiwgbGluZSwgY29sdW1uKTsKLSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcg
T3VyUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgewotICBzdGQ6OnN0
cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRF
cnJvciA9IGVycm9yc18uYmVnaW4oKTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7
Ci0gICAgICAgKytpdEVycm9yKSB7Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVy
cm9yOwotICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KLSAgICAgICAgIiogIiArIGdldExvY2F0aW9u
TGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Ci0gICAgZm9ybWF0dGVk
TWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgIGlmIChlcnJvci5l
eHRyYV8pCi0gICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Ci0gICAgICAgICAgIlNlZSAiICsgZ2V0
TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOwot
ICB9Ci0gIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwotfQotCi1zdGQ6OnZlY3RvcjxPdXJSZWFk
ZXI6OlN0cnVjdHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29u
c3QgewotICBzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3Jz
OwotICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4o
KTsKLSAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7Ci0gICAgICAgKytpdEVycm9yKSB7
Ci0gICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOwotICAgIE91clJlYWRlcjo6
U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7Ci0gICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQg
PSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOwotICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xp
bWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87Ci0gICAgc3RydWN0dXJlZC5tZXNzYWdl
ID0gZXJyb3IubWVzc2FnZV87Ci0gICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsK
LSAgfQotICByZXR1cm4gYWxsRXJyb3JzOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9y
KGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKLSAgc2l6
ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87Ci0gIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkg
PiBsZW5ndGgKLSAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJl
dHVybiBmYWxzZTsKLSAgVG9rZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsK
LSAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9r
ZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOwotICBFcnJvckluZm8gaW5m
bzsKLSAgaW5mby50b2tlbl8gPSB0b2tlbjsKLSAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7Ci0g
IGluZm8uZXh0cmFfID0gMDsKLSAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7Ci0gIHJldHVybiB0
cnVlOwotfQotCi1ib29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgewotICBzaXpl
X3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKLSAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+
IGxlbmd0aAotICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKLSAgICB8fCBl
eHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQotICAgIHJldHVybiBmYWxzZTsKLSAgVG9r
ZW4gdG9rZW47Ci0gIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgdG9rZW4uc3RhcnRfID0g
YmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKLSAgdG9rZW4uZW5kXyA9IGJlZ2luXyAr
IHZhbHVlLmdldE9mZnNldExpbWl0KCk7Ci0gIEVycm9ySW5mbyBpbmZvOwotICBpbmZvLnRva2Vu
XyA9IHRva2VuOwotICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgaW5mby5leHRyYV8gPSBi
ZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOwotICBlcnJvcnNfLnB1c2hfYmFjayhpbmZv
KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT3VyUmVhZGVyOjpnb29kKCkgY29uc3Qgewot
ICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOwotfQotCi0KLWNsYXNzIE91ckNoYXJSZWFkZXIgOiBw
dWJsaWMgQ2hhclJlYWRlciB7Ci0gIGJvb2wgY29uc3QgY29sbGVjdENvbW1lbnRzXzsKLSAgT3Vy
UmVhZGVyIHJlYWRlcl87Ci1wdWJsaWM6Ci0gIE91ckNoYXJSZWFkZXIoCi0gICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMsCi0gICAgT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQotICA6IGNvbGxl
Y3RDb21tZW50c18oY29sbGVjdENvbW1lbnRzKQotICAsIHJlYWRlcl8oZmVhdHVyZXMpCi0gIHt9
Ci0gIGJvb2wgcGFyc2UoCi0gICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBjb25zdCog
ZW5kRG9jLAotICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSB7Ci0gICAgYm9v
bCBvayA9IHJlYWRlcl8ucGFyc2UoYmVnaW5Eb2MsIGVuZERvYywgKnJvb3QsIGNvbGxlY3RDb21t
ZW50c18pOwotICAgIGlmIChlcnJzKSB7Ci0gICAgICAqZXJycyA9IHJlYWRlcl8uZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcygpOwotICAgIH0KLSAgICByZXR1cm4gb2s7Ci0gIH0KLX07Ci0KLUNo
YXJSZWFkZXJCdWlsZGVyOjpDaGFyUmVhZGVyQnVpbGRlcigpCi17Ci0gIHNldERlZmF1bHRzKCZz
ZXR0aW5nc18pOwotfQotQ2hhclJlYWRlckJ1aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcigpCi17
fQotQ2hhclJlYWRlciogQ2hhclJlYWRlckJ1aWxkZXI6Om5ld0NoYXJSZWFkZXIoKSBjb25zdAot
ewotICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRpbmdzX1siY29sbGVjdENvbW1lbnRzIl0u
YXNCb29sKCk7Ci0gIE91ckZlYXR1cmVzIGZlYXR1cmVzID0gT3VyRmVhdHVyZXM6OmFsbCgpOwot
ICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRpbmdzX1siYWxsb3dDb21tZW50cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHNldHRpbmdzX1sic3RyaWN0Um9vdCJd
LmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IHNl
dHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOwotICBmZWF0
dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IHNldHRpbmdzX1siYWxsb3dOdW1lcmljS2V5cyJdLmFz
Qm9vbCgpOwotICBmZWF0dXJlcy5hbGxvd1NpbmdsZVF1b3Rlc18gPSBzZXR0aW5nc19bImFsbG93
U2luZ2xlUXVvdGVzIl0uYXNCb29sKCk7Ci0gIGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc2V0dGlu
Z3NfWyJzdGFja0xpbWl0Il0uYXNJbnQoKTsKLSAgZmVhdHVyZXMuZmFpbElmRXh0cmFfID0gc2V0
dGluZ3NfWyJmYWlsSWZFeHRyYSJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5yZWplY3REdXBLZXlz
XyA9IHNldHRpbmdzX1sicmVqZWN0RHVwS2V5cyJdLmFzQm9vbCgpOwotICBmZWF0dXJlcy5hbGxv
d1NwZWNpYWxGbG9hdHNfID0gc2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXS5hc0Jvb2wo
KTsKLSAgcmV0dXJuIG5ldyBPdXJDaGFyUmVhZGVyKGNvbGxlY3RDb21tZW50cywgZmVhdHVyZXMp
OwotfQotc3RhdGljIHZvaWQgZ2V0VmFsaWRSZWFkZXJLZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogdmFsaWRfa2V5cykKLXsKLSAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKLSAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJjb2xsZWN0Q29tbWVudHMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Nv
bW1lbnRzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgic3RyaWN0Um9vdCIpOwotICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJhbGxvd051bWVyaWNLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxs
b3dTaW5nbGVRdW90ZXMiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdGFja0xpbWl0Iik7Ci0g
IHZhbGlkX2tleXMtPmluc2VydCgiZmFpbElmRXh0cmEiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0
KCJyZWplY3REdXBLZXlzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTcGVjaWFsRmxv
YXRzIik7Ci19Ci1ib29sIENoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSog
aW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZh
bGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0
IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3Rk
OjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZhbGlkUmVhZGVyS2V5cygmdmFsaWRfa2V5cyk7
Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAg
c2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kp
IHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRf
a2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgewotICAgICAgaW52W2tleV0gPSBz
ZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19
Ci1WYWx1ZSYgQ2hhclJlYWRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQot
ewotICByZXR1cm4gc2V0dGluZ3NfW2tleV07Ci19Ci0vLyBzdGF0aWMKLXZvaWQgQ2hhclJlYWRl
ckJ1aWxkZXI6OnN0cmljdE1vZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQotewotLy8hIFtDaGFy
UmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCi0gICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0g
PSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IHRydWU7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5n
cylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiYWxsb3dTaW5n
bGVRdW90ZXMiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsK
LSAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsicmVq
ZWN0RHVwS2V5cyJdID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJd
ID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KLX0KLS8vIHN0YXRp
Ywotdm9pZCBDaGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRp
bmdzKQotewotLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQotICAoKnNldHRpbmdzKVsi
Y29sbGVjdENvbW1lbnRzIl0gPSB0cnVlOwotICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJd
ID0gdHJ1ZTsKLSAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOwotICAoKnNldHRp
bmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7Ci0gICgqc2V0dGlu
Z3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U2lu
Z2xlUXVvdGVzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7
Ci0gICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7Ci0gICgqc2V0dGluZ3MpWyJy
ZWplY3REdXBLZXlzIl0gPSBmYWxzZTsKLSAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0
cyJdID0gZmFsc2U7Ci0vLyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCi19Ci0KLS8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGdsb2JhbCBmdW5jdGlvbnMKLQotYm9v
bCBwYXJzZUZyb21TdHJlYW0oCi0gICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdCwg
c3RkOjppc3RyZWFtJiBzaW4sCi0gICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKQot
ewotICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3NpbjsKLSAgc3NpbiA8PCBzaW4ucmRidWYoKTsKLSAg
c3RkOjpzdHJpbmcgZG9jID0gc3Npbi5zdHIoKTsKLSAgY2hhciBjb25zdCogYmVnaW4gPSBkb2Mu
ZGF0YSgpOwotICBjaGFyIGNvbnN0KiBlbmQgPSBiZWdpbiArIGRvYy5zaXplKCk7Ci0gIC8vIE5v
dGUgdGhhdCB3ZSBkbyBub3QgYWN0dWFsbHkgbmVlZCBhIG51bGwtdGVybWluYXRvci4KLSAgQ2hh
clJlYWRlclB0ciBjb25zdCByZWFkZXIoZmFjdC5uZXdDaGFyUmVhZGVyKCkpOwotICByZXR1cm4g
cmVhZGVyLT5wYXJzZShiZWdpbiwgZW5kLCByb290LCBlcnJzKTsKLX0KLQotc3RkOjppc3RyZWFt
JiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCkgewotICBDaGFyUmVh
ZGVyQnVpbGRlciBiOwotICBzdGQ6OnN0cmluZyBlcnJzOwotICBib29sIG9rID0gcGFyc2VGcm9t
U3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKLSAgaWYgKCFvaykgewotICAgIGZwcmludGYo
c3RkZXJyLAotICAgICAgICAgICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCi0gICAgICAgICAg
ICBlcnJzLmNfc3RyKCkpOwotCi0gICAgdGhyb3dSdW50aW1lRXJyb3IoZXJycyk7Ci0gIH0KLSAg
cmV0dXJuIHNpbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3Bw
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9y
LmlubAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
Ci0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0vLyBpbmNsdWRlZCBieSBqc29uX3ZhbHVlLmNw
cAotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9y
QmFzZSgpCi0gICAgOiBjdXJyZW50XygpLCBpc051bGxfKHRydWUpIHsKLX0KLQotVmFsdWVJdGVy
YXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogY3VycmVudF8oY3VycmVudCksIGlzTnVsbF8o
ZmFsc2UpIHt9Ci0KLVZhbHVlJiBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdCB7Ci0g
IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOwotfQotCi12b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpp
bmNyZW1lbnQoKSB7Ci0gICsrY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6
OmRlY3JlbWVudCgpIHsKLSAgLS1jdXJyZW50XzsKLX0KLQotVmFsdWVJdGVyYXRvckJhc2U6OmRp
ZmZlcmVuY2VfdHlwZQotVmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBT
ZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSNpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAot
ICByZXR1cm4gb3RoZXIuY3VycmVudF8gLSBjdXJyZW50XzsKLSNlbHNlCi0gIC8vIEl0ZXJhdG9y
IGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVsdAotICAvLyBj
b25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0byB0aGUgZGVmYXVsdAotICAv
LyBzdGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkgYW5kIGVuZCgpIGFyZSB0d28gaW5zdGFu
Y2UKLSAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3Qg
YmUgY29tcGFyZWQuCi0gIC8vIFRvIGFsbG93IHRoaXMsIHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlz
b24gc3BlY2lmaWNhbGx5LgotICBpZiAoaXNOdWxsXyAmJiBvdGhlci5pc051bGxfKSB7Ci0gICAg
cmV0dXJuIDA7Ci0gIH0KLQotICAvLyBVc2FnZSBvZiBzdGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0
YWJsZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBTdHVkaW8gMTIKLSAgLy8gUm9ndWVXYXZl
IFNUTCwKLSAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgotICAvLyBVc2lu
ZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGlu
c3RlYWQ6Ci0gIC8vICAgcmV0dXJuIGRpZmZlcmVuY2VfdHlwZSggc3RkOjpkaXN0YW5jZSggY3Vy
cmVudF8sIG90aGVyLmN1cnJlbnRfICkgKTsKLSAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2Ug
PSAwOwotICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87
IGl0ICE9IG90aGVyLmN1cnJlbnRfOwotICAgICAgICsraXQpIHsKLSAgICArK215RGlzdGFuY2U7
Ci0gIH0KLSAgcmV0dXJuIG15RGlzdGFuY2U7Ci0jZW5kaWYKLX0KLQotYm9vbCBWYWx1ZUl0ZXJh
dG9yQmFzZTo6aXNFcXVhbChjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKGlz
TnVsbF8pIHsKLSAgICByZXR1cm4gb3RoZXIuaXNOdWxsXzsKLSAgfQotICByZXR1cm4gY3VycmVu
dF8gPT0gb3RoZXIuY3VycmVudF87Ci19Ci0KLXZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmNvcHko
Y29uc3QgU2VsZlR5cGUmIG90aGVyKSB7Ci0gIGN1cnJlbnRfID0gb3RoZXIuY3VycmVudF87Ci0g
IGlzTnVsbF8gPSBvdGhlci5pc051bGxfOwotfQotCi1WYWx1ZSBWYWx1ZUl0ZXJhdG9yQmFzZTo6
a2V5KCkgY29uc3QgewotICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJl
bnRfKS5maXJzdDsKLSAgaWYgKGN6c3RyaW5nLmRhdGEoKSkgewotICAgIGlmIChjenN0cmluZy5p
c1N0YXRpY1N0cmluZygpKQotICAgICAgcmV0dXJuIFZhbHVlKFN0YXRpY1N0cmluZyhjenN0cmlu
Zy5kYXRhKCkpKTsKLSAgICByZXR1cm4gVmFsdWUoY3pzdHJpbmcuZGF0YSgpLCBjenN0cmluZy5k
YXRhKCkgKyBjenN0cmluZy5sZW5ndGgoKSk7Ci0gIH0KLSAgcmV0dXJuIFZhbHVlKGN6c3RyaW5n
LmluZGV4KCkpOwotfQotCi1VSW50IFZhbHVlSXRlcmF0b3JCYXNlOjppbmRleCgpIGNvbnN0IHsK
LSAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7Ci0g
IGlmICghY3pzdHJpbmcuZGF0YSgpKQotICAgIHJldHVybiBjenN0cmluZy5pbmRleCgpOwotICBy
ZXR1cm4gVmFsdWU6OlVJbnQoLTEpOwotfQotCi1zdGQ6OnN0cmluZyBWYWx1ZUl0ZXJhdG9yQmFz
ZTo6bmFtZSgpIGNvbnN0IHsKLSAgY2hhciBjb25zdCoga2VleTsKLSAgY2hhciBjb25zdCogZW5k
OwotICBrZWV5ID0gbWVtYmVyTmFtZSgmZW5kKTsKLSAgaWYgKCFrZWV5KSByZXR1cm4gc3RkOjpz
dHJpbmcoKTsKLSAgcmV0dXJuIHN0ZDo6c3RyaW5nKGtlZXksIGVuZCk7Ci19Ci0KLWNoYXIgY29u
c3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29uc3QgewotICBjb25zdCBjaGFy
KiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsKLSAgcmV0dXJuIGNuYW1lID8gY25h
bWUgOiAiIjsKLX0KLQotY2hhciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUo
Y2hhciBjb25zdCoqIGVuZCkgY29uc3QgewotICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKLSAgaWYgKCFjbmFtZSkgewotICAgICplbmQgPSBOVUxMOwotICAg
IHJldHVybiBOVUxMOwotICB9Ci0gICplbmQgPSBjbmFtZSArICgqY3VycmVudF8pLmZpcnN0Lmxl
bmd0aCgpOwotICByZXR1cm4gY25hbWU7Ci19Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcgotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVl
Q29uc3RJdGVyYXRvcigpIHt9Ci0KLVZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJh
dG9yKAotICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQot
ICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KLQotVmFsdWVDb25zdEl0ZXJhdG9y
OjpWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCi0gICAgOiBW
YWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KLQotVmFsdWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNv
bnN0SXRlcmF0b3I6Ogotb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcikg
ewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZUl0ZXJhdG9yCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVZhbHVlSXRlcmF0b3I6OlZhbHVl
SXRlcmF0b3IoKSB7fQotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVl
OjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQotICAgIDogVmFsdWVJdGVyYXRvckJh
c2UoY3VycmVudCkge30KLQotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1
ZUNvbnN0SXRlcmF0b3ImIG90aGVyKQotICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsK
LSAgdGhyb3dSdW50aW1lRXJyb3IoIkNvbnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5l
dmVyIGJlIGFsbG93ZWQuIik7Ci19Ci0KLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29u
c3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpCi0gICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
e30KLQotVmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZU
eXBlJiBvdGhlcikgewotICBjb3B5KG90aGVyKTsKLSAgcmV0dXJuICp0aGlzOwotfQotCi19IC8v
IG5hbWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50IG9m
IGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0b3IuaW5sCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLQotCi0KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBCZWdpbm5pbmcgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAKLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LQotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0K
LSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxqc29uL2Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+Ci0jaW5jbHVkZSA8anNvbi93cml0ZXIu
aD4KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRl
IDxtYXRoLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1
ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KLSNpZmRlZiBKU09OX1VTRV9DUFBUTAot
I2luY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjc3RkZGVm
PiAvLyBzaXplX3QKLSNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIG1pbigpCi0KLSNkZWZpbmUgSlNP
Tl9BU1NFUlRfVU5SRUFDSEFCTEUgYXNzZXJ0KGZhbHNlKQotCi0vKgotLS0gVmFsdmUgMS83LzE2
Ci00NzAyIHVucmVhY2hhYmxlIGNvZGUKLSovCi0jcHJhZ21hIHdhcm5pbmcgKHB1c2gpCi0jcHJh
Z21hIHdhcm5pbmcgKGRpc2FibGU6IDQ3MDIpCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8gVGhp
cyBpcyBhIHdhbGthcm91bmQgdG8gYXZvaWQgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiBvZiBW
YWx1ZTo6bnVsbC4KLS8vIGtOdWxsIG11c3QgYmUgd29yZC1hbGlnbmVkIHRvIGF2b2lkIGNyYXNo
aW5nIG9uIEFSTS4gIFdlIHVzZSBhbiBhbGlnbm1lbnQgb2YKLS8vIDggKGluc3RlYWQgb2YgNCkg
YXMgYSBiaXQgb2YgZnV0dXJlLXByb29maW5nLgotI2lmIGRlZmluZWQoX19BUk1FTF9fKQotI2Rl
ZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGJ5dGVf
YWxpZ25tZW50KSkpCi0jZWxzZQotI2RlZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KQotI2Vu
ZGlmCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBBTElHTkFTKDgpIGtOdWxsW3NpemVvZihW
YWx1ZSldID0geyAwIH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyJiBrTnVsbFJlZiA9IGtOdWxsWzBd
OwotY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBWYWx1
ZSY+KGtOdWxsUmVmKTsKLWNvbnN0IFZhbHVlJiBWYWx1ZTo6bnVsbFJlZiA9IG51bGw7Ci0KLWNv
bnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KH4oVUludCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQg
VmFsdWU6Om1heEludCA9IEludChVSW50KC0xKSAvIDIpOwotY29uc3QgVUludCBWYWx1ZTo6bWF4
VUludCA9IFVJbnQoLTEpOwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWluSW50NjQgPSBJbnQ2NCh+KFVJbnQ2NCgtMSkgLyAyKSk7Ci1jb25zdCBJbnQ2
NCBWYWx1ZTo6bWF4SW50NjQgPSBJbnQ2NChVSW50NjQoLTEpIC8gMik7Ci1jb25zdCBVSW50NjQg
VmFsdWU6Om1heFVJbnQ2NCA9IFVJbnQ2NCgtMSk7Ci0vLyBUaGUgY29uc3RhbnQgaXMgaGFyZC1j
b2RlZCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgaGF2ZSB0cm91YmxlCi0vLyBjb252ZXJ0aW5nIFZh
bHVlOjptYXhVSW50NjQgdG8gYSBkb3VibGUgY29ycmVjdGx5IChBSVgveGxDKS4KLS8vIEFzc3Vt
ZXMgdGhhdCBVSW50NjQgaXMgYSA2NCBiaXRzIGludGVnZXIuCi1zdGF0aWMgY29uc3QgZG91Ymxl
IG1heFVJbnQ2NEFzRG91YmxlID0gMTg0NDY3NDQwNzM3MDk1NTE2MTUuMDsKLSNlbmRpZiAvLyBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWluTGFyZ2Vz
dEludCA9IExhcmdlc3RJbnQofihMYXJnZXN0VUludCgtMSkgLyAyKSk7Ci1jb25zdCBMYXJnZXN0
SW50IFZhbHVlOjptYXhMYXJnZXN0SW50ID0gTGFyZ2VzdEludChMYXJnZXN0VUludCgtMSkgLyAy
KTsKLWNvbnN0IExhcmdlc3RVSW50IFZhbHVlOjptYXhMYXJnZXN0VUludCA9IExhcmdlc3RVSW50
KC0xKTsKLQotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgSW5S
YW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gIHJldHVybiBkID49IG1pbiAmJiBkIDw9
IG1heDsKLX0KLSNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShKc29uOjpVSW50
NjQgdmFsdWUpIHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgLyAy
KSkgKiAyLjAgKyBJbnQ2NCh2YWx1ZSAmIDEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
c3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKFQgdmFsdWUpIHsKLSAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4KLXN0YXRpYyBpbmxpbmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwg
VSBtYXgpIHsKLSAgcmV0dXJuIGQgPj0gaW50ZWdlclRvRG91YmxlKG1pbikgJiYgZCA8PSBpbnRl
Z2VyVG9Eb3VibGUobWF4KTsKLX0KLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKLQotLyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJp
bmcgdmFsdWUuCi0gKiBAcGFyYW0gdmFsdWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxp
Y2F0ZS4gTXVzdCBiZSB6ZXJvLXRlcm1pbmF0ZWQgaWYKLSAqICAgICAgICAgICAgICBsZW5ndGgg
aXMgInVua25vd24iLgotICogQHBhcmFtIGxlbmd0aCBMZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBl
cXVhbHMgdG8gdW5rbm93biwgdGhlbiBpdCB3aWxsIGJlCi0gKiAgICAgICAgICAgICAgIGNvbXB1
dGVkIHVzaW5nIHN0cmxlbih2YWx1ZSkuCi0gKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxp
Y2F0ZSBpbnN0YW5jZSBvZiBzdHJpbmcuCi0gKi8KLXN0YXRpYyBpbmxpbmUgY2hhciogZHVwbGlj
YXRlU3RyaW5nVmFsdWUoY29uc3QgY2hhciogdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpIHsKLSAgLy8gQXZvaWQgYW4gaW50ZWdl
ciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3Ro
Ci0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgaWYgKGxlbmd0aCA+PSAoc2l6ZV90KVZhbHVlOjpt
YXhJbnQpCi0gICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7Ci0KLSAgY2hhciogbmV3U3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhsZW5ndGggKyAxKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gTlVMTCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNv
bjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxlZCB0byBh
bGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgbWVtY3B5KG5ld1N0cmluZywg
dmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgcmV0dXJuIG5ld1N0
cmluZzsKLX0KLQotLyogUmVjb3JkIHRoZSBsZW5ndGggYXMgYSBwcmVmaXguCi0gKi8KLXN0YXRp
YyBpbmxpbmUgY2hhciogZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCi0gICAgY29uc3Qg
Y2hhciogdmFsdWUsCi0gICAgdW5zaWduZWQgaW50IGxlbmd0aCkKLXsKLSAgLy8gQXZvaWQgYW4g
aW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcg
bGVuZ3RoCi0gIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgSlNPTl9BU1NFUlRfTUVTU0FHRShsZW5n
dGggPD0gKHVuc2lnbmVkKVZhbHVlOjptYXhJbnQgLSBzaXplb2YodW5zaWduZWQpIC0gMVUsCi0g
ICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhT
dHJpbmdWYWx1ZSgpOiAiCi0gICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCB0b28gYmlnIGZv
ciBwcmVmaXhpbmciKTsKLSAgdW5zaWduZWQgYWN0dWFsTGVuZ3RoID0gbGVuZ3RoICsgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHNpemVvZih1bnNpZ25lZCkpICsgMVU7Ci0gIGNoYXIqIG5ld1N0cmlu
ZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoYWN0dWFsTGVuZ3RoKSk7Ci0gIGlmIChuZXdT
dHJpbmcgPT0gMCkgewotICAgIHRocm93UnVudGltZUVycm9yKAotICAgICAgICAiaW4gSnNvbjo6
VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6ICIKLSAgICAgICAgIkZhaWxl
ZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Ci0gIH0KLSAgKnJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihuZXdTdHJpbmcpID0gbGVuZ3RoOwotICBtZW1jcHkobmV3U3RyaW5n
ICsgc2l6ZW9mKHVuc2lnbmVkKSwgdmFsdWUsIGxlbmd0aCk7Ci0gIG5ld1N0cmluZ1thY3R1YWxM
ZW5ndGggLSAxVV0gPSAwOyAvLyB0byBhdm9pZCBidWZmZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5
IHVzZXJzIGxhdGVyCi0gIHJldHVybiBuZXdTdHJpbmc7Ci19Ci1pbmxpbmUgc3RhdGljIHZvaWQg
ZGVjb2RlUHJlZml4ZWRTdHJpbmcoCi0gICAgYm9vbCBpc1ByZWZpeGVkLCBjaGFyIGNvbnN0KiBw
cmVmaXhlZCwKLSAgICB1bnNpZ25lZCogbGVuZ3RoLCBjaGFyIGNvbnN0KiogdmFsdWUpCi17Ci0g
IGlmICghaXNQcmVmaXhlZCkgewotICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c3RybGVuKHByZWZpeGVkKSk7Ci0gICAgKnZhbHVlID0gcHJlZml4ZWQ7Ci0gIH0gZWxzZSB7Ci0g
ICAgKmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQp
OwotICAgICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVkKTsKLSAgfQotfQotLyoq
IEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkvZHVw
bGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIHJl
bGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeyBmcmVlKHZhbHVlKTsgfQotCi19IC8vIG5h
bWVzcGFjZSBKc29uCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIFZhbHVlSW50ZXJuYWxzLi4uCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0jaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0KLSNpbmNsdWRlICJq
c29uX3ZhbHVlaXRlcmF0b3IuaW5sIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLUV4Y2VwdGlvbjo6RXhjZXB0aW9uKHN0
ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogbXNnXyhtc2cpCi17fQotRXhjZXB0aW9uOjp+RXhj
ZXB0aW9uKCkgdGhyb3coKQote30KLWNoYXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0
IHRocm93KCkKLXsKLSAgcmV0dXJuIG1zZ18uY19zdHIoKTsKLX0KLVJ1bnRpbWVFcnJvcjo6UnVu
dGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhjZXB0aW9uKG1zZykKLXt9
Ci1Mb2dpY0Vycm9yOjpMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCi0gIDogRXhj
ZXB0aW9uKG1zZykKLXt9Ci12b2lkIHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0
JiBtc2cpCi17Ci0gIHRocm93IFJ1bnRpbWVFcnJvcihtc2cpOwotfQotdm9pZCB0aHJvd0xvZ2lj
RXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKLXsKLSAgdGhyb3cgTG9naWNFcnJvcihtc2cp
OwotfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFz
cyBWYWx1ZTo6Q29tbWVudEluZm8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbygpIDogY29tbWVudF8oMCkg
e30KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8oKSB7Ci0gIGlmIChjb21tZW50
XykKLSAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29tbWVudF8pOwotfQotCi12b2lkIFZhbHVlOjpD
b21tZW50SW5mbzo6c2V0Q29tbWVudChjb25zdCBjaGFyKiB0ZXh0LCBzaXplX3QgbGVuKSB7Ci0g
IGlmIChjb21tZW50XykgewotICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7Ci0gICAg
Y29tbWVudF8gPSAwOwotICB9Ci0gIEpTT05fQVNTRVJUKHRleHQgIT0gMCk7Ci0gIEpTT05fQVNT
RVJUX01FU1NBR0UoCi0gICAgICB0ZXh0WzBdID09ICdcMCcgfHwgdGV4dFswXSA9PSAnLycsCi0g
ICAgICAiaW4gSnNvbjo6VmFsdWU6OnNldENvbW1lbnQoKTogQ29tbWVudHMgbXVzdCBzdGFydCB3
aXRoIC8iKTsKLSAgLy8gSXQgc2VlbXMgdGhhdCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2Nl
cHRhYmxlIGFzIHdlbGwuCi0gIGNvbW1lbnRfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUodGV4dCwg
bGVuKTsKLX0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8g
Y2xhc3MgVmFsdWU6OkNaU3RyaW5nCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLS8vIE5vdGVzOiBwb2xpY3lfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBh
bGxvY2F0ZWQgd2hlbgotLy8gYSBzdHJpbmcgaXMgc3RvcmVkLgotCi1WYWx1ZTo6Q1pTdHJpbmc6
OkNaU3RyaW5nKEFycmF5SW5kZXggYWluZGV4KSA6IGNzdHJfKDApLCBpbmRleF8oYWluZGV4KSB7
fQotCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwgdW5zaWduZWQg
dWxlbmd0aCwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUpCi0gICAgOiBjc3RyXyhzdHIpIHsK
LSAgLy8gYWxsb2NhdGUgIT0gZHVwbGljYXRlCi0gIHN0b3JhZ2VfLnBvbGljeV8gPSBhbGxvY2F0
ZSAmIDB4MzsKLSAgc3RvcmFnZV8ubGVuZ3RoXyA9IHVsZW5ndGggJiAweDNGRkZGRkZGOwotfQot
Ci1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNvbnN0IENaU3RyaW5nJiBvdGhlcikKLSAgICA6
IGNzdHJfKG90aGVyLnN0b3JhZ2VfLnBvbGljeV8gIT0gbm9EdXBsaWNhdGlvbiAmJiBvdGhlci5j
c3RyXyAhPSAwCi0gICAgICAgICAgICAgICAgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShvdGhlci5j
c3RyXywgb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXykKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNz
dHJfKSB7Ci0gIHN0b3JhZ2VfLnBvbGljeV8gPSAob3RoZXIuY3N0cl8KLSAgICAgICAgICAgICAg
ICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGlj
eV8pID09IG5vRHVwbGljYXRpb24KLSAgICAgICAgICAgICAgICAgICAgID8gbm9EdXBsaWNhdGlv
biA6IGR1cGxpY2F0ZSkKLSAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlv
blBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5XykpOwotICBzdG9yYWdlXy5sZW5ndGhfID0g
b3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKLX0KLQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVO
Q0VTCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpCi0gIDogY3N0
cl8ob3RoZXIuY3N0cl8pLCBpbmRleF8ob3RoZXIuaW5kZXhfKSB7Ci0gIG90aGVyLmNzdHJfID0g
bnVsbHB0cjsKLX0KLSNlbmRpZgotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpIHsKLSAg
aWYgKGNzdHJfICYmIHN0b3JhZ2VfLnBvbGljeV8gPT0gZHVwbGljYXRlKQotICAgIHJlbGVhc2VT
dHJpbmdWYWx1ZShjb25zdF9jYXN0PGNoYXIqPihjc3RyXykpOwotfQotCi12b2lkIFZhbHVlOjpD
WlN0cmluZzo6c3dhcChDWlN0cmluZyYgb3RoZXIpIHsKLSAgc3RkOjpzd2FwKGNzdHJfLCBvdGhl
ci5jc3RyXyk7Ci0gIHN0ZDo6c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Ci19Ci0KLVZhbHVl
OjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0oQ1pTdHJpbmcgb3RoZXIpIHsK
LSAgc3dhcChvdGhlcik7Ci0gIHJldHVybiAqdGhpczsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJp
bmc6Om9wZXJhdG9yPChjb25zdCBDWlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKLSAgaWYgKCFjc3Ry
XykgcmV0dXJuIGluZGV4XyA8IG90aGVyLmluZGV4XzsKLSAgLy9yZXR1cm4gc3RyY21wKGNzdHJf
LCBvdGhlci5jc3RyXykgPCAwOwotICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5z
aWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhl
cl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBtaW5fbGVuID0gc3Rk
OjptaW4odGhpc19sZW4sIG90aGVyX2xlbik7Ci0gIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNz
dHJfLCBvdGhlci5jc3RyXywgbWluX2xlbik7Ci0gIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7
Ci0gIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOwotICByZXR1cm4gKHRoaXNfbGVuIDwgb3Ro
ZXJfbGVuKTsKLX0KLQotYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pT
dHJpbmcmIG90aGVyKSBjb25zdCB7Ci0gIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPT0gb3Ro
ZXIuaW5kZXhfOwotICAvL3JldHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA9PSAwOwot
ICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KLSAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlz
LT5zdG9yYWdlXy5sZW5ndGhfOwotICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdl
Xy5sZW5ndGhfOwotICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
IGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgdGhpc19sZW4pOwot
ICByZXR1cm4gY29tcCA9PSAwOwotfQotCi1BcnJheUluZGV4IFZhbHVlOjpDWlN0cmluZzo6aW5k
ZXgoKSBjb25zdCB7IHJldHVybiBpbmRleF87IH0KLQotLy9jb25zdCBjaGFyKiBWYWx1ZTo6Q1pT
dHJpbmc6OmNfc3RyKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KLWNvbnN0IGNoYXIqIFZhbHVl
OjpDWlN0cmluZzo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Ci11bnNpZ25lZCBWYWx1
ZTo6Q1pTdHJpbmc6Omxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0K
LWJvb2wgVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0
b3JhZ2VfLnBvbGljeV8gPT0gbm9EdXBsaWNhdGlvbjsgfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6VmFsdWUKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLyohIFxpbnRlcm5hbCBEZWZhdWx0IGNv
bnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIG11c3QgYmUgZXF1aXZhbGVudCB0bzoKLSAqIG1lbXNl
dCggdGhpcywgMCwgc2l6ZW9mKFZhbHVlKSApCi0gKiBUaGlzIG9wdGltaXphdGlvbiBpcyB1c2Vk
IGluIFZhbHVlSW50ZXJuYWxNYXAgZmFzdCBhbGxvY2F0b3IuCi0gKi8KLVZhbHVlOjpWYWx1ZShW
YWx1ZVR5cGUgdnR5cGUpIHsKLSAgaW5pdEJhc2ljKHZ0eXBlKTsKLSAgc3dpdGNoICh2dHlwZSkg
ewotICBjYXNlIG51bGxWYWx1ZToKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgdmFsdWVfLmludF8gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIHJl
YWxWYWx1ZToKLSAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3Ry
aW5nVmFsdWU6Ci0gICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgIGJyZWFrOwotICBjYXNlIGFy
cmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8gPSBuZXcgT2Jq
ZWN0VmFsdWVzKCk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVl
Xy5ib29sXyA9IGZhbHNlOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci19Ci0KLVZhbHVlOjpWYWx1ZShJbnQgdmFsdWUpIHsKLSAgaW5p
dEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZh
bHVlKFVJbnQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7Ci0gIHZhbHVlXy51aW50
XyA9IHZhbHVlOwotfQotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1WYWx1ZTo6VmFsdWUo
SW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKGludFZhbHVlKTsKLSAgdmFsdWVfLmludF8gPSB2
YWx1ZTsKLX0KLVZhbHVlOjpWYWx1ZShVSW50NjQgdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHVpbnRW
YWx1ZSk7Ci0gIHZhbHVlXy51aW50XyA9IHZhbHVlOwotfQotI2VuZGlmIC8vIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCi0KLVZhbHVlOjpWYWx1ZShkb3VibGUgdmFsdWUpIHsKLSAgaW5pdEJhc2lj
KHJlYWxWYWx1ZSk7Ci0gIHZhbHVlXy5yZWFsXyA9IHZhbHVlOwotfQotCi1WYWx1ZTo6VmFsdWUo
Y29uc3QgY2hhciogdmFsdWUpIHsKLSAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKLSAg
dmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbih2YWx1ZSkpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNv
bnN0IGNoYXIqIGJlZ2luVmFsdWUsIGNvbnN0IGNoYXIqIGVuZFZhbHVlKSB7Ci0gIGluaXRCYXNp
YyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0gIHZhbHVlXy5zdHJpbmdfID0KLSAgICAgIGR1cGxpY2F0
ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKGJlZ2luVmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihl
bmRWYWx1ZSAtIGJlZ2luVmFsdWUpKTsKLX0KLQotVmFsdWU6OlZhbHVlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOwotICB2YWx1ZV8u
c3RyaW5nXyA9Ci0gICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZS5kYXRh
KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotCi1WYWx1ZTo6
VmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSkgewotICBpbml0QmFzaWMoc3RyaW5nVmFs
dWUpOwotICB2YWx1ZV8uc3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkp
OwotfQotCi0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6
Q29uc3RTdHJpbmcmIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7Ci0g
IHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOwotfQotI2VuZGlmCi0KLVZhbHVl
OjpWYWx1ZShib29sIHZhbHVlKSB7Ci0gIGluaXRCYXNpYyhib29sZWFuVmFsdWUpOwotICB2YWx1
ZV8uYm9vbF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZhbHVlKFZhbHVlIGNvbnN0JiBvdGhlcikK
LSAgICA6IHR5cGVfKG90aGVyLnR5cGVfKSwgYWxsb2NhdGVkXyhmYWxzZSkKLSAgICAgICwKLSAg
ICAgIGNvbW1lbnRzXyhudWxscHRyKSwgZGVmYXVsdF92YWx1ZV8obnVsbHB0ciksIHN0YXJ0Xyhv
dGhlci5zdGFydF8pLCBsaW1pdF8ob3RoZXIubGltaXRfKQotewotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICBjYXNlIGludFZhbHVlOgotICBjYXNlIHVpbnRWYWx1ZToK
LSAgY2FzZSByZWFsVmFsdWU6Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHZhbHVlXyA9IG90
aGVyLnZhbHVlXzsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAob3Ro
ZXIudmFsdWVfLnN0cmluZ18gJiYgb3RoZXIuYWxsb2NhdGVkXykgewotICAgICAgdW5zaWduZWQg
bGVuOwotICAgICAgY2hhciBjb25zdCogc3RyOwotICAgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmco
b3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sCi0gICAgICAgICAgJmxlbiwg
JnN0cik7Ci0gICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKHN0ciwgbGVuKTsKLSAgICAgIGFsbG9jYXRlZF8gPSB0cnVlOwotICAgIH0gZWxzZSB7Ci0g
ICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90aGVyLnZhbHVlXy5zdHJpbmdfOwotICAgICAgYWxsb2Nh
dGVkXyA9IGZhbHNlOwotICAgIH0KLSAgICBicmVhazsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBj
YXNlIG9iamVjdFZhbHVlOgotICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygqb3Ro
ZXIudmFsdWVfLm1hcF8pOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOwotICB9Ci0gIGlmIChvdGhlci5jb21tZW50c18pIHsKLSAgICBjb21tZW50
c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgICBmb3Ig
KGludCBjb21tZW50ID0gMDsgY29tbWVudCA8IG51bWJlck9mQ29tbWVudFBsYWNlbWVudDsgKytj
b21tZW50KSB7Ci0gICAgICBjb25zdCBDb21tZW50SW5mbyYgb3RoZXJDb21tZW50ID0gb3RoZXIu
Y29tbWVudHNfW2NvbW1lbnRdOwotICAgICAgaWYgKG90aGVyQ29tbWVudC5jb21tZW50XykKLSAg
ICAgICAgY29tbWVudHNfW2NvbW1lbnRdLnNldENvbW1lbnQoCi0gICAgICAgICAgICBvdGhlckNv
bW1lbnQuY29tbWVudF8sIHN0cmxlbihvdGhlckNvbW1lbnQuY29tbWVudF8pKTsKLSAgICB9Ci0g
IH0KLQotICBpZiAoIG90aGVyLmRlZmF1bHRfdmFsdWVfICkKLSAgewotICAgICAgICAgZGVmYXVs
dF92YWx1ZV8gPSBuZXcgVmFsdWUoICpvdGhlci5kZWZhdWx0X3ZhbHVlXyApOwotICB9Ci0KLX0K
LQotI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCi0vLyBNb3ZlIGNvbnN0cnVjdG9yCi1W
YWx1ZTo6VmFsdWUoVmFsdWUmJiBvdGhlcikgewotICBpbml0QmFzaWMobnVsbFZhbHVlKTsKLSAg
c3dhcChvdGhlcik7Ci19Ci0jZW5kaWYKLQotVmFsdWU6On5WYWx1ZSgpIHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICBpZiAoYWxsb2NhdGVkXykKLSAgICAgIHJlbGVh
c2VTdHJpbmdWYWx1ZSh2YWx1ZV8uc3RyaW5nXyk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlW
YWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBkZWxldGUgdmFsdWVfLm1hcF87Ci0gICAg
YnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLQot
ICBpZiAoY29tbWVudHNfKQotICAgIGRlbGV0ZVtdIGNvbW1lbnRzXzsKLQotICBpZiAoIGRlZmF1
bHRfdmFsdWVfKQotICAgICAgICAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOwotfQotCi1WYWx1ZSYg
VmFsdWU6Om9wZXJhdG9yPShWYWx1ZSBvdGhlcikgewotICBzd2FwKG90aGVyKTsKLSAgcmV0dXJu
ICp0aGlzOwotfQotCi12b2lkIFZhbHVlOjpzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpIHsKLSAg
VmFsdWVUeXBlIHRlbXAgPSB0eXBlXzsKLSAgdHlwZV8gPSBvdGhlci50eXBlXzsKLSAgb3RoZXIu
dHlwZV8gPSB0ZW1wOwotICBzdGQ6OnN3YXAodmFsdWVfLCBvdGhlci52YWx1ZV8pOwotICBpbnQg
dGVtcDIgPSBhbGxvY2F0ZWRfOwotICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAg
b3RoZXIuYWxsb2NhdGVkXyA9IHRlbXAyICYgMHgxOwotfQotCi12b2lkIFZhbHVlOjpzd2FwKFZh
bHVlJiBvdGhlcikgewotICBzd2FwUGF5bG9hZChvdGhlcik7Ci0gIHN0ZDo6c3dhcChjb21tZW50
c18sIG90aGVyLmNvbW1lbnRzXyk7Ci0gIHN0ZDo6c3dhcChkZWZhdWx0X3ZhbHVlXywgb3RoZXIu
ZGVmYXVsdF92YWx1ZV8pOwotICBzdGQ6OnN3YXAoc3RhcnRfLCBvdGhlci5zdGFydF8pOwotICBz
dGQ6OnN3YXAobGltaXRfLCBvdGhlci5saW1pdF8pOwotfQotCi1WYWx1ZVR5cGUgVmFsdWU6OnR5
cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQotCi1pbnQgVmFsdWU6OmNvbXBhcmUoY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlmICgqdGhpcyA8IG90aGVyKQotICAgIHJldHVybiAt
MTsKLSAgaWYgKCp0aGlzID4gb3RoZXIpCi0gICAgcmV0dXJuIDE7Ci0gIHJldHVybiAwOwotfQot
Ci1ib29sIFZhbHVlOjpvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7Ci0gIGlu
dCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICBpZiAodHlwZURlbHRhKQotICAg
IHJldHVybiB0eXBlRGVsdGEgPCAwID8gdHJ1ZSA6IGZhbHNlOwotICBzd2l0Y2ggKHR5cGVfKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiBmYWxzZTsKLSAgY2FzZSBpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKLSAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5y
ZWFsXzsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90
aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIGlmICgodmFs
dWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7Ci0gICAg
ICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18pIHJldHVybiB0cnVlOwotICAgICAgZWxzZSByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIHVuc2lnbmVkIG90
aGVyX2xlbjsKLSAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgICBjaGFyIGNvbnN0KiBvdGhl
cl9zdHI7Ci0gICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+
dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAgICBkZWNvZGVQcmVmaXhl
ZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xl
biwgJm90aGVyX3N0cik7Ci0gICAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVu
LCBvdGhlcl9sZW4pOwotICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIs
IG1pbl9sZW4pOwotICAgIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGNvbXAg
PiAwKSByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Ci0g
IH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgaW50IGRl
bHRhID0gaW50KHZhbHVlXy5tYXBfLT5zaXplKCkgLSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgp
KTsKLSAgICBpZiAoZGVsdGEpCi0gICAgICByZXR1cm4gZGVsdGEgPCAwOwotICAgIHJldHVybiAo
KnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1hcF8pOwotICB9Ci0gIGRlZmF1bHQ6Ci0g
ICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJl
YWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsgfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
cj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsg
fQotCi1ib29sIFZhbHVlOjpvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBvdGhlciA8ICp0aGlzOyB9Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdCB7Ci0gIC8vIGlmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAv
LyBHQ0MgMi45NS4zIHNheXM6Ci0gIC8vIGF0dGVtcHQgdG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1m
aWVsZCBzdHJ1Y3R1cmUgbWVtYmVyIGBKc29uOjpWYWx1ZTo6dHlwZV8nCi0gIC8vIEJlYXRzIG1l
LCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4KLSAgaW50IHRlbXAgPSBvdGhlci50eXBl
XzsKLSAgaWYgKHR5cGVfICE9IHRlbXApCi0gICAgcmV0dXJuIGZhbHNlOwotICBzd2l0Y2ggKHR5
cGVfKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiB0cnVlOwotICBjYXNlIGludFZh
bHVlOgotICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50XzsKLSAgY2Fz
ZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhlci52YWx1ZV8udWlu
dF87Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIu
dmFsdWVfLnJlYWxfOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAg
IGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDAp
KSB7Ci0gICAgICByZXR1cm4gKHZhbHVlXy5zdHJpbmdfID09IG90aGVyLnZhbHVlXy5zdHJpbmdf
KTsKLSAgICB9Ci0gICAgdW5zaWduZWQgdGhpc19sZW47Ci0gICAgdW5zaWduZWQgb3RoZXJfbGVu
OwotICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGNoYXIgY29uc3QqIG90aGVyX3N0cjsK
LSAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8u
c3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5n
KG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLCAmb3Ro
ZXJfc3RyKTsKLSAgICBpZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7Ci0g
ICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90aGVyX3N0ciwgdGhpc19sZW4pOwotICAg
IHJldHVybiBjb21wID09IDA7Ci0gIH0KLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVj
dFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IG90aGVyLnZhbHVlXy5t
YXBfLT5zaXplKCkgJiYKLSAgICAgICAgICAgKCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1
ZV8ubWFwXyk7Ci0gIGRlZmF1bHQ6Ci0gICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gIH0K
LSAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQotfQotCi1ib29sIFZhbHVlOjpvcGVyYXRv
ciE9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
IH0KLQotY29uc3QgY2hhciogVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0IHsKLSAgSlNPTl9BU1NF
UlRfTUVTU0FHRSh0eXBlXyA9PSBzdHJpbmdWYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAi
aW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOwotICBp
ZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuIDA7Ci0gIHVuc2lnbmVkIHRoaXNfbGVuOwot
ICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKLSAg
cmV0dXJuIHRoaXNfc3RyOwotfQotCi1ib29sIFZhbHVlOjpnZXRTdHJpbmcoY2hhciBjb25zdCoq
IHN0ciwgY2hhciBjb25zdCoqIGNlbmQpIGNvbnN0IHsKLSAgaWYgKHR5cGVfICE9IHN0cmluZ1Zh
bHVlKSByZXR1cm4gZmFsc2U7Ci0gIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gZmFs
c2U7Ci0gIHVuc2lnbmVkIGxlbmd0aDsKLSAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZsZW5ndGgsIHN0cik7Ci0gICpjZW5kID0g
KnN0ciArIGxlbmd0aDsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjph
c1N0cmluZygpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToK
LSAgICByZXR1cm4gIiI7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAgICBpZiAodmFsdWVf
LnN0cmluZ18gPT0gMCkgcmV0dXJuICIiOwotICAgIHVuc2lnbmVkIHRoaXNfbGVuOwotICAgIGNo
YXIgY29uc3QqIHRoaXNfc3RyOwotICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9j
YXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7Ci0gICAg
cmV0dXJuIHN0ZDo6c3RyaW5nKHRoaXNfc3RyLCB0aGlzX2xlbik7Ci0gIH0KLSAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/ICJ0cnVlIiA6ICJmYWxzZSI7Ci0g
IGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLmludF8pOwot
ICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8udWludF8p
OwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8ucmVh
bF8pOwotICBkZWZhdWx0OgotICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1N0cmluZygpOwotICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgfQotfQotCi0jaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKLUNwcFRMOjpDb25zdFN0cmluZyBWYWx1ZTo6YXNDb25zdFN0cmluZygpIGNvbnN0IHsK
LSAgdW5zaWduZWQgbGVuOwotICBjaGFyIGNvbnN0KiBzdHI7Ci0gIGRlY29kZVByZWZpeGVkU3Ry
aW5nKGFsbG9jYXRlZF8sIHZhbHVlXy5zdHJpbmdfLAotICAgICAgJmxlbiwgJnN0cik7Ci0gIHJl
dHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoc3RyLCBsZW4pOwotfQotI2VuZGlmCi0KLVZhbHVlOjpJ
bnQgVmFsdWU6OmFzSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50
VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdEludCBvdXQg
b2YgSW50IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludCh2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWlu
dFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RVSW50IG91
dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gSW50KHZhbHVlXy51aW50Xyk7Ci0gIGNhc2Ug
cmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8s
IG1pbkludCwgbWF4SW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9m
IEludCByYW5nZSIpOwotICAgIHJldHVybiBJbnQodmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgcmV0dXJuIDA7Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHJldHVybiB2
YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92
YWx1ZV8gKQotICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQoKTsK
LSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgfQotfQotCi1WYWx1
ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJ
bnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludCh2YWx1ZV8uaW50Xyk7Ci0g
IGNhc2UgdWludFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJn
ZXN0VUludCBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50
Xyk7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2
YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJs
ZSBvdXQgb2YgVUludCByYW5nZSIpOwotICAgIHJldHVybiBVSW50KHZhbHVlXy5yZWFsXyk7Ci0g
IGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAo
IGRlZmF1bHRfdmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8t
PmFzVUludCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiAwdTsKLSAg
fQotfQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OkludDY0IFZhbHVl
Ojphc0ludDY0KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6
Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQg
cmFuZ2UiKTsKLSAgICByZXR1cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKLSAgY2FzZSByZWFsVmFs
dWU6Ci0gICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50
NjQsIG1heEludDY0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIElu
dDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7Ci0gIGNhc2UgbnVs
bFZhbHVlOgotICAgIHJldHVybiAwOwotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4g
dmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAoIGRlZmF1bHRf
dmFsdWVfICkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzSW50NjQo
KTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMGw7Ci0gIH0KLX0KLQot
VmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50NjQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8p
IHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludDY0KCks
ICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICByZXR1cm4gVUludDY0KHZh
bHVlXy5pbnRfKTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
dWludF8pOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFu
Z2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ImRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlIik7Ci0gICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8u
cmVhbF8pOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBib29sZWFu
VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICBkZWZhdWx0OgotICAg
ICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHRfdmFsdWVfLT5hc1VJbnQ2NCgpOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiAwdWw7Ci0gIH0KLX0KLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQot
Ci1MYXJnZXN0SW50IFZhbHVlOjphc0xhcmdlc3RJbnQoKSBjb25zdCB7Ci0jaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQotICByZXR1cm4gYXNJbnQoKTsKLSNlbHNlCi0gIHJldHVybiBhc0ludDY0
KCk7Ci0jZW5kaWYKLX0KLQotTGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25z
dCB7Ci0jaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICByZXR1cm4gYXNVSW50KCk7Ci0jZWxz
ZQotICByZXR1cm4gYXNVSW50NjQoKTsKLSNlbmRpZgotfQotCi1kb3VibGUgVmFsdWU6OmFzRG91
YmxlKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVfLmludF8pOwotICBjYXNlIHVpbnRWYWx1
ZToKLSNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8udWludF8pOwotI2Vsc2UgIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBpbnRl
Z2VyVG9Eb3VibGUodmFsdWVfLnVpbnRfKTsKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VT
RV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcmV0dXJu
IHZhbHVlXy5yZWFsXzsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJuIDAuMDsKLSAgY2Fz
ZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMCA6IDAuMDsKLSAg
ZGVmYXVsdDoKLSAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAgICAgICAgICAgICAg
IHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNEb3VibGUoKTsKLSAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMC4wOwotICB9Ci19Ci0KLWZsb2F0IFZhbHVlOjphc0Zsb2F0KCkg
Y29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8uaW50Xyk7Ci0gIGNhc2UgdWludFZhbHVlOgotI2lm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnVpbnRfKTsKLSNlbHNlICAvLyBpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICByZXR1cm4gaW50ZWdlclRvRG91
YmxlKHZhbHVlXy51aW50Xyk7Ci0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCi0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4odmFsdWVfLnJlYWxfKTsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcmV0dXJu
IDAuMDsKLSAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEu
MGYgOiAwLjBmOwotICBkZWZhdWx0OgotICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQotICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzRmxvYXQoKTsKLSAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgIHJldHVybiAwLjBmOwotICB9Ci19Ci0KLWJvb2wgVmFsdWU6OmFzQm9v
bCgpIGNvbnN0IHsKLSAgc3dpdGNoICh0eXBlXykgewotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfOwotICBjYXNlIG51bGxWYWx1ZToKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZh
bHNlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6
IGZhbHNlOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICAvLyBUaGlzIGlzIGtpbmQgb2Ygc3RyYW5n
ZS4gTm90IHJlY29tbWVuZGVkLgotICAgIHJldHVybiAodmFsdWVfLnJlYWxfICE9IDAuMCkgPyB0
cnVlIDogZmFsc2U7Ci0gIGRlZmF1bHQ6Ci0gICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCi0g
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNCb29sKCk7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLX0KLQotYm9vbCBWYWx1ZTo6aXND
b252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3QgewotICBzd2l0Y2ggKG90aGVyKSB7
Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHJldHVybiAoaXNOdW1lcmljKCkgJiYgYXNEb3VibGUo
KSA9PSAwLjApIHx8Ci0gICAgICAgICAgICh0eXBlXyA9PSBib29sZWFuVmFsdWUgJiYgdmFsdWVf
LmJvb2xfID09IGZhbHNlKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gc3RyaW5nVmFsdWUgJiYg
YXNTdHJpbmcoKSA9PSAiIikgfHwKLSAgICAgICAgICAgKHR5cGVfID09IGFycmF5VmFsdWUgJiYg
dmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICAodHlwZV8gPT0gb2JqZWN0
VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAotICAgICAgICAgICB0eXBlXyA9
PSBudWxsVmFsdWU7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIGlzSW50KCkgfHwKLSAg
ICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWlu
SW50LCBtYXhJbnQpKSB8fAotICAgICAgICAgICB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlw
ZV8gPT0gbnVsbFZhbHVlOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICByZXR1cm4gaXNVSW50KCkg
fHwKLSAgICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFs
XywgMCwgbWF4VUludCkpIHx8Ci0gICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiBpc051bWVy
aWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9v
bGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAg
ICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09
IHN0cmluZ1ZhbHVlIHx8Ci0gICAgICAgICAgIHR5cGVfID09IG51bGxWYWx1ZTsKLSAgY2FzZSBh
cnJheVZhbHVlOgotICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlIHx8IHR5cGVfID09IG51
bGxWYWx1ZTsKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICByZXR1cm4gdHlwZV8gPT0gb2JqZWN0
VmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICB9Ci0gIEpTT05fQVNTRVJUX1VOUkVBQ0hB
QkxFOwotICByZXR1cm4gZmFsc2U7Ci19Ci0KLS8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5
IG9yIG9iamVjdAotQXJyYXlJbmRleCBWYWx1ZTo6c2l6ZSgpIGNvbnN0IHsKLSAgc3dpdGNoICh0
eXBlXykgewotICBjYXNlIG51bGxWYWx1ZToKLSAgY2FzZSBpbnRWYWx1ZToKLSAgY2FzZSB1aW50
VmFsdWU6Ci0gIGNhc2UgcmVhbFZhbHVlOgotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgY2FzZSBz
dHJpbmdWYWx1ZToKLSAgICByZXR1cm4gMDsKLSAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9m
IHRoZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQotICAgIGlmICghdmFsdWVfLm1hcF8tPmVt
cHR5KCkpIHsKLSAgICAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFs
dWVfLm1hcF8tPmVuZCgpOwotICAgICAgLS1pdExhc3Q7Ci0gICAgICByZXR1cm4gKCppdExhc3Qp
LmZpcnN0LmluZGV4KCkgKyAxOwotICAgIH0KLSAgICByZXR1cm4gMDsKLSAgY2FzZSBvYmplY3RW
YWx1ZToKLSAgICByZXR1cm4gQXJyYXlJbmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKLSAgfQot
ICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOwot
fQotCi1ib29sIFZhbHVlOjplbXB0eSgpIGNvbnN0IHsKLSAgaWYgKGlzTnVsbCgpIHx8IGlzQXJy
YXkoKSB8fCBpc09iamVjdCgpKQotICAgIHJldHVybiBzaXplKCkgPT0gMHU7Ci0gIGVsc2UKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0IHsgcmV0
dXJuIGlzTnVsbCgpOyB9Ci0KLXZvaWQgVmFsdWU6OmNsZWFyKCkgewotICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgICAgICAg
ICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1
ZSIpOwotICBzdGFydF8gPSAwOwotICBsaW1pdF8gPSAwOwotICBkZWxldGUgZGVmYXVsdF92YWx1
ZV87Ci0gIGRlZmF1bHRfdmFsdWVfID0gbnVsbHB0cjsKLSAgc3dpdGNoICh0eXBlXykgewotICBj
YXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgdmFsdWVfLm1hcF8tPmNs
ZWFyKCk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLX0KLQotdm9p
ZCBWYWx1ZTo6cmVzaXplKEFycmF5SW5kZXggbmV3U2l6ZSkgewotICBKU09OX0FTU0VSVF9NRVNT
QUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgICAg
ICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzaXplKCk6IHJlcXVpcmVzIGFycmF5VmFs
dWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICAqdGhpcyA9IFZhbHVlKGFycmF5
VmFsdWUpOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIGlmIChuZXdTaXplID09
IDApCi0gICAgY2xlYXIoKTsKLSAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCi0gICAgKCp0
aGlzKVtuZXdTaXplIC0gMV07Ci0gIGVsc2UgewotICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9
IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCkgewotICAgICAgdmFsdWVfLm1hcF8t
PmVyYXNlKGluZGV4KTsKLSAgICB9Ci0gICAgYXNzZXJ0KHNpemUoKSA9PSBuZXdTaXplKTsKLSAg
fQotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgewotICBK
U09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09
IGFycmF5VmFsdWUsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRl
eCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAg
ICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOwotICBDWlN0cmluZyBrZXkoaW5kZXgpOwotICBP
YmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGtleSk7
Ci0gIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0ga2V5KQot
ICAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0KLSAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRl
ZmF1bHRWYWx1ZShrZXksIG51bGxSZWYpOwotICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQs
IGRlZmF1bHRWYWx1ZSk7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLVZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4
KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAoKnRoaXMpW0FycmF5SW5k
ZXgoaW5kZXgpXTsKLX0KLQotY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5cGVfID09
IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAotICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKLSAg
aWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVsbFJlZjsKLSAgQ1pTdHJpbmcg
a2V5KGluZGV4KTsKLSAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0
dXJuIG51bGxSZWY7Ci0gIHJldHVybiAoKml0KS5zZWNvbmQ7Ci19Ci0KLWNvbnN0IFZhbHVlJiBW
YWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0IHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FH
RSgKLSAgICAgIGluZGV4ID49IDAsCi0gICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10o
aW50IGluZGV4KSBjb25zdDogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Ci0gIHJldHVybiAo
KnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKLX0KLQotdm9pZCBWYWx1ZTo6aW5pdEJhc2ljKFZh
bHVlVHlwZSB2dHlwZSwgYm9vbCBhbGxvY2F0ZWQpIHsKLSAgdHlwZV8gPSB2dHlwZTsKLSAgYWxs
b2NhdGVkXyA9IGFsbG9jYXRlZDsKLSAgY29tbWVudHNfID0gMDsKLSAgc3RhcnRfID0gMDsKLSAg
bGltaXRfID0gMDsKLSAgZGVmYXVsdF92YWx1ZV8gPSBudWxscHRyOwotfQotCi0vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotLy8gQHByZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwuCi0v
LyBAcGFyYW0ga2V5IGlzIG51bGwtdGVybWluYXRlZC4KLVZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJl
ZmVyZW5jZShjb25zdCBjaGFyKiBrZXkpIHsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAg
IHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBK
c29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSgpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOwot
ICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQotICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUp
OwotICBDWlN0cmluZyBhY3R1YWxLZXkoCi0gICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4oa2V5KSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsgLy8gTk9URSEKLSAgT2Jq
ZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxL
ZXkpOwotICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFj
dHVhbEtleSkKLSAgICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gIE9iamVjdFZhbHVlczo6dmFs
dWVfdHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKLSAgaXQgPSB2YWx1ZV8u
bWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOwotICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5z
ZWNvbmQ7Ci0gIHJldHVybiB2YWx1ZTsKLX0KLQotLy8gQHBhcmFtIGtleSBpcyBub3QgbnVsbC10
ZXJtaW5hdGVkLgotVmFsdWUmIFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNoYXIgY29uc3QqIGtl
eSwgY2hhciBjb25zdCogY2VuZCkKLXsKLSAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKLSAgICAgIHR5
cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKLSAgICAgICJpbiBKc29u
OjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShrZXksIGVuZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVl
Iik7Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgKnRoaXMgPSBWYWx1ZShvYmplY3RW
YWx1ZSk7Ci0gIENaU3RyaW5nIGFjdHVhbEtleSgKLSAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6OmR1cGxpY2F0ZU9uQ29weSk7Ci0gIE9iamVjdFZh
bHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsK
LSAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxL
ZXkpCi0gICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLQotICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5
cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwgbnVsbFJlZik7Ci0gIGl0ID0gdmFsdWVfLm1hcF8t
Pmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKLSAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25k
OwotICByZXR1cm4gdmFsdWU7Ci19Ci0KLVZhbHVlIFZhbHVlOjpnZXQoQXJyYXlJbmRleCBpbmRl
eCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogdmFs
dWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKLSAgaWYgKCB2YWx1ZSA9PSAmbnVsbFJlZiApCi0gIHsK
LSAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gIH0KLSAgZWxzZQotICB7Ci0gICAgICAg
ICBWYWx1ZSByZXN1bHQgPSAqdmFsdWU7Ci0gICAgICAgICByZXN1bHQuZGVmYXVsdF92YWx1ZV8g
PSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOwotICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
fQotfQotCi1ib29sIFZhbHVlOjppc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gaW5kZXggPCBzaXplKCk7IH0KLQotVmFsdWUgY29uc3QqIFZhbHVlOjpmaW5kKGNo
YXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkgY29uc3QKLXsKLSAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKLSAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1
ZSwKLSAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJl
cyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkg
cmV0dXJuIE5VTEw7Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAgT2JqZWN0VmFsdWVz
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7Ci0gIGlm
IChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHJldHVybiBOVUxMOwotICByZXR1cm4gJigqaXQp
LnNlY29uZDsKLX0KLWNvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBjaGFyKiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJs
ZW4oa2V5KSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5k
OwotfQotVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGNvbnN0JiBr
ZXkpIGNvbnN0Ci17Ci0gIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmRhdGEoKSwga2V5
LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Ci0gIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOwot
ICByZXR1cm4gKmZvdW5kOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hh
cioga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleSwga2V5ICsgc3RybGVuKGtl
eSkpOwotfQotCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSkgewotICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsg
a2V5Lmxlbmd0aCgpKTsKLX0KLQotVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IFN0YXRp
Y1N0cmluZyYga2V5KSB7Ci0gIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpKTsK
LX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29u
c3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsKLSAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uo
a2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci1WYWx1ZSBjb25zdCYgVmFsdWU6Om9w
ZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIFZhbHVl
IGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Ci0gIGlm
ICghZm91bmQpIHJldHVybiBudWxsUmVmOwotICByZXR1cm4gKmZvdW5kOwotfQotI2VuZGlmCi0K
LVZhbHVlJiBWYWx1ZTo6YXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gKCp0aGlz
KVtzaXplKCldID0gdmFsdWU7IH0KLQotVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXks
IGNoYXIgY29uc3QqIGNlbmQsIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0g
IFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgaWYgKCAhZm91bmQgKQot
ICB7Ci0gICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICB9Ci0gIGVsc2UKLSAgewotICAg
ICAgICAgVmFsdWUgcmVzdWx0ID0gKmZvdW5kOwotICAgICAgICAgcmVzdWx0LmRlZmF1bHRfdmFs
dWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsKLSAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gIH0KLX0KLVZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBWYWx1ZSBjb25zdCYg
ZGVmYXVsdFZhbHVlKSBjb25zdAotewotICByZXR1cm4gZ2V0KGtleSwga2V5ICsgc3RybGVuKGtl
eSksIGRlZmF1bHRWYWx1ZSk7Ci19Ci1WYWx1ZSBWYWx1ZTo6Z2V0KHN0ZDo6c3RyaW5nIGNvbnN0
JiBrZXksIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0gIHJldHVybiBnZXQo
a2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgZGVmYXVsdFZhbHVlKTsKLX0K
LQotCi1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFy
KiBjZW5kLCBWYWx1ZSogcmVtb3ZlZCkKLXsKLSAgaWYgKHR5cGVfICE9IG9iamVjdFZhbHVlKSB7
Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKLSAg
T2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7
Ci0gIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICAq
cmVtb3ZlZCA9IGl0LT5zZWNvbmQ7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdCk7Ci0gIHJldHVy
biB0cnVlOwotfQotYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgVmFs
dWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSwgcmVtb3ZlZCk7Ci19Ci1ib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcg
Y29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpCi17Ci0gIHJldHVybiByZW1vdmVNZW1iZXIoa2V5
LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgcmVtb3ZlZCk7Ci19Ci1WYWx1ZSBW
YWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgSlNPTl9BU1NFUlRfTUVT
U0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIoKTogcmVxdWlyZXMg
b2JqZWN0VmFsdWUiKTsKLSAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKLSAgICByZXR1cm4gbnVs
bFJlZjsKLQotICBWYWx1ZSByZW1vdmVkOyAgLy8gbnVsbAotICByZW1vdmVNZW1iZXIoa2V5LCBr
ZXkgKyBzdHJsZW4oa2V5KSwgJnJlbW92ZWQpOwotICByZXR1cm4gcmVtb3ZlZDsgLy8gc3RpbGwg
bnVsbCBpZiByZW1vdmVNZW1iZXIoKSBkaWQgbm90aGluZwotfQotVmFsdWUgVmFsdWU6OnJlbW92
ZU1lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KQotewotICByZXR1cm4gcmVtb3ZlTWVtYmVy
KGtleS5jX3N0cigpKTsKLX0KLQotYm9vbCBWYWx1ZTo6cmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBp
bmRleCwgVmFsdWUqIHJlbW92ZWQpIHsKLSAgaWYgKHR5cGVfICE9IGFycmF5VmFsdWUpIHsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgQ1pTdHJpbmcga2V5KGluZGV4KTsKLSAgT2JqZWN0VmFs
dWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7Ci0gIGlmIChpdCA9PSB2
YWx1ZV8ubWFwXy0+ZW5kKCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgKnJlbW92ZWQg
PSBpdC0+c2Vjb25kOwotICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gIC8vIHNoaWZ0
IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8gdGhlIHBsYWNlIG9mIHRoZSAicmVtb3ZlZCIKLSAg
Zm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsgaSA8IChvbGRTaXplIC0gMSk7ICsraSl7Ci0gICAg
Q1pTdHJpbmcga2VleShpKTsKLSAgICAoKnZhbHVlXy5tYXBfKVtrZWV5XSA9ICgqdGhpcylbaSAr
IDFdOwotICB9Ci0gIC8vIGVyYXNlIHRoZSBsYXN0IG9uZSAoImxlZnRvdmVyIikKLSAgQ1pTdHJp
bmcga2V5TGFzdChvbGRTaXplIC0gMSk7Ci0gIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXRMYXN0
ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5TGFzdCk7Ci0gIHZhbHVlXy5tYXBfLT5lcmFzZShpdExh
c3QpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSBW
YWx1ZTo6Z2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LAotICAgICAgICAgICAgICAg
ICBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7Ci0gIHJldHVybiBnZXQoa2V5LmNf
c3RyKCksIGtleS5lbmRfY19zdHIoKSwgZGVmYXVsdFZhbHVlKTsKLX0KLSNlbmRpZgotCi1ib29s
IFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0
Ci17Ci0gIFZhbHVlIGNvbnN0KiB2YWx1ZSA9IGZpbmQoa2V5LCBjZW5kKTsKLSAgcmV0dXJuIE5V
TEwgIT0gdmFsdWU7Ci19Ci1ib29sIFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXkpIGNv
bnN0Ci17Ci0gIHJldHVybiBpc01lbWJlcihrZXksIGtleSArIHN0cmxlbihrZXkpKTsKLX0KLWJv
b2wgVmFsdWU6OmlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Ci17Ci0gIHJl
dHVybiBpc01lbWJlcihrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKLX0K
LQotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi1ib29sIFZhbHVlOjppc01lbWJlcihjb25zdCBDcHBU
TDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3QgewotICByZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3Ry
KCksIGtleS5lbmRfY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQotVmFsdWU6Ok1lbWJlcnMgVmFsdWU6
OmdldE1lbWJlck5hbWVzKCkgY29uc3QgewotICBKU09OX0FTU0VSVF9NRVNTQUdFKAotICAgICAg
dHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAotICAgICAgImluIEpz
b246OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7
Ci0gIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCi0gICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7
Ci0gIE1lbWJlcnMgbWVtYmVyczsKLSAgbWVtYmVycy5yZXNlcnZlKHZhbHVlXy5tYXBfLT5zaXpl
KCkpOwotICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJl
Z2luKCk7Ci0gIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFw
Xy0+ZW5kKCk7Ci0gIGZvciAoOyBpdCAhPSBpdEVuZDsgKytpdCkgewotICAgIG1lbWJlcnMucHVz
aF9iYWNrKHN0ZDo6c3RyaW5nKCgqaXQpLmZpcnN0LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKml0KS5maXJzdC5sZW5ndGgoKSkpOwotICB9Ci0gIHJldHVybiBt
ZW1iZXJzOwotfQotLy8KLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gRW51bU1lbWJlck5h
bWVzCi0vLyBWYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkgY29uc3QKLS8vewotLy8gICBpZiAoIHR5
cGVfID09IG9iamVjdFZhbHVlICkKLS8vICAgewotLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06
OmFueSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCi0vLyAgICAgICAgIENwcFRMOjpFbnVtOjpr
ZXlzKCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAot
Ly8gICAgICAgICBNZW1iZXJOYW1lc1RyYW5zZm9ybSgpICkgKTsKLS8vICAgfQotLy8gICByZXR1
cm4gRW51bU1lbWJlck5hbWVzKCk7Ci0vL30KLS8vCi0vLwotLy8gRW51bVZhbHVlcwotLy8gVmFs
dWU6OmVudW1WYWx1ZXMoKSBjb25zdAotLy97Ci0vLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFs
dWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVt
OjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ3BwVEw6OlR5cGU8Y29uc3QgVmFsdWUgJj4oKSApOwotLy8gICByZXR1cm4g
RW51bVZhbHVlcygpOwotLy99Ci0vLwotLy8jIGVuZGlmCi0KLXN0YXRpYyBib29sIElzSW50ZWdy
YWwoZG91YmxlIGQpIHsKLSAgZG91YmxlIGludGVncmFsX3BhcnQ7Ci0gIHJldHVybiBtb2RmKGQs
ICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsgfQotCi1ib29sIFZhbHVlOjppc0Jvb2woKSBj
b25zdCB7IHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFsdWU7IH0KLQotYm9vbCBWYWx1ZTo6aXNJ
bnQoKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBy
ZXR1cm4gdmFsdWVfLmludF8gPj0gbWluSW50ICYmIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAg
Y2FzZSB1aW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7
Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYm
IHZhbHVlXy5yZWFsXyA8PSBtYXhJbnQgJiYKLSAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8u
cmVhbF8pOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBWYWx1ZTo6aXNVSW50KCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVfKSB7Ci0gIGNh
c2UgaW50VmFsdWU6Ci0gICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQo
dmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJbnQpOwotICBjYXNlIHVpbnRWYWx1ZToK
LSAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJbnQ7Ci0gIGNhc2UgcmVhbFZhbHVlOgot
ICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAm
JgotICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gIGRlZmF1bHQ6Ci0gICAg
YnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFZhbHVlOjppc0ludDY0KCkg
Y29uc3QgewotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsK
LSAgY2FzZSBpbnRWYWx1ZToKLSAgICByZXR1cm4gdHJ1ZTsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50NjQobWF4SW50NjQpOwotICBjYXNlIHJlYWxW
YWx1ZToKLSAgICAvLyBOb3RlIHRoYXQgbWF4SW50NjQgKD0gMl42MyAtIDEpIGlzIG5vdCBleGFj
dGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heEludDY0
KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCi0gICAgLy8gcmVxdWly
ZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICByZXR1
cm4gdmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2NCkgJiYKLSAgICAgICAgICAgdmFsdWVf
LnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJiBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0g
IGRlZmF1bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAotICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVmFsdWU6OmlzVUludDY0KCkgY29uc3QgewotI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBpbnRWYWx1
ZToKLSAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsKLSAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
cmV0dXJuIHRydWU7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50
NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgIC8v
IGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQu
IFRoZXJlZm9yZSB3ZQotICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxl
c3MgdGhhbiB0aGUgbGltaXQuCi0gICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVl
Xy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCi0gICAgICAgICAgIElzSW50ZWdyYWwodmFs
dWVfLnJlYWxfKTsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotI2VuZGlmIC8vIEpTT05f
SEFTX0lOVDY0Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgp
IGNvbnN0IHsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgp
IHx8IGlzVUludDY0KCk7Ci0jZWxzZQotICByZXR1cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKLSNl
bmRpZgotfQotCi1ib29sIFZhbHVlOjppc0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09
IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7IH0KLQotYm9vbCBWYWx1ZTo6aXNOdW1lcmljKCkg
Y29uc3QgeyByZXR1cm4gaXNJbnRlZ3JhbCgpIHx8IGlzRG91YmxlKCk7IH0KLQotYm9vbCBWYWx1
ZTo6aXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBzdHJpbmdWYWx1ZTsgfQotCi1i
b29sIFZhbHVlOjppc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsg
fQotCi1ib29sIFZhbHVlOjppc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IG9iamVj
dFZhbHVlOyB9Ci0KLXZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwg
c2l6ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKLSAgaWYgKCFjb21tZW50
c18pCi0gICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNl
bWVudF07Ci0gIGlmICgobGVuID4gMCkgJiYgKGNvbW1lbnRbbGVuLTFdID09ICdcbicpKSB7Ci0g
ICAgLy8gQWx3YXlzIGRpc2NhcmQgdHJhaWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9u
LgotICAgIGxlbiAtPSAxOwotICB9Ci0gIGNvbW1lbnRzX1twbGFjZW1lbnRdLnNldENvbW1lbnQo
Y29tbWVudCwgbGVuKTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBj
b21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgewotICBzZXRDb21tZW50KGNvbW1l
bnQsIHN0cmxlbihjb21tZW50KSwgcGxhY2VtZW50KTsKLX0KLQotdm9pZCBWYWx1ZTo6c2V0Q29t
bWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIHsKLSAgc2V0Q29tbWVudChjb21tZW50LmNfc3RyKCksIGNvbW1lbnQubGVuZ3RoKCksIHBs
YWNlbWVudCk7Ci19Ci0KLWJvb2wgVmFsdWU6Omhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQpIGNvbnN0IHsKLSAgcmV0dXJuIGNvbW1lbnRzXyAhPSAwICYmIGNvbW1lbnRzX1tw
bGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Ci19Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjpnZXRDb21t
ZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7Ci0gIGlmIChoYXNDb21tZW50
KHBsYWNlbWVudCkpCi0gICAgcmV0dXJuIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfOwot
ICByZXR1cm4gIiI7Ci19Ci0KLXZvaWQgVmFsdWU6OnNldE9mZnNldFN0YXJ0KHNpemVfdCBzdGFy
dCkgeyBzdGFydF8gPSBzdGFydDsgfQotCi12b2lkIFZhbHVlOjpzZXRPZmZzZXRMaW1pdChzaXpl
X3QgbGltaXQpIHsgbGltaXRfID0gbGltaXQ7IH0KLQotc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRT
dGFydCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0XzsgfQotCi1zaXplX3QgVmFsdWU6OmdldE9mZnNl
dExpbWl0KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9Ci0KLXN0ZDo6c3RyaW5nIFZhbHVlOjp0
b1N0eWxlZFN0cmluZygpIGNvbnN0IHsKLSAgU3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgcmV0dXJu
IHdyaXRlci53cml0ZSgqdGhpcyk7Ci19Ci0KLVZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6
YmVnaW4oKSBjb25zdCB7Ci0gIHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgot
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBj
b25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1
bHQ6Ci0gICAgYnJlYWs7Ci0gIH0KLSAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Ci19Ci0KLVZh
bHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6ZW5kKCkgY29uc3QgewotICBzd2l0Y2ggKHR5cGVf
KSB7Ci0gIGNhc2UgYXJyYXlWYWx1ZToKLSAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICBpZiAodmFs
dWVfLm1hcF8pCi0gICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgp
KTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICByZXR1cm4gY29u
c3RfaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjpiZWdpbigpIHsKLSAg
c3dpdGNoICh0eXBlXykgewotICBjYXNlIGFycmF5VmFsdWU6Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgaWYgKHZhbHVlXy5tYXBfKQotICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBf
LT5iZWdpbigpKTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgfQotICBy
ZXR1cm4gaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjplbmQoKSB7Ci0g
IHN3aXRjaCAodHlwZV8pIHsKLSAgY2FzZSBhcnJheVZhbHVlOgotICBjYXNlIG9iamVjdFZhbHVl
OgotICAgIGlmICh2YWx1ZV8ubWFwXykKLSAgICAgIHJldHVybiBpdGVyYXRvcih2YWx1ZV8ubWFw
Xy0+ZW5kKCkpOwotICAgIGJyZWFrOwotICBkZWZhdWx0OgotICAgIGJyZWFrOwotICB9Ci0gIHJl
dHVybiBpdGVyYXRvcigpOwotfQotCi0vLyBjbGFzcyBQYXRoQXJndW1lbnQKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpIDoga2V5XygpLCBpbmRleF8oKSwga2lu
ZF8oa2luZE5vbmUpIHt9Ci0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KEFycmF5SW5kZXgg
aW5kZXgpCi0gICAgOiBrZXlfKCksIGluZGV4XyhpbmRleCksIGtpbmRfKGtpbmRJbmRleCkge30K
LQotUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KQotICAgIDoga2V5
XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotUGF0aEFyZ3VtZW50OjpQYXRo
QXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkKLSAgICA6IGtleV8oa2V5LmNfc3RyKCkp
LCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KLQotLy8gY2xhc3MgUGF0aAotLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLVBhdGg6OlBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCi0gICAgICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCYgYTEsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIs
Ci0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMsCi0gICAgICAgICAgIGNvbnN0IFBh
dGhBcmd1bWVudCYgYTQsCi0gICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUpIHsKLSAg
SW5BcmdzIGluOwotICBpbi5wdXNoX2JhY2soJmExKTsKLSAgaW4ucHVzaF9iYWNrKCZhMik7Ci0g
IGluLnB1c2hfYmFjaygmYTMpOwotICBpbi5wdXNoX2JhY2soJmE0KTsKLSAgaW4ucHVzaF9iYWNr
KCZhNSk7Ci0gIG1ha2VQYXRoKHBhdGgsIGluKTsKLX0KLQotdm9pZCBQYXRoOjptYWtlUGF0aChj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5BcmdzJiBpbikgewotICBjb25zdCBjaGFy
KiBjdXJyZW50ID0gcGF0aC5jX3N0cigpOwotICBjb25zdCBjaGFyKiBlbmQgPSBjdXJyZW50ICsg
cGF0aC5sZW5ndGgoKTsKLSAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciBpdEluQXJnID0gaW4uYmVn
aW4oKTsKLSAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7Ci0gICAgaWYgKCpjdXJyZW50ID09ICdb
JykgewotICAgICAgKytjdXJyZW50OwotICAgICAgaWYgKCpjdXJyZW50ID09ICclJykKLSAgICAg
ICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCk7Ci0gICAgICBlbHNlIHsKLSAgICAgICAgQXJyYXlJbmRleCBpbmRleCA9IDA7Ci0gICAgICAg
IGZvciAoOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0g
JzknOyArK2N1cnJlbnQpCi0gICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRl
eCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgIGFyZ3NfLnB1c2hfYmFjayhpbmRleCk7Ci0gICAg
ICB9Ci0gICAgICBpZiAoY3VycmVudCA9PSBlbmQgfHwgKmN1cnJlbnQrKyAhPSAnXScpCi0gICAg
ICAgIGludmFsaWRQYXRoKHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSk7Ci0gICAg
fSBlbHNlIGlmICgqY3VycmVudCA9PSAnJScpIHsKLSAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBp
biwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kS2V5KTsKLSAgICAgICsrY3VycmVudDsKLSAg
ICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICcuJykgewotICAgICAgKytjdXJyZW50OwotICAgIH0g
ZWxzZSB7Ci0gICAgICBjb25zdCBjaGFyKiBiZWdpbk5hbWUgPSBjdXJyZW50OwotICAgICAgd2hp
bGUgKGN1cnJlbnQgIT0gZW5kICYmICFzdHJjaHIoIlsuIiwgKmN1cnJlbnQpKQotICAgICAgICAr
K2N1cnJlbnQ7Ci0gICAgICBhcmdzXy5wdXNoX2JhY2soc3RkOjpzdHJpbmcoYmVnaW5OYW1lLCBj
dXJyZW50KSk7Ci0gICAgfQotICB9Ci19Ci0KLXZvaWQgUGF0aDo6YWRkUGF0aEluQXJnKGNvbnN0
IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
QXJncyYgaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9y
JiBpdEluQXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtp
bmQpIHsKLSAgaWYgKGl0SW5BcmcgPT0gaW4uZW5kKCkpIHsKLSAgICAvLyBFcnJvcjogbWlzc2lu
ZyBhcmd1bWVudCAlZAotICB9IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQpIHsK
LSAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUKLSAgfSBlbHNlIHsKLSAgICBhcmdzXy5w
dXNoX2JhY2soKippdEluQXJnKTsKLSAgfQotfQotCi12b2lkIFBhdGg6OmludmFsaWRQYXRoKGNv
bnN0IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywgaW50IC8qbG9jYXRpb24qLykgewotICAvLyBFcnJv
cjogaW52YWxpZCBwYXRoLgotfQotCi1jb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBW
YWx1ZSYgcm9vdCkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3Ig
KEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5k
KCk7ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAo
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUt
PmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKSB7Ci0gICAgICAg
IC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBh
dCBwb3NpdGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhf
XSk7Ci0gICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7
Ci0gICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IHVuYWJs
ZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikK
LSAgICAgIH0KLSAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgIGlmIChu
b2RlID09ICZWYWx1ZTo6bnVsbFJlZikgewotICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJl
c29sdmUgcGF0aCAob2JqZWN0IGhhcyBubyBtZW1iZXIgbmFtZWQgJycgYXQKLSAgICAgICAgLy8g
cG9zaXRpb24uLi4pCi0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiAqbm9kZTsKLX0KLQot
VmFsdWUgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3QgewotICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OwotICBmb3IgKEFy
Z3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7
ICsraXQpIHsKLSAgICBjb25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKLSAgICBpZiAoYXJn
LmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlz
QXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKQotICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOwotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0g
ICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAg
ICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0g
ICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICBpZiAobm9kZSA9PSAmVmFs
dWU6Om51bGxSZWYpCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgfQotICB9Ci0g
IHJldHVybiAqbm9kZTsKLX0KLQotVmFsdWUmIFBhdGg6Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0
IHsKLSAgVmFsdWUqIG5vZGUgPSAmcm9vdDsKLSAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBp
dCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7Ci0gICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7Ci0gICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1l
bnQ6OmtpbmRJbmRleCkgewotICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkpIHsKLSAgICAgICAg
Ly8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgotICAgICAgfQot
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0gICAgfSBlbHNlIGlmIChhcmcu
a2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7Ci0gICAgICBpZiAoIW5vZGUtPmlzT2Jq
ZWN0KCkpIHsKLSAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3Np
dGlvbi4uLgotICAgICAgfQotICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAg
IH0KLSAgfQotICByZXR1cm4gKm5vZGU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotI3By
YWdtYSB3YXJuaW5nIChwb3ApCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEVuZCBvZiBjb250ZW50
IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci0KLQotCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcAotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0v
LyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+
Ci0jaW5jbHVkZSAianNvbl90b29sLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8aW9tYW5pcD4KLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5j
bHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPHNldD4KLSNpbmNs
dWRlIDxjYXNzZXJ0PgotI2luY2x1ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgotCi0j
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTIwMCAmJiBfTVNDX1ZFUiA8IDE4
MDAgLy8gQmV0d2VlbiBWQysrIDYuMCBhbmQgVkMrKyAxMS4wCi0jaW5jbHVkZSA8ZmxvYXQuaD4K
LSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQotI2VsaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5l
ZChfX1NWUjQpIC8vU29sYXJpcwotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPGll
ZWVmcC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChf
QUlYKQotI2lmICFkZWZpbmVkKGlzZmluaXRlKQotI2luY2x1ZGUgPG1hdGguaD4KLSNkZWZpbmUg
aXNmaW5pdGUgZmluaXRlCi0jZW5kaWYKLSNlbGlmIGRlZmluZWQoX19ocHV4KQotI2lmICFkZWZp
bmVkKGlzZmluaXRlKQotI2lmIGRlZmluZWQoX19pYTY0KSAmJiAhZGVmaW5lZChmaW5pdGUpCi0j
ZGVmaW5lIGlzZmluaXRlKHgpICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9hdCkgPyBcCi0gICAg
ICAgICAgICAgICAgICAgICBfSXNmaW5pdGVmKHgpIDogX0lzRmluaXRlKHgpKSkKLSNlbHNlCi0j
aW5jbHVkZSA8bWF0aC5oPgotI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKLSNlbmRpZgotI2VuZGlm
Ci0jZWxzZQotI2luY2x1ZGUgPGNtYXRoPgotI2lmICEoZGVmaW5lZChfX1FOWE5UT19fKSkgLy8g
UU5YIGFscmVhZHkgZGVmaW5lcyBpc2Zpbml0ZQotI2RlZmluZSBpc2Zpbml0ZSBzdGQ6OmlzZmlu
aXRlCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNpZiAhZGVmaW5l
ZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAx
NTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKLSNl
bGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQotI2RlZmluZSBzbnBy
aW50ZiBzdGQ6OnNucHJpbnRmCi0jZWxzZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNl
bmRpZgotI2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQot
I2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgotI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAot
I2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19C
T1JMQU5EQ19fKSAgCi0jaW5jbHVkZSA8ZmxvYXQuaD4KLSNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0
ZQotI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAotLy8gRGlzYWJsZSB3YXJuaW5n
IGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUg
OiA0OTk2KQotI2VuZGlmCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotI2lmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkK
LXR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gU3RyZWFtV3JpdGVyUHRyOwot
I2Vsc2UKLXR5cGVkZWYgc3RkOjphdXRvX3B0cjxTdHJlYW1Xcml0ZXI+ICAgU3RyZWFtV3JpdGVy
UHRyOwotI2VuZGlmCi0KLXN0YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcihjb25z
dCBjaGFyKiBzdHIpIHsKLSAgd2hpbGUgKCpzdHIpIHsKLSAgICBpZiAoaXNDb250cm9sQ2hhcmFj
dGVyKCooc3RyKyspKSkKLSAgICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsK
LX0KLQotc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hhcmFjdGVyMChjb25zdCBjaGFyKiBz
dHIsIHVuc2lnbmVkIGxlbikgewotICBjaGFyIGNvbnN0KiBlbmQgPSBzdHIgKyBsZW47Ci0gIHdo
aWxlIChlbmQgIT0gc3RyKSB7Ci0gICAgaWYgKGlzQ29udHJvbENoYXJhY3Rlcigqc3RyKSB8fCAw
PT0qc3RyKQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgKytzdHI7Ci0gIH0KLSAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUpIHsK
LSAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgY2hhciogY3VycmVudCA9IGJ1ZmZlciAr
IHNpemVvZihidWZmZXIpOwotICBpZiAodmFsdWUgPT0gVmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsK
LSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMSwg
Y3VycmVudCk7Ci0gICAgKi0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwgY3VycmVudCk7Ci0gICAg
Ki0tY3VycmVudCA9ICctJzsKLSAgfSBlbHNlIHsKLSAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJ
bnQodmFsdWUpLCBjdXJyZW50KTsKLSAgfQotICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIpOwot
ICByZXR1cm4gY3VycmVudDsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0
VUludCB2YWx1ZSkgewotICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICBjaGFyKiBjdXJy
ZW50ID0gYnVmZmVyICsgc2l6ZW9mKGJ1ZmZlcik7Ci0gIHVpbnRUb1N0cmluZyh2YWx1ZSwgY3Vy
cmVudCk7Ci0gIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7Ci0gIHJldHVybiBjdXJyZW50Owot
fQotCi0jaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhJbnQgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1
ZSkpOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpIHsKLSAgcmV0
dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpKTsKLX0KLQotI2VuZGlmIC8vICMg
aWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhk
b3VibGUgdmFsdWUsIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywgdW5zaWduZWQgaW50IHByZWNpc2lv
bikgewotICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGlzIG1vcmUgdGhhbiBsYXJnZSBlbm91
Z2ggdG8gc3RvcmUgdGhlIDE2IGRpZ2l0cyBvZgotICAvLyBwcmVjaXNpb24gcmVxdWVzdGVkIGJl
bG93LgotICBjaGFyIGJ1ZmZlclszMl07Ci0gIGludCBsZW4gPSAtMTsKLQotICBjaGFyIGZvcm1h
dFN0cmluZ1s2XTsKLSAgc3ByaW50Zihmb3JtYXRTdHJpbmcsICIlJS4lZGciLCBwcmVjaXNpb24p
OwotCi0gIC8vIFByaW50IGludG8gdGhlIGJ1ZmZlci4gV2UgbmVlZCBub3QgcmVxdWVzdCB0aGUg
YWx0ZXJuYXRpdmUgcmVwcmVzZW50YXRpb24KLSAgLy8gdGhhdCBhbHdheXMgaGFzIGEgZGVjaW1h
bCBwb2ludCBiZWNhdXNlIEpTT04gZG9lc24ndCBkaXN0aW5naXNoIHRoZQotICAvLyBjb25jZXB0
cyBvZiByZWFscyBhbmQgaW50ZWdlcnMuCi0gIGlmIChpc2Zpbml0ZSh2YWx1ZSkpIHsKLSAgICBs
ZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCBmb3JtYXRTdHJpbmcsIHZhbHVl
KTsKLSAgfSBlbHNlIHsKLSAgICAvLyBJRUVFIHN0YW5kYXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1
ZXMgd2lsbCBub3QgY29tcGFyZSB0byB0aGVtc2VsdmVzCi0gICAgaWYgKHZhbHVlICE9IHZhbHVl
KSB7Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVj
aWFsRmxvYXRzID8gIk5hTiIgOiAibnVsbCIpOwotICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7
Ci0gICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFs
RmxvYXRzID8gIi1JbmZpbml0eSIgOiAiLTFlKzk5OTkiKTsKLSAgICB9IGVsc2UgewotICAgICAg
bGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/
ICJJbmZpbml0eSIgOiAiMWUrOTk5OSIpOwotICAgIH0KLSAgICAvLyBGb3IgdGhvc2UsIHdlIGRv
IG5vdCBuZWVkIHRvIGNhbGwgZml4TnVtTG9jLCBidXQgaXQgaXMgZmFzdC4KLSAgfQotICBhc3Nl
cnQobGVuID49IDApOwotICBmaXhOdW1lcmljTG9jYWxlKGJ1ZmZlciwgYnVmZmVyICsgbGVuKTsK
LSAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWUsIGZhbHNlLCAxNyk7IH0KLQotc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVl
IiA6ICJmYWxzZSI7IH0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBj
aGFyKiB2YWx1ZSkgewotICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICByZXR1cm4gIiI7Ci0gIC8v
IE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgotICBpZiAoc3RycGJyayh2YWx1ZSwg
IlwiXFxcYlxmXG5cclx0IikgPT0gTlVMTCAmJgotICAgICAgIWNvbnRhaW5zQ29udHJvbENoYXJh
Y3Rlcih2YWx1ZSkpCi0gICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJcIiIpICsgdmFsdWUgKyAiXCIi
OwotICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFy
YWN0ZXJzLgotICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpzdHJpbmcgaXMgbm90IGVmZmljaWVudCwg
YnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCi0gIC8vIChOb3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJl
ICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGluZyB0aGVtLikKLSAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBtYXhzaXplID0KLSAgICAgIHN0cmxlbih2YWx1ZSkgKiAyICsgMzsgLy8gYWxs
ZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNl
cnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKLSAgcmVzdWx0ICs9ICJc
IiI7Ci0gIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyAqYyAhPSAwOyArK2MpIHsKLSAgICBz
d2l0Y2ggKCpjKSB7Ci0gICAgY2FzZSAnXCInOgotICAgICAgcmVzdWx0ICs9ICJcXFwiIjsKLSAg
ICAgIGJyZWFrOwotICAgIGNhc2UgJ1xcJzoKLSAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAg
ICBicmVhazsKLSAgICBjYXNlICdcYic6Ci0gICAgICByZXN1bHQgKz0gIlxcYiI7Ci0gICAgICBi
cmVhazsKLSAgICBjYXNlICdcZic6Ci0gICAgICByZXN1bHQgKz0gIlxcZiI7Ci0gICAgICBicmVh
azsKLSAgICBjYXNlICdcbic6Ci0gICAgICByZXN1bHQgKz0gIlxcbiI7Ci0gICAgICBicmVhazsK
LSAgICBjYXNlICdccic6Ci0gICAgICByZXN1bHQgKz0gIlxcciI7Ci0gICAgICBicmVhazsKLSAg
ICBjYXNlICdcdCc6Ci0gICAgICByZXN1bHQgKz0gIlxcdCI7Ci0gICAgICBicmVhazsKLSAgICAv
LyBjYXNlICcvJzoKLSAgICAvLyBFdmVuIHRob3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwg
ZXNjYXBlIGluIEpTT04sIGEgYmFyZQotICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkg
c2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCi0gICAgLy8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1
bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4KLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2Nh
cGluZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBz
ZXF1ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGli
aWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJp
bmcuCi0gICAgZGVmYXVsdDoKLSAgICAgIGlmIChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB7Ci0g
ICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8PCAiXFx1IiA8PCBz
dGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQotICAgICAgICAg
ICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwotICAgICAgICByZXN1
bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ICs9ICpjOwot
ICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCArPSAiXCIiOwotICBy
ZXR1cm4gcmVzdWx0OwotfQotCi0vLyBodHRwczovL2dpdGh1Yi5jb20vdXBjYXN0ZS91cGNhc3Rl
L2Jsb2IvbWFzdGVyL3NyYy91cGNvcmUvc3JjL2NzdHJpbmcvc3RybnBicmsuY3BwCi1zdGF0aWMg
Y2hhciBjb25zdCogc3RybnBicmsoY2hhciBjb25zdCogcywgY2hhciBjb25zdCogYWNjZXB0LCBz
aXplX3QgbikgewotICBhc3NlcnQoKHMgfHwgIW4pICYmIGFjY2VwdCk7Ci0KLSAgY2hhciBjb25z
dCogY29uc3QgZW5kID0gcyArIG47Ci0gIGZvciAoY2hhciBjb25zdCogY3VyID0gczsgY3VyIDwg
ZW5kOyArK2N1cikgewotICAgIGludCBjb25zdCBjID0gKmN1cjsKLSAgICBmb3IgKGNoYXIgY29u
c3QqIGEgPSBhY2NlcHQ7ICphOyArK2EpIHsKLSAgICAgIGlmICgqYSA9PSBjKSB7Ci0gICAgICAg
IHJldHVybiBjdXI7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiBOVUxMOwotfQotc3Rh
dGljIHN0ZDo6c3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJpbmdOKGNvbnN0IGNoYXIqIHZhbHVlLCB1
bnNpZ25lZCBsZW5ndGgpIHsKLSAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgcmV0dXJuICIiOwot
ICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4KLSAgaWYgKHN0cm5wYnJrKHZh
bHVlLCAiXCJcXFxiXGZcblxyXHQiLCBsZW5ndGgpID09IE5VTEwgJiYKLSAgICAgICFjb250YWlu
c0NvbnRyb2xDaGFyYWN0ZXIwKHZhbHVlLCBsZW5ndGgpKQotICAgIHJldHVybiBzdGQ6OnN0cmlu
ZygiXCIiKSArIHZhbHVlICsgIlwiIjsKLSAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBl
c2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KLSAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3Ry
aW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgotICAvLyAoTm90
ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcg
dGhlbS4pCi0gIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9Ci0gICAgICBsZW5ndGgg
KiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAotICBzdGQ6OnN0cmluZyByZXN1bHQ7
Ci0gIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MK
LSAgcmVzdWx0ICs9ICJcIiI7Ci0gIGNoYXIgY29uc3QqIGVuZCA9IHZhbHVlICsgbGVuZ3RoOwot
ICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1ZTsgYyAhPSBlbmQ7ICsrYykgewotICAgIHN3aXRj
aCAoKmMpIHsKLSAgICBjYXNlICdcIic6Ci0gICAgICByZXN1bHQgKz0gIlxcXCIiOwotICAgICAg
YnJlYWs7Ci0gICAgY2FzZSAnXFwnOgotICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKLSAgICAgIGJy
ZWFrOwotICAgIGNhc2UgJ1xiJzoKLSAgICAgIHJlc3VsdCArPSAiXFxiIjsKLSAgICAgIGJyZWFr
OwotICAgIGNhc2UgJ1xmJzoKLSAgICAgIHJlc3VsdCArPSAiXFxmIjsKLSAgICAgIGJyZWFrOwot
ICAgIGNhc2UgJ1xuJzoKLSAgICAgIHJlc3VsdCArPSAiXFxuIjsKLSAgICAgIGJyZWFrOwotICAg
IGNhc2UgJ1xyJzoKLSAgICAgIHJlc3VsdCArPSAiXFxyIjsKLSAgICAgIGJyZWFrOwotICAgIGNh
c2UgJ1x0JzoKLSAgICAgIHJlc3VsdCArPSAiXFx0IjsKLSAgICAgIGJyZWFrOwotICAgIC8vIGNh
c2UgJy8nOgotICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2Nh
cGUgaW4gSlNPTiwgYSBiYXJlCi0gICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUg
bm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KLSAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVy
c3RhbmRpbmcgc29tZXRoaW5nLikKLSAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGlu
ZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KLSAgICAvLyBzZXF1
ZW5jZS4KLSAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxp
dHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCi0gICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcu
Ci0gICAgZGVmYXVsdDoKLSAgICAgIGlmICgoaXNDb250cm9sQ2hhcmFjdGVyKCpjKSkgfHwgKCpj
ID09IDApKSB7Ci0gICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgIG9zcyA8
PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAn
KQotICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOwot
ICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVz
dWx0ICs9ICpjOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIHJlc3VsdCAr
PSAiXCIiOwotICByZXR1cm4gcmVzdWx0OwotfQotCi0vLyBDbGFzcyBXcml0ZXIKLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwotV3JpdGVyOjp+V3JpdGVyKCkge30KLQotLy8gQ2xhc3MgRmFzdFdyaXRlcgotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0KLUZhc3RXcml0ZXI6OkZhc3RXcml0ZXIoKQotICAgIDogeWFtbENvbXBhdGlibGl0
eUVuYWJsZWRfKGZhbHNlKSwgZHJvcE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwKLSAgICAgIG9t
aXRFbmRpbmdMaW5lRmVlZF8oZmFsc2UpIHt9Ci0KLXZvaWQgRmFzdFdyaXRlcjo6ZW5hYmxlWUFN
TENvbXBhdGliaWxpdHkoKSB7IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA9IHRydWU7IH0KLQot
dm9pZCBGYXN0V3JpdGVyOjpkcm9wTnVsbFBsYWNlaG9sZGVycygpIHsgZHJvcE51bGxQbGFjZWhv
bGRlcnNfID0gdHJ1ZTsgfQotCi12b2lkIEZhc3RXcml0ZXI6Om9taXRFbmRpbmdMaW5lRmVlZCgp
IHsgb21pdEVuZGluZ0xpbmVGZWVkXyA9IHRydWU7IH0KLQotc3RkOjpzdHJpbmcgRmFzdFdyaXRl
cjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9jdW1lbnRfID0gIiI7Ci0gIHdyaXRl
VmFsdWUocm9vdCk7Ci0gIGlmICghb21pdEVuZGluZ0xpbmVGZWVkXykKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgcmV0dXJuIGRvY3VtZW50XzsKLX0KLQotdm9pZCBGYXN0V3JpdGVyOjp3cml0
ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgewot
ICBjYXNlIG51bGxWYWx1ZToKLSAgICBpZiAoIWRyb3BOdWxsUGxhY2Vob2xkZXJzXykKLSAgICAg
IGRvY3VtZW50XyArPSAibnVsbCI7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAg
ZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHVpbnRWYWx1ZToKLSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2
YWx1ZS5hc0xhcmdlc3RVSW50KCkpOwotICAgIGJyZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKTsKLSAgICBicmVh
azsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9y
IHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVu
ZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChv
aykgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGVuZC1zdHIpKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToK
LSAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSk7Ci0gICAgYnJl
YWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZTogewotICAgIGRvY3VtZW50XyArPSAnWyc7Ci0gICAgaW50
IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNp
emU7ICsraW5kZXgpIHsKLSAgICAgIGlmIChpbmRleCA+IDApCi0gICAgICAgIGRvY3VtZW50XyAr
PSAnLCc7Ci0gICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7Ci0gICAgfQotICAgIGRvY3Vt
ZW50XyArPSAnXSc7Ci0gIH0gYnJlYWs7Ci0gIGNhc2Ugb2JqZWN0VmFsdWU6IHsKLSAgICBWYWx1
ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOwotICAgIGRvY3VtZW50
XyArPSAneyc7Ci0gICAgZm9yIChWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJz
LmJlZ2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7Ci0gICAgICAgICArK2l0KSB7Ci0gICAgICBj
b25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKLSAgICAgIGlmIChpdCAhPSBtZW1iZXJzLmJl
Z2luKCkpCi0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICBkb2N1bWVudF8gKz0gdmFs
dWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1l
Lmxlbmd0aCgpKSk7Ci0gICAgICBkb2N1bWVudF8gKz0geWFtbENvbXBhdGlibGl0eUVuYWJsZWRf
ID8gIjogIiA6ICI6IjsKLSAgICAgIHdyaXRlVmFsdWUodmFsdWVbbmFtZV0pOwotICAgIH0KLSAg
ICBkb2N1bWVudF8gKz0gJ30nOwotICB9IGJyZWFrOwotICB9Ci19Ci0KLS8vIENsYXNzIFN0eWxl
ZFdyaXRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKCkKLSAg
ICA6IHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudFNpemVfKDMpLCBhZGRDaGlsZFZhbHVlc18oKSB7
fQotCi1zdGQ6OnN0cmluZyBTdHlsZWRXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7
Ci0gIGRvY3VtZW50XyA9ICIiOwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgaW5kZW50
U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKLSAgd3JpdGVW
YWx1ZShyb290KTsKLSAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7Ci0g
IGRvY3VtZW50XyArPSAiXG4iOwotICByZXR1cm4gZG9jdW1lbnRfOwotfQotCi12b2lkIFN0eWxl
ZFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgc3dpdGNoICh2YWx1
ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKCJudWxsIik7Ci0g
ICAgYnJlYWs7Ci0gIGNhc2UgaW50VmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7Ci0gICAg
YnJlYWs7Ci0gIGNhc2UgcmVhbFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzRG91YmxlKCkpKTsKLSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewot
ICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25z
dCogc3RyOwotICAgIGNoYXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNo
VmFsdWUoIiIpOwotICAgIGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgYXJyYXlWYWx1ZToKLSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwot
ICBjYXNlIG9iamVjdFZhbHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5n
ZXRNZW1iZXJOYW1lcygpKTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZh
bHVlKCJ7fSIpOwotICAgIGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAg
ICBpbmRlbnQoKTsKLSAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsKLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUgPSAqaXQ7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07
Ci0gICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3
cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKLSAgICAg
ICAgZG9jdW1lbnRfICs9ICIgOiAiOwotICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwot
ICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXplID09IDAp
Ci0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlNdWx0aUxp
bmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsK
LSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAgICBib29s
IGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZh
bHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGls
ZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICB3
cml0ZUluZGVudCgpOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgewotICAgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGRvY3VtZW50XyArPSAnLCc7Ci0gICAgICAgIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwotICAgICAgfQotICAgICAgdW5pbmRlbnQo
KTsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOwotICAgIH0gZWxzZSAvLyBvdXRwdXQgb24g
YSBzaW5nbGUgbGluZQotICAgIHsKLSAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09
IHNpemUpOwotICAgICAgZG9jdW1lbnRfICs9ICJbICI7Ci0gICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChpbmRleCA+IDAp
Ci0gICAgICAgICAgZG9jdW1lbnRfICs9ICIsICI7Ci0gICAgICAgIGRvY3VtZW50XyArPSBjaGls
ZFZhbHVlc19baW5kZXhdOwotICAgICAgfQotICAgICAgZG9jdW1lbnRfICs9ICIgXSI7Ci0gICAg
fQotICB9Ci19Ci0KLWJvb2wgU3R5bGVkV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxp
bmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwot
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5k
ZXgpIHsKLSAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBp
c011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVj
dCgpKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsK
LSAgfQotICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBs
aW5lIGxlbmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRk
Q2hpbGRWYWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEp
ICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGlu
ZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1
ZVtpbmRleF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAg
IHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxk
VmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBm
YWxzZTsKLSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmln
aHRNYXJnaW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBTdHlsZWRX
cml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKLSAgaWYgKGFkZENo
aWxkVmFsdWVzXykKLSAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKLSAgZWxzZQot
ICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlSW5k
ZW50KCkgewotICBpZiAoIWRvY3VtZW50Xy5lbXB0eSgpKSB7Ci0gICAgY2hhciBsYXN0ID0gZG9j
dW1lbnRfW2RvY3VtZW50Xy5sZW5ndGgoKSAtIDFdOwotICAgIGlmIChsYXN0ID09ICcgJykgLy8g
YWxyZWFkeSBpbmRlbnRlZAotICAgICAgcmV0dXJuOwotICAgIGlmIChsYXN0ICE9ICdcbicpIC8v
IENvbW1lbnRzIG1heSBhZGQgbmV3LWxpbmUKLSAgICAgIGRvY3VtZW50XyArPSAnXG4nOwotICB9
Ci0gIGRvY3VtZW50XyArPSBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICB3cml0ZUluZGVu
dCgpOwotICBkb2N1bWVudF8gKz0gdmFsdWU7Ci19Ci0KLXZvaWQgU3R5bGVkV3JpdGVyOjppbmRl
bnQoKSB7IGluZGVudFN0cmluZ18gKz0gc3RkOjpzdHJpbmcoaW5kZW50U2l6ZV8sICcgJyk7IH0K
LQotdm9pZCBTdHlsZWRXcml0ZXI6OnVuaW5kZW50KCkgewotICBhc3NlcnQoaW50KGluZGVudFN0
cmluZ18uc2l6ZSgpKSA+PSBpbmRlbnRTaXplXyk7Ci0gIGluZGVudFN0cmluZ18ucmVzaXplKGlu
ZGVudFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50U2l6ZV8pOwotfQotCi12b2lkIFN0eWxlZFdyaXRl
cjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKCFy
b290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGRvY3VtZW50
XyArPSAiXG4iOwotICB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVu
dCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1l
bnQuZW5kKCkpIHsKLSAgICBkb2N1bWVudF8gKz0gKml0ZXI7Ci0gICAgaWYgKCppdGVyID09ICdc
bicgJiYKLSAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcv
JykpCi0gICAgICB3cml0ZUluZGVudCgpOwotICAgICsraXRlcjsKLSAgfQotCi0gIC8vIENvbW1l
bnRzIGFyZSBzdHJpcHBlZCBvZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJlCi0g
IGRvY3VtZW50XyArPSAiXG4iOwotfQotCi12b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYgKHJvb3QuaGFz
Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKLSAgICBkb2N1bWVudF8gKz0gIiAiICsg
cm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIGRvY3VtZW50XyArPSAiXG4iOwotICAgIGRv
Y3VtZW50XyArPSByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgICBkb2N1bWVudF8g
Kz0gIlxuIjsKLSAgfQotfQotCi1ib29sIFN0eWxlZFdyaXRlcjo6aGFzQ29tbWVudEZvclZhbHVl
KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChjb21tZW50
QmVmb3JlKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVM
aW5lKSB8fAotICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOwotfQotCi0v
LyBDbGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1TdHlsZWRTdHJlYW1X
cml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbikKLSAgICA6
IGRvY3VtZW50XyhOVUxMKSwgcmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50YXRpb25fKGluZGVudGF0
aW9uKSwKLSAgICAgIGFkZENoaWxkVmFsdWVzXygpIHt9Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgZG9j
dW1lbnRfID0gJm91dDsKLSAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7Ci0gIGluZGVudFN0cmlu
Z18gPSAiIjsKLSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
cm9vdCk7Ci0gIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBpbmRlbnRlZF8gPSB0
cnVlOwotICB3cml0ZVZhbHVlKHJvb3QpOwotICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShyb290KTsKLSAgKmRvY3VtZW50XyA8PCAiXG4iOwotICBkb2N1bWVudF8gPSBOVUxMOyAv
LyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4KLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7Ci0gIHN3aXRjaCAodmFsdWUu
dHlwZSgpKSB7Ci0gIGNhc2UgbnVsbFZhbHVlOgotICAgIHB1c2hWYWx1ZSgibnVsbCIpOwotICAg
IGJyZWFrOwotICBjYXNlIGludFZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzTGFyZ2VzdEludCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgdWludFZhbHVlOgotICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOwotICAgIGJy
ZWFrOwotICBjYXNlIHJlYWxWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0RvdWJsZSgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gIHsKLSAg
ICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPwotICAgIGNoYXIgY29uc3Qq
IHN0cjsKLSAgICBjaGFyIGNvbnN0KiBlbmQ7Ci0gICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmlu
Zygmc3RyLCAmZW5kKTsKLSAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5n
TihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOwotICAgIGVsc2UgcHVzaFZh
bHVlKCIiKTsKLSAgICBicmVhazsKLSAgfQotICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOwotICAgIGJyZWFrOwotICBjYXNl
IGFycmF5VmFsdWU6Ci0gICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKLSAgICBicmVhazsKLSAg
Y2FzZSBvYmplY3RWYWx1ZTogewotICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0
TWVtYmVyTmFtZXMoKSk7Ci0gICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKLSAgICAgIHB1c2hWYWx1
ZSgie30iKTsKLSAgICBlbHNlIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOwotICAgICAg
aW5kZW50KCk7Ci0gICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJl
Z2luKCk7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1l
ID0gKml0OwotICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOwot
ICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7Ci0gICAgICAg
ICpkb2N1bWVudF8gPDwgIiA6ICI7Ci0gICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0g
ICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKLSAgICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICB1bmluZGVu
dCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7Ci0gICAgfQotICB9IGJyZWFrOwotICB9
Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFs
dWUmIHZhbHVlKSB7Ci0gIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGlmIChzaXpl
ID09IDApCi0gICAgcHVzaFZhbHVlKCJbXSIpOwotICBlbHNlIHsKLSAgICBib29sIGlzQXJyYXlN
dWx0aUxpbmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzQXJyYXlNdWx0aUxp
bmUpIHsKLSAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOwotICAgICAgaW5kZW50KCk7Ci0gICAg
ICBib29sIGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7Ci0gICAgICB1bnNp
Z25lZCBpbmRleCA9IDA7Ci0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGNvbnN0IFZhbHVlJiBj
aGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShjaGlsZFZhbHVlKTsKLSAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCi0gICAgICAgICAgd3Jp
dGVXaXRoSW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgICAgICAgICBpbmRlbnRlZF8g
PSB0cnVlOwotICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7Ci0gICAgICAgICAgaW5k
ZW50ZWRfID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkg
ewotICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICpkb2N1bWVudF8gPDwgIiwi
OwotICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsK
LSAgICAgIH0KLSAgICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsK
LSAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3Nl
cnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpkb2N1bWVudF8gPDwgIlsg
IjsKLSAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKLSAgICAgICAgaWYgKGluZGV4ID4gMCkKLSAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7
Ci0gICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAg
ICAgICpkb2N1bWVudF8gPDwgIiBdIjsKLSAgICB9Ci0gIH0KLX0KLQotYm9vbCBTdHlsZWRTdHJl
YW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSkgewotICBpbnQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0
TWFyZ2luXzsKLSAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7Ci0gIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkgewotICAgIGNvbnN0IFZhbHVl
JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZh
bHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDApOwotICB9Ci0gIGlmICghaXNNdWx0aUxp
bmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCi0gIHsKLSAgICBj
aGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKLSAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOwot
ICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypu
ICsgJyBdJwotICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7
Ci0gICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVlW2luZGV4XSkpIHsKLSAgICAgICAg
aXNNdWx0aUxpbmUgPSB0cnVlOwotICAgICAgfQotICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRl
eF0pOwotICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgo
KSk7Ci0gICAgfQotICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOwotICAgIGlzTXVsdGlMaW5l
ID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87Ci0gIH0KLSAgcmV0
dXJuIGlzTXVsdGlMaW5lOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVl
KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQotICAg
IGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBlbHNlCi0gICAgKmRvY3VtZW50XyA8
PCB2YWx1ZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgewot
ICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3Ry
aW5nCi0gIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBi
dXQKLSAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBz
b21lIHNhdmVkIHN0YXRlLgotICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCi0gICpk
b2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOwotfQotCi12b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewotICBp
ZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKLSAg
aW5kZW50ZWRfID0gZmFsc2U7Ci19Ci0KLXZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQo
KSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9Ci0KLXZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGlu
ZGVudGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdf
LnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKLSAgaWYg
KCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCi0gICAgcmV0dXJuOwotCi0gIGlmICgh
aW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKLSAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0
ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Ci0gIHdoaWxlIChpdGVyICE9IGNvbW1lbnQu
ZW5kKCkpIHsKLSAgICAqZG9jdW1lbnRfIDw8ICppdGVyOwotICAgIGlmICgqaXRlciA9PSAnXG4n
ICYmCi0gICAgICAgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycp
KQotICAgICAgLy8gd3JpdGVJbmRlbnQoKTsgIC8vIHdvdWxkIGluY2x1ZGUgbmV3bGluZQotICAg
ICAgKmRvY3VtZW50XyA8PCBpbmRlbnRTdHJpbmdfOwotICAgICsraXRlcjsKLSAgfQotICBpbmRl
bnRlZF8gPSBmYWxzZTsKLX0KLQotdm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KSB7Ci0gIGlmIChyb290Lmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCi0gICAgKmRvY3VtZW50XyA8PCAnICcg
PDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOwotCi0gIGlmIChyb290
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewotICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgKmRv
Y3VtZW50XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKLSAgfQotICBpbmRlbnRl
ZF8gPSBmYWxzZTsKLX0KLQotYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JW
YWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25T
YW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKLX0K
LQotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ci0KLS8vLyBTY29wZWQgZW51bXMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgQysrMTEuCi1zdHJ1
Y3QgQ29tbWVudFN0eWxlIHsKLSAgLy8vIERlY2lkZSB3aGV0aGVyIHRvIHdyaXRlIGNvbW1lbnRz
LgotICBlbnVtIEVudW0gewotICAgIE5vbmUsICAvLy88IERyb3AgYWxsIGNvbW1lbnRzLgotICAg
IE1vc3QsICAvLy88IFJlY292ZXIgb2RkIGJlaGF2aW9yIG9mIHByZXZpb3VzIHZlcnNpb25zIChu
b3QgaW1wbGVtZW50ZWQgeWV0KS4KLSAgICBBbGwgIC8vLzwgS2VlcCBhbGwgY29tbWVudHMuCi0g
IH07Ci19OwotCi1zdHJ1Y3QgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFt
V3JpdGVyCi17Ci0gIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAotICAgICAgc3RkOjpzdHJpbmcg
Y29uc3QmIGluZGVudGF0aW9uLAotICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAotICAgICAg
c3RkOjpzdHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAotICAgICAgc3RkOjpzdHJpbmcgY29uc3Qm
IG51bGxTeW1ib2wsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1i
b2wsCi0gICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCi0gICAgICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uKTsKLSAgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNv
dXQpOwotcHJpdmF0ZToKLSAgdm9pZCB3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0g
IHZvaWQgd3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7Ci0gIGJvb2wgaXNNdWx0
aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCBwdXNoVmFsdWUoc3RkOjpzdHJp
bmcgY29uc3QmIHZhbHVlKTsKLSAgdm9pZCB3cml0ZUluZGVudCgpOwotICB2b2lkIHdyaXRlV2l0
aEluZGVudChzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUpOwotICB2b2lkIGluZGVudCgpOwotICB2
b2lkIHVuaW5kZW50KCk7Ci0gIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29u
c3QmIHJvb3QpOwotICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVl
IGNvbnN0JiByb290KTsKLSAgc3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZh
bHVlJiB2YWx1ZSk7Ci0KLSAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRW
YWx1ZXM7Ci0KLSAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOwotICBzdGQ6OnN0cmluZyBpbmRl
bnRTdHJpbmdfOwotICBpbnQgcmlnaHRNYXJnaW5fOwotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
bl87Ci0gIENvbW1lbnRTdHlsZTo6RW51bSBjc187Ci0gIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9s
XzsKLSAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbF87Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVG
ZWVkU3ltYm9sXzsKLSAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOwotICBib29sIGluZGVudGVk
XyA6IDE7Ci0gIGJvb2wgdXNlU3BlY2lhbEZsb2F0c18gOiAxOwotICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uXzsKLX07Ci1CdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXIoCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgaW5kZW50YXRpb24sCi0gICAgICBDb21t
ZW50U3R5bGU6OkVudW0gY3MsCi0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2ws
Ci0gICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbnVsbFN5bWJvbCwKLSAgICAgIHN0ZDo6c3RyaW5n
IGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5bWJvbCwKLSAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0
cywKLSAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24pCi0gIDogcmlnaHRNYXJnaW5fKDc0KQot
ICAsIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbikKLSAgLCBjc18oY3MpCi0gICwgY29sb25TeW1i
b2xfKGNvbG9uU3ltYm9sKQotICAsIG51bGxTeW1ib2xfKG51bGxTeW1ib2wpCi0gICwgZW5kaW5n
TGluZUZlZWRTeW1ib2xfKGVuZGluZ0xpbmVGZWVkU3ltYm9sKQotICAsIGFkZENoaWxkVmFsdWVz
XyhmYWxzZSkKLSAgLCBpbmRlbnRlZF8oZmFsc2UpCi0gICwgdXNlU3BlY2lhbEZsb2F0c18odXNl
U3BlY2lhbEZsb2F0cykKLSAgLCBwcmVjaXNpb25fKHByZWNpc2lvbikKLXsKLX0KLWludCBCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVh
bSogc291dCkKLXsKLSAgc291dF8gPSBzb3V0OwotICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgaW5kZW50ZWRfID0gdHJ1ZTsKLSAgaW5kZW50U3RyaW5nXyA9ICIiOwotICB3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShyb290KTsKLSAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0g
IGluZGVudGVkXyA9IHRydWU7Ci0gIHdyaXRlVmFsdWUocm9vdCk7Ci0gIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKHJvb3QpOwotICAqc291dF8gPDwgZW5kaW5nTGluZUZlZWRTeW1i
b2xfOwotICBzb3V0XyA9IE5VTEw7Ci0gIHJldHVybiAwOwotfQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgc3dpdGNoICh2
YWx1ZS50eXBlKCkpIHsKLSAgY2FzZSBudWxsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKG51bGxTeW1i
b2xfKTsKLSAgICBicmVhazsKLSAgY2FzZSBpbnRWYWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOwotICAgIGJyZWFrOwotICBjYXNlIHVpbnRW
YWx1ZToKLSAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkp
KTsKLSAgICBicmVhazsKLSAgY2FzZSByZWFsVmFsdWU6Ci0gICAgcHVzaFZhbHVlKHZhbHVlVG9T
dHJpbmcodmFsdWUuYXNEb3VibGUoKSwgdXNlU3BlY2lhbEZsb2F0c18sIHByZWNpc2lvbl8pKTsK
LSAgICBicmVhazsKLSAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgewotICAgIC8vIElzIE5VTEwgaXMg
cG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Ci0gICAgY2hhciBjb25zdCogc3RyOwotICAgIGNo
YXIgY29uc3QqIGVuZDsKLSAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQp
OwotICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7Ci0gICAgZWxzZSBwdXNoVmFsdWUoIiIpOwotICAg
IGJyZWFrOwotICB9Ci0gIGNhc2UgYm9vbGVhblZhbHVlOgotICAgIHB1c2hWYWx1ZSh2YWx1ZVRv
U3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgYXJyYXlWYWx1ZToK
LSAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOwotICAgIGJyZWFrOwotICBjYXNlIG9iamVjdFZh
bHVlOiB7Ci0gICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygp
KTsKLSAgICBpZiAobWVtYmVycy5lbXB0eSgpKQotICAgICAgcHVzaFZhbHVlKCJ7fSIpOwotICAg
IGVsc2UgewotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7Ci0gICAgICBpbmRlbnQoKTsKLSAg
ICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAg
IGZvciAoOzspIHsKLSAgICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG5hbWUgPSAqaXQ7Ci0gICAg
ICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07Ci0gICAgICAgIHdyaXRl
Q29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICB3cml0ZVdpdGhJbmRlbnQo
dmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihu
YW1lLmxlbmd0aCgpKSkpOwotICAgICAgICAqc291dF8gPDwgY29sb25TeW1ib2xfOwotICAgICAg
ICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVu
ZCgpKSB7Ci0gICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgKnNvdXRfIDw8ICIs
IjsKLSAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
Ci0gICAgICB9Ci0gICAgICB1bmluZGVudCgpOwotICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7
Ci0gICAgfQotICB9IGJyZWFrOwotICB9Ci19Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OndyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKLSAgdW5zaWduZWQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgaWYgKHNpemUgPT0gMCkKLSAgICBwdXNoVmFsdWUoIltdIik7
Ci0gIGVsc2UgewotICAgIGJvb2wgaXNNdWx0aUxpbmUgPSAoY3NfID09IENvbW1lbnRTdHlsZTo6
QWxsKSB8fCBpc011bHRpbmVBcnJheSh2YWx1ZSk7Ci0gICAgaWYgKGlzTXVsdGlMaW5lKSB7Ci0g
ICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKLSAgICAgIGluZGVudCgpOwotICAgICAgYm9vbCBo
YXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOwotICAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOwotICAgICAgZm9yICg7OykgewotICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1
ZSA9IHZhbHVlW2luZGV4XTsKLSAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRW
YWx1ZSk7Ci0gICAgICAgIGlmIChoYXNDaGlsZFZhbHVlKQotICAgICAgICAgIHdyaXRlV2l0aElu
ZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgaWYg
KCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsK
LSAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOwotICAgICAgICAgIGluZGVudGVkXyA9
IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKLSAgICAg
ICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAqc291dF8gPDwgIiwiOwotICAgICAgICB3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKLSAgICAgIH0KLSAg
ICAgIHVuaW5kZW50KCk7Ci0gICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKLSAgICB9IGVsc2Ug
Ly8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICB7Ci0gICAgICBhc3NlcnQoY2hpbGRWYWx1
ZXNfLnNpemUoKSA9PSBzaXplKTsKLSAgICAgICpzb3V0XyA8PCAiWyI7Ci0gICAgICBpZiAoIWlu
ZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOwotICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewotICAgICAgICBpZiAoaW5kZXggPiAw
KQotICAgICAgICAgICpzb3V0XyA8PCAiLCAiOwotICAgICAgICAqc291dF8gPDwgY2hpbGRWYWx1
ZXNfW2luZGV4XTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpICpz
b3V0XyA8PCAiICI7Ci0gICAgICAqc291dF8gPDwgIl0iOwotICAgIH0KLSAgfQotfQotCi1ib29s
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFs
dWUpIHsKLSAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gIGJvb2wgaXNNdWx0aUxpbmUgPSBz
aXplICogMyA+PSByaWdodE1hcmdpbl87Ci0gIGNoaWxkVmFsdWVzXy5jbGVhcigpOwotICBmb3Ig
KGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsK
LSAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICBpc011bHRp
TGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKLSAgfQot
ICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxl
bmd0aAotICB7Ci0gICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7Ci0gICAgYWRkQ2hpbGRW
YWx1ZXNfID0gdHJ1ZTsKLSAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsg
Ly8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgewotICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRl
eF0pKSB7Ci0gICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHdyaXRl
VmFsdWUodmFsdWVbaW5kZXhdKTsKLSAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVz
X1tpbmRleF0ubGVuZ3RoKCkpOwotICAgIH0KLSAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsK
LSAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJn
aW5fOwotICB9Ci0gIHJldHVybiBpc011bHRpTGluZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6cHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAo
YWRkQ2hpbGRWYWx1ZXNfKQotICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwotICBl
bHNlCi0gICAgKnNvdXRfIDw8IHZhbHVlOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUluZGVudCgpIHsKLSAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQg
dGhlIHNvLWZhci13cml0dGVuIHN0cmluZwotICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBh
cmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0Ci0gIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRv
IHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KLSAgLy8gVGhlIGNhbGxlciBj
aGVja3MgaW5kZW50ZWRfLgotCi0gIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpIHsKLSAgICAv
LyBJbiB0aGlzIGNhc2UsIGRyb3AgbmV3bGluZXMgdG9vLgotICAgICpzb3V0XyA8PCAnXG4nIDw8
IGluZGVudFN0cmluZ187Ci0gIH0KLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6
d3JpdGVXaXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgewotICBpZiAoIWluZGVu
dGVkXykgd3JpdGVJbmRlbnQoKTsKLSAgKnNvdXRfIDw8IHZhbHVlOwotICBpbmRlbnRlZF8gPSBm
YWxzZTsKLX0KLQotdm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRl
bnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsgfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyOjp1bmluZGVudCgpIHsKLSAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVu
dGF0aW9uXy5zaXplKCkpOwotICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNp
emUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwotfQotCi12b2lkIEJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25zdCYgcm9vdCkgewotICBp
ZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJuOwotICBpZiAoIXJvb3QuaGFzQ29t
bWVudChjb21tZW50QmVmb3JlKSkKLSAgICByZXR1cm47Ci0KLSAgaWYgKCFpbmRlbnRlZF8pIHdy
aXRlSW5kZW50KCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50ID0gcm9vdC5nZXRDb21t
ZW50KGNvbW1lbnRCZWZvcmUpOwotICBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9
IGNvbW1lbnQuYmVnaW4oKTsKLSAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgewotICAg
ICpzb3V0XyA8PCAqaXRlcjsKLSAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgotICAgICAgIChpdGVy
ICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKLSAgICAgIC8vIHdyaXRl
SW5kZW50KCk7ICAvLyB3b3VsZCB3cml0ZSBleHRyYSBuZXdsaW5lCi0gICAgICAqc291dF8gPDwg
aW5kZW50U3RyaW5nXzsKLSAgICArK2l0ZXI7Ci0gIH0KLSAgaW5kZW50ZWRfID0gZmFsc2U7Ci19
Ci0KLXZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KSB7Ci0gIGlmIChjc18gPT0gQ29tbWVudFN0eWxl
OjpOb25lKSByZXR1cm47Ci0gIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1l
TGluZSkpCi0gICAgKnNvdXRfIDw8ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKTsKLQotICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKLSAg
ICB3cml0ZUluZGVudCgpOwotICAgICpzb3V0XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFm
dGVyKTsKLSAgfQotfQotCi0vLyBzdGF0aWMKLWJvb2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKLSAgcmV0dXJuIHZhbHVl
Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKLSAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEFmdGVyKTsKLX0KLQotLy8vLy8vLy8vLy8vLy8vCi0vLyBTdHJlYW1Xcml0ZXIKLQotU3Ry
ZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIoKQotICAgIDogc291dF8oTlVMTCkKLXsKLX0KLVN0cmVh
bVdyaXRlcjo6flN0cmVhbVdyaXRlcigpCi17Ci19Ci1TdHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5G
YWN0b3J5KCkKLXt9Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjpTdHJlYW1Xcml0ZXJCdWlsZGVyKCkK
LXsKLSAgc2V0RGVmYXVsdHMoJnNldHRpbmdzXyk7Ci19Ci1TdHJlYW1Xcml0ZXJCdWlsZGVyOjp+
U3RyZWFtV3JpdGVyQnVpbGRlcigpCi17fQotU3RyZWFtV3JpdGVyKiBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjpuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdAotewotICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlv
biA9IHNldHRpbmdzX1siaW5kZW50YXRpb24iXS5hc1N0cmluZygpOwotICBzdGQ6OnN0cmluZyBj
c19zdHIgPSBzZXR0aW5nc19bImNvbW1lbnRTdHlsZSJdLmFzU3RyaW5nKCk7Ci0gIGJvb2wgZXlj
ID0gc2V0dGluZ3NfWyJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9vbCgpOwotICBib29s
IGRucCA9IHNldHRpbmdzX1siZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKLSAgYm9v
bCB1c2YgPSBzZXR0aW5nc19bInVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsgCi0gIHVuc2ln
bmVkIGludCBwcmUgPSBzZXR0aW5nc19bInByZWNpc2lvbiJdLmFzVUludCgpOwotICBDb21tZW50
U3R5bGU6OkVudW0gY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKLSAgaWYgKGNzX3N0ciA9PSAiQWxs
IikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7Ci0gIH0gZWxzZSBpZiAoY3Nfc3RyID09
ICJOb25lIikgewotICAgIGNzID0gQ29tbWVudFN0eWxlOjpOb25lOwotICB9IGVsc2UgewotICAg
IHRocm93UnVudGltZUVycm9yKCJjb21tZW50U3R5bGUgbXVzdCBiZSAnQWxsJyBvciAnTm9uZSci
KTsKLSAgfQotICBzdGQ6OnN0cmluZyBjb2xvblN5bWJvbCA9ICIgOiAiOwotICBpZiAoZXljKSB7
Ci0gICAgY29sb25TeW1ib2wgPSAiOiAiOwotICB9IGVsc2UgaWYgKGluZGVudGF0aW9uLmVtcHR5
KCkpIHsKLSAgICBjb2xvblN5bWJvbCA9ICI6IjsKLSAgfQotICBzdGQ6OnN0cmluZyBudWxsU3lt
Ym9sID0gIm51bGwiOwotICBpZiAoZG5wKSB7Ci0gICAgbnVsbFN5bWJvbCA9ICIiOwotICB9Ci0g
IGlmIChwcmUgPiAxNykgcHJlID0gMTc7Ci0gIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3lt
Ym9sID0gIiI7Ci0gIHJldHVybiBuZXcgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCi0gICAgICBp
bmRlbnRhdGlvbiwgY3MsCi0gICAgICBjb2xvblN5bWJvbCwgbnVsbFN5bWJvbCwgZW5kaW5nTGlu
ZUZlZWRTeW1ib2wsIHVzZiwgcHJlKTsKLX0KLXN0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5
cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMpCi17Ci0gIHZhbGlkX2tleXMtPmNs
ZWFyKCk7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgiaW5kZW50YXRpb24iKTsKLSAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJjb21tZW50U3R5bGUiKTsKLSAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSIpOwotICB2YWxpZF9rZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vo
b2xkZXJzIik7Ci0gIHZhbGlkX2tleXMtPmluc2VydCgidXNlU3BlY2lhbEZsb2F0cyIpOwotICB2
YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvbiIpOwotfQotYm9vbCBTdHJlYW1Xcml0ZXJCdWls
ZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3QKLXsKLSAgSnNvbjo6VmFs
dWUgbXlfaW52YWxpZDsKLSAgaWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAv
LyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxMCi0gIEpzb246OlZhbHVlJiBpbnYg
PSAqaW52YWxpZDsKLSAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tleXM7Ci0gIGdldFZh
bGlkV3JpdGVyS2V5cygmdmFsaWRfa2V5cyk7Ci0gIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0
aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKLSAgc2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKLSAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5
ID0ga2V5c1tpXTsKLSAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5l
bmQoKSkgewotICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKLSAgICB9Ci0gIH0KLSAg
cmV0dXJuIDB1ID09IGludi5zaXplKCk7Ci19Ci1WYWx1ZSYgU3RyZWFtV3JpdGVyQnVpbGRlcjo6
b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpCi17Ci0gIHJldHVybiBzZXR0aW5nc19ba2V5XTsK
LX0KLS8vIHN0YXRpYwotdm9pZCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29u
OjpWYWx1ZSogc2V0dGluZ3MpCi17Ci0gIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRz
XQotICAoKnNldHRpbmdzKVsiY29tbWVudFN0eWxlIl0gPSAiQWxsIjsKLSAgKCpzZXR0aW5ncylb
ImluZGVudGF0aW9uIl0gPSAiXHQiOwotICAoKnNldHRpbmdzKVsiZW5hYmxlWUFNTENvbXBhdGli
aWxpdHkiXSA9IGZhbHNlOwotICAoKnNldHRpbmdzKVsiZHJvcE51bGxQbGFjZWhvbGRlcnMiXSA9
IGZhbHNlOwotICAoKnNldHRpbmdzKVsidXNlU3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7Ci0gICgq
c2V0dGluZ3MpWyJwcmVjaXNpb24iXSA9IDE3OwotICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJE
ZWZhdWx0c10KLX0KLQotc3RkOjpzdHJpbmcgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0
b3J5IGNvbnN0JiBidWlsZGVyLCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBzdGQ6Om9zdHJpbmdz
dHJlYW0gc291dDsKLSAgU3RyZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0
cmVhbVdyaXRlcigpKTsKLSAgd3JpdGVyLT53cml0ZShyb290LCAmc291dCk7Ci0gIHJldHVybiBz
b3V0LnN0cigpOwotfQotCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBz
b3V0LCBWYWx1ZSBjb25zdCYgcm9vdCkgewotICBTdHJlYW1Xcml0ZXJCdWlsZGVyIGJ1aWxkZXI7
Ci0gIFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIo
KSk7Ci0gIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQpOwotICByZXR1cm4gc291dDsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgSnNvbgotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBFbmQgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCi0vLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVu
dnJfYXBpX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM5NmU2NzcyMmYz
Njk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9h
cGlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vLz09PT09PT09
PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNkZWZpbmUgVlJf
QVBJX0VYUE9SVCAxCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaXZyY2xpZW50Y29y
ZS5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRl
ICJobWRlcnJvcnNfcHVibGljLmgiCi0jaW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgi
Ci0jaW5jbHVkZSA8bXV0ZXg+Ci0KLXVzaW5nIHZyOjpFVlJJbml0RXJyb3I7Ci11c2luZyB2cjo6
SVZSU3lzdGVtOwotdXNpbmcgdnI6OklWUkNsaWVudENvcmU7Ci11c2luZyB2cjo6VlJJbml0RXJy
b3JfTm9uZTsKLQotbmFtZXNwYWNlIHZyCi17Ci0KLXN0YXRpYyB2b2lkICpnX3BWUk1vZHVsZSA9
IE5VTEw7Ci1zdGF0aWMgSVZSQ2xpZW50Q29yZSAqZ19wSG1kU3lzdGVtID0gTlVMTDsKLXN0YXRp
YyBzdGQ6OnJlY3Vyc2l2ZV9tdXRleCBnX211dGV4U3lzdGVtOwotCi0KLXR5cGVkZWYgdm9pZCog
KCpWUkNsaWVudENvcmVGYWN0b3J5Rm4pKGNvbnN0IGNoYXIgKnBJbnRlcmZhY2VOYW1lLCBpbnQg
KnBSZXR1cm5Db2RlKTsKLQotc3RhdGljIHVpbnQzMl90IGdfblZSVG9rZW4gPSAwOwotCi11aW50
MzJfdCBWUl9HZXRJbml0VG9rZW4oKQotewotICAgICAgIHJldHVybiBnX25WUlRva2VuOwotfQot
Ci1FVlJJbml0RXJyb3IgVlJfTG9hZEhtZFN5c3RlbUludGVybmFsKCk7Ci12b2lkIENsZWFudXBJ
bnRlcm5hbEludGVyZmFjZXMoKTsKLQotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlw
ZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAgIEVW
UkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKLSAgICAgICBpZiAo
IGVyciA9PSB2cjo6VlJJbml0RXJyb3JfTm9uZSApCi0gICAgICAgewotICAgICAgICAgICAgICBl
cnIgPSBnX3BIbWRTeXN0ZW0tPkluaXQoIGVBcHBsaWNhdGlvblR5cGUsIHBTdGFydHVwSW5mbyAp
OwotICAgICAgIH0KLQotICAgICAgIGlmICggcGVFcnJvciApCi0gICAgICAgICAgICAgICpwZUVy
cm9yID0gZXJyOwotCi0gICAgICAgaWYgKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCi0gICAg
ICAgewotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOwotICAg
ICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBnX3BWUk1vZHVs
ZSA9IE5VTEw7Ci0KLSAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgfQotCi0gICAgICAg
cmV0dXJuICsrZ19uVlJUb2tlbjsKLX0KLQotVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExU
WVBFIFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlv
blR5cGUgZUFwcGxpY2F0aW9uVHlwZSApOwotCi11aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwoIEVW
UkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25U
eXBlICkKLXsKLSAgICAgICByZXR1cm4gVlJfSW5pdEludGVybmFsMiggcGVFcnJvciwgZUFwcGxp
Y2F0aW9uVHlwZSwgbnVsbHB0ciApOwotfQotCi12b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKQot
ewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19t
dXRleFN5c3RlbSApOwotICAgICAgIAotICAgICAgIGlmICggZ19wSG1kU3lzdGVtICkKLSAgICAg
ICB7Ci0gICAgICAgICAgICAgIGdfcEhtZFN5c3RlbS0+Q2xlYW51cCgpOwotICAgICAgICAgICAg
ICBnX3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgIH0KLSAgICAgICBpZiAoIGdfcFZSTW9kdWxl
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxl
ICk7Ci0gICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKLSAgICAgICB9Ci0KLSNpZiAh
ZGVmaW5lZCggVlJfQVBJX1BVQkxJQyApCi0gICAgICAgQ2xlYW51cEludGVybmFsSW50ZXJmYWNl
cygpOwotI2VuZGlmCi0KLSAgICAgICArK2dfblZSVG9rZW47Ci19Ci0KLUVWUkluaXRFcnJvciBW
Ul9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNSdW50aW1l
UGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAgYm9vbCBiUmVhZFBhdGhSZWdp
c3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAm
c0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwotICAgICAgIGlmKCAhYlJlYWRQ
YXRoUmVnaXN0cnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIC8vIGZp
Z3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAg
ICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAg
aWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCi0gICAgICAgewotICAgICAg
ICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQ7
Ci0gICAgICAgfQotCi0gICAgICAgLy8gQmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNl
bGVjdCBkZWJ1ZyB2cy4gcmVsZWFzZSB5ZXQgd2UnbGwganVzdAotICAgICAgIC8vIHVzZSBkZWJ1
ZyBpZiBpdCdzIHRoZXJlCi0jaWYgZGVmaW5lZCggTElOVVg2NCApCi0gICAgICAgc3RkOjpzdHJp
bmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iLCBQTEFUU1VCRElS
ICk7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1
bnRpbWVQYXRoLCAiYmluIiApOwotI2VuZGlmCi0gICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5
KCBzVGVzdFBhdGggKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdDsKLSAgICAgICB9Ci0KLSNpZiBkZWZpbmVk
KCBXSU42NCApCi0gICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQYXRoX0pvaW4oIHNUZXN0
UGF0aCwgInZyY2xpZW50X3g2NCIgRFlOQU1JQ19MSUJfRVhUICk7Ci0jZWxzZQotICAgICAgIHN0
ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBhdGgsICJ2cmNsaWVudCIgRFlO
QU1JQ19MSUJfRVhUICk7Ci0jZW5kaWYKLQotICAgICAgIC8vIG9ubHkgbG9vayBpbiB0aGUgb3Zl
cnJpZGUKLSAgICAgICB2b2lkICpwTW9kID0gU2hhcmVkTGliX0xvYWQoIHNETExQYXRoLmNfc3Ry
KCkgKTsKLSAgICAgICAvLyBub3RoaW5nIG1vcmUgdG8gZG8gaWYgd2UgY2FuJ3QgbG9hZCB0aGUg
RExMCi0gICAgICAgaWYoICFwTW9kICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiB2
cjo6VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kOwotICAgICAgIH0KLQotICAg
ICAgIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiBmbkZhY3RvcnkgPSAoIFZSQ2xpZW50Q29yZUZhY3Rv
cnlGbiApKCBTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIHBNb2QsICJWUkNsaWVudENvcmVGYWN0b3J5
IiApICk7Ci0gICAgICAgaWYoICFmbkZhY3RvcnkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
U2hhcmVkTGliX1VubG9hZCggcE1vZCApOwotICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5p
dEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAgIGludCBuUmV0
dXJuQ29kZSA9IDA7Ci0gICAgICAgZ19wSG1kU3lzdGVtID0gc3RhdGljX2Nhc3Q8IElWUkNsaWVu
dENvcmUgKiA+ICggZm5GYWN0b3J5KCB2cjo6SVZSQ2xpZW50Q29yZV9WZXJzaW9uLCAmblJldHVy
bkNvZGUgKSApOwotICAgICAgIGlmKCAhZ19wSG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAg
ICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHZy
OjpWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOwotICAgICAgIH0KLQotICAgICAg
IGdfcFZSTW9kdWxlID0gcE1vZDsKLSAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKLX0K
LQotCi12b2lkICpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKGNvbnN0IGNoYXIgKnBjaEludGVyZmFj
ZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvcikKLXsKLSAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKLQotICAgICAg
IGlmICghZ19wSG1kU3lzdGVtKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKHBlRXJyb3Ip
Ci0gICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IHZyOjpWUkluaXRFcnJvcl9Jbml0X05v
dEluaXRpYWxpemVkOwotICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFj
ZVZlcnNpb24sIHBlRXJyb3IpOwotfQotCi1ib29sIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24pCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAg
ICBpZiAoIWdfcEhtZFN5c3RlbSkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5Jc0ludGVyZmFjZVZl
cnNpb25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKSA9PSBWUkluaXRFcnJvcl9Ob25lOwotfQot
Ci1ib29sIFZSX0lzSG1kUHJlc2VudCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6
cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19w
SG1kU3lzdGVtICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkg
aW5pdGlhbGl6ZWQsIGp1c3QgY2FsbCB0aHJvdWdoCi0gICAgICAgICAgICAgIHJldHVybiBnX3BI
bWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3
b3JrCi0gICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50
ZXJuYWwoKTsKLSAgICAgICAgICAgICAgaWYoIGVyciAhPSBWUkluaXRFcnJvcl9Ob25lICkKLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgICBib29sIGJI
YXNIbWQgPSBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKLQotICAgICAgICAgICAgICBn
X3BIbWRTeXN0ZW0gPSBOVUxMOwotICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BW
Uk1vZHVsZSApOwotICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7Ci0KLSAgICAgICAg
ICAgICAgcmV0dXJuIGJIYXNIbWQ7Ci0gICAgICAgfQotfQotCi0vKiogUmV0dXJucyB0cnVlIGlm
IHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCi1ib29sIFZSX0lzUnVudGltZUlu
c3RhbGxlZCgpCi17Ci0gICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4
PiBsb2NrKCBnX211dGV4U3lzdGVtICk7Ci0KLSAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIE9w
ZW5WUiBpcyBvYnZpb3VzbHkgaW5zdGFsbGVkCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBvdGhlcndp
c2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKLSAgICAgICAgICAgICAgc3RkOjpzdHJp
bmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7Ci0KLSAgICAgICAgICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgICAgICAgICBpZiggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZvciB2
cmNsaWVudC5kbGwKLSAgICAgICAgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBh
Y3R1YWxseSBleGlzdHMuCi0gICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1
bnRpbWVQYXRoICkgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyB0aGUgaW5zdGFs
bGF0aW9uIG1heSBiZSBjb3JydXB0IGluIHNvbWUgd2F5LCBidXQgaXQgY2VydGFpbmx5IGxvb2tz
IGluc3RhbGxlZAotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICB9Ci19Ci0KLQot
LyoqIFJldHVybnMgd2hlcmUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLwotY29uc3Qg
Y2hhciAqVlJfUnVudGltZVBhdGgoKQotewotICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRv
IGRvIGEgYml0IG1vcmUgd29yawotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBzUnVudGltZVBh
dGg7Ci0gICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOwotCi0gICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwot
ICAgICAgIGlmICggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgIH0KLQotICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUg
d2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCi0gICAgICAgLy8gc2VlIGlmIHRo
ZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0gICAgICAgaWYgKCAhUGF0aF9Jc0Rp
cmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNSdW50aW1lUGF0aC5jX3N0cigp
OwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBzeW1ib2wgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3Iu
ICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3Ig
ZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOwotCi0gICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCi0gICAg
ICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldElERm9yVlJJbml0RXJyb3IoIGVycm9y
ICk7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gR2V0SURGb3JWUkluaXRFcnJv
ciggZXJyb3IgKTsKLX0KLQotCi0vKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lv
biBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzRW5n
bGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKQotewotICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOwotCi0g
ICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQotICAgICAgICAgICAgICByZXR1cm4gZ19wSG1kU3lz
dGVtLT5HZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVycm9yICk7Ci0gICAgICAgZWxzZQot
ICAgICAgICAgICAgICByZXR1cm4gR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciAp
OwotfQotCi0KLVZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9HZXRTdHJp
bmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlcnJvciApOwotCi0vKiogUmV0dXJucyB0
aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCi1jb25zdCBjaGFy
ICpWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggRVZSSW5pdEVycm9yIGVycm9yICkKLXsKLSAgICAg
ICByZXR1cm4gVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggZXJyb3IgKTsK
LX0KLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY4YmQyM2Q0MGVlNDlmNDA4MGY3MWIyNjYwMzNkNjRkYTFjZmVmYzMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI2luY2x1ZGUgImRpcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgInN0cnRvb2xz
X3B1YmxpYy5oIgotI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLQotI2luY2x1ZGUgPGVy
cm5vLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZmRlZiBfV0lOMzIKLSNpbmNsdWRlICJ3
aW5kb3dzLmgiCi0jZWxzZQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+
Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNlbmRpZgot
Ci0jaWYgZGVmaW5lZCggT1NYICkKLSNpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+Ci0jZW5kaWYK
LQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiB1dGlsaXR5IGZ1bmN0aW9u
IHRvIGNyZWF0ZSBkaXJzICYgc3ViZGlycwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBC
Q3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICkKLXsKLSAgICAg
ICAvLyBEb2VzIGl0IGFscmVhZHkgZXhpc3Q/Ci0gICAgICAgaWYgKCBQYXRoX0lzRGlyZWN0b3J5
KCBwY2hQYXRoICkgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgIC8vIGNv
cHkgdGhlIHBhdGggaW50byBzb21ldGhpbmcgd2UgY2FuIG11bmdlCi0gICAgICAgaW50IGxlbiA9
IChpbnQpc3RybGVuKCBwY2hQYXRoICk7Ci0gICAgICAgY2hhciAqcGF0aCA9IChjaGFyICopbWFs
bG9jKCBsZW4gKyAxICk7Ci0gICAgICAgc3RyY3B5KCBwYXRoLCBwY2hQYXRoICk7Ci0KLSAgICAg
ICAvLyBXYWxrIGJhY2t3YXJkcyB0byBmaXJzdCBub24tZXhpc3RpbmcgZGlyIHRoYXQgd2UgZmlu
ZAotICAgICAgIGNoYXIgKnMgPSBwYXRoICsgbGVuIC0gMTsKLQotICAgICAgIGNvbnN0IGNoYXIg
c2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0gICAgICAgd2hpbGUgKCBzID4gcGF0aCApCi0gICAg
ICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAgICAgICAgYm9v
bCBiRXhpc3RzID0gUGF0aF9Jc0RpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAg
ICAgKnMgPSBzbGFzaDsKLQotICAgICAgICAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICkKLSAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3M7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLS1zOwotICAgICAgIH0KLQotICAgICAg
IC8vIGFuZCB0aGVuIG1vdmUgZm9yd2FyZHMgZnJvbSB0aGVyZQotCi0gICAgICAgd2hpbGUgKCAq
cyApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOwotICAgICAgICAgICAgICAg
ICAgICAgQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAgICAgICAgICAgICAgICAgKnMg
PSBzbGFzaDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBzKys7Ci0gICAgICAgfQot
Ci0gICAgICAgYm9vbCBiUmV0VmFsID0gQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOwotICAgICAg
IGZyZWUoIHBhdGggKTsKLSAgICAgICByZXR1cm4gYlJldFZhbDsKLX0KLQotCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBDcmVhdGVzIHRoZSBkaXJlY3RvcnksIHJldHVybmlu
ZyB0cnVlIGlmIGl0IGlzIGNyZWF0ZWQsIG9yIGlmIGl0IGFscmVhZHkgZXhpc3RlZAotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQ
YXRoICkKLXsKLSNpZmRlZiBXSU4zMgotICAgICAgIHN0ZDo6d3N0cmluZyB3UGF0aCA9IFVURjh0
bzE2KCBwY2hQYXRoICk7Ci0gICAgICAgaWYgKCA6OkNyZWF0ZURpcmVjdG9yeVcoIHdQYXRoLmNf
c3RyKCksIE5VTEwgKSApCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgaWYg
KCA6OkdldExhc3RFcnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTICkKLSAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIGlu
dCBpID0gbWtkaXIoIHBjaFBhdGgsIFNfSVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTyApOwotICAg
ICAgIGlmICggaSA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgaWYg
KCBlcnJubyA9PSBFRVhJU1QgKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjA0OGI0MWI3ODE0ZmRlMDcyNzc2NGFlNzk0ZWRlOGUwZGZkNGU2MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0ZGludC5oPgot
I2luY2x1ZGUgPHN0cmluZz4KLQotCi0jaWYgIWRlZmluZWQoX1dJTjMyKQotI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotCi1leHRlcm4gYm9v
bCBCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci1leHRl
cm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRoICk7Ci0KLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2
YXJ0b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWQxNmQ5
Zjg1NjI2ZmNhMDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAg
QEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LwotI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgot
Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotCi0jdW5kZWYgR2V0
RW52aXJvbm1lbnRWYXJpYWJsZQotI3VuZGVmIFNldEVudmlyb25tZW50VmFyaWFibGUKLSNlbmRp
ZgotCi0KLXN0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBj
aFZhck5hbWUgKQotewotI2lmIGRlZmluZWQoX1dJTjMyKQotICAgICAgIGNoYXIgcmNoVmFsdWVb
MzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52IHZhciBvbiBXaW5kb3dzCi0gICAgICAgRFdP
UkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHJjaFZhbHVl
LCBzaXplb2YoIHJjaFZhbHVlICkgKTsKLSAgICAgICBpZiggY0NoYXJzID09IDAgKQotICAgICAg
ICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gcmNo
VmFsdWU7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIGNoYXIgKnBjaFZhbHVlID0gZ2V0
ZW52KCBwY2hWYXJOYW1lICk7Ci0gICAgICAgaWYoIHBjaFZhbHVlICkKLSAgICAgICAgICAgICAg
cmV0dXJuIHBjaFZhbHVlOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwot
I2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi1ib29s
IFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUsIGNvbnN0IGNo
YXIgKnBjaFZhclZhbHVlICkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4g
MCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUgKTsK
LSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAgaWYoIHBjaFZhclZhbHVlID09IE5VTEwgKQot
ICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNldGVudiggcGNoVmFyTmFtZSApOwotICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuIDAgPT0gc2V0ZW52KCBwY2hWYXJOYW1lLCBwY2hW
YXJWYWx1ZSwgMSApOwotI2Vsc2UKLSNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCi0jZW5k
aWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
ZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZGU5ODFhYzNlMzk3MDZkNTlhMDBjMmM0MWY4NTU4ZTRjNWQyMDYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxzdHJpbmc+Ci0KLXN0ZDo6c3RyaW5nIEdl
dEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKTsKLWJvb2wgU2V0
RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAq
cGNoVmFyVmFsdWUgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MTJlMWM0YjNhODEzMDhjMDE5ZDcyYmNjY2Q3YzZhZTcwOTgxOWY0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyMjkgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAib3BlbnZyLmgiCi0jaW5jbHVkZSAiaG1kZXJyb3Jz
X3B1YmxpYy5oIgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8YWxnb3JpdGhtPgotCi11
c2luZyBuYW1lc3BhY2UgdnI7Ci0KLSNkZWZpbmUgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKGVudW1W
YWx1ZSkgY2FzZSBlbnVtVmFsdWU6IHJldHVybiAjZW51bVZhbHVlOwotCi0KLWNvbnN0IGNoYXIg
KkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQot
ewotICAgICAgIHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Ob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJObyBFcnJvciAoMCkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SW5zdGFsbGF0aW9uIE5vdCBGb3VuZCAoMTAwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0
YWxsYXRpb24gQ29ycnVwdCAoMTAxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZS
Q2xpZW50RExMTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJ2cmNsaWVudCBT
aGFyZWQgTGliIE5vdCBGb3VuZCAoMTAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X0ZpbGVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlsZSBOb3QgRm91bmQgKDEwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRmFjdG9yeSBG
dW5jdGlvbiBOb3QgRm91bmQgKDEwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9J
bnRlcmZhY2VOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVyZmFjZSBO
b3QgRm91bmQgKDEwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgSW50ZXJm
YWNlICgxMDYpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQ6ICAgICAgIHJldHVybiAiVXNlciBDb25maWcgRGlyZWN0b3J5IEludmFsaWQg
KDEwNykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCAoMTA4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIk5vdCBJbml0aWFsaXplZCAoMTA5KSI7Ci0gICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDEx
MCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGg6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbmZpZyBwYXRoIGNvdWxkIG5vdCBi
ZSBsb2NhdGVkICgxMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRo
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJMb2cgcGF0aCBjb3Vs
ZCBub3QgYmUgbG9jYXRlZCAoMTEyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlOiAgICAgICAgICAgICAgcmV0dXJuICJVbmFibGUgdG8gd3Jp
dGUgcGF0aCByZWdpc3RyeSAoMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Fw
cEluZm9Jbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQXBwIGluZm8gbWFu
YWdlciBpbml0IGZhaWxlZCAoMTE0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW50
ZXJuYWwgUmV0cnkgKDExNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXI6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJVc2VyIENhbmNlbGVkIElu
aXQgKDExNikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNo
aW5nOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQW5vdGhlciBhcHAgd2FzIGFscmVhZHkg
bGF1bmNoaW5nICgxMTcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2V0dGluZ3NJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2V0dGluZ3MgbWFuYWdlciBp
bml0IGZhaWxlZCAoMTE4KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5n
RG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVlIgc3lzdGVt
IHNodXR0aW5nIGRvd24gKDExOSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJUb28gbWFueSB0
cmFja2VkIG9iamVjdHMgKDEyMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob1Nl
cnZlckZvckJhY2tncm91bmRBcHA6ICAgICAgICAgICAgICByZXR1cm4gIk5vdCBzdGFydGluZyB2
cnNlcnZlciBmb3IgYmFja2dyb3VuZCBhcHAgKDEyMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvcjogICAgICAgcmV0dXJuICJUaGUgcmVx
dWVzdGVkIGludGVyZmFjZSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29tcG9zaXRvciBhbmQg
dGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZyAoMTIyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHM6ICAgICAgIHJldHVybiAiVGhpcyBpbnRl
cmZhY2UgaXMgbm90IGF2YWlsYWJsZSB0byB1dGlsaXR5IGFwcGxpY2F0aW9ucyAoMTIzKSI7Ci0g
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJzZXJ2ZXIgaW50ZXJuYWwgZXJyb3IgKDEy
NCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZTogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBpbnZhbGlkICgxMjUpIjsK
LSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZDog
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kIFByZXNlbmNlIEZhaWxlZCAoMTI2KSI7Ci0gICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBOb3QgRm91bmQgKDEyNykiOwotICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0
dXJuICJWUiBNb25pdG9yIHN0YXJ0dXAgZmFpbGVkICgxMjgpIjsKLSAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZDogcmV0dXJuICJMb3cgUG93
ZXIgV2F0Y2hkb2cgTm90IFN1cHBvcnRlZCAoMTI5KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGU6ICAgICAgICAgICAgICByZXR1cm4gIkludmFs
aWQgQXBwbGljYXRpb24gVHlwZSAoMTMwKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzOiAgICAgICByZXR1cm4gIk5vdCBhdmFpbGFibGUg
dG8gd2F0Y2hkb2cgYXBwcyAoMTMxKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1dh
dGNoZG9nRGlzYWJsZWRJblNldHRpbmdzOiAgICAgICByZXR1cm4gIldhdGNoZG9nIGRpc2FibGVk
IGluIHNldHRpbmdzICgxMzIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBO
b3QgRm91bmQgKDEzMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBzdGFydHVw
IGZhaWxlZCAoMTM0KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZv
dW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIEhvbWUgTm90IEZvdW5k
ICgxMzUpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxl
ZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIGhvbWUgc3RhcnR1cCBmYWlsZWQgKDEz
NikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlJlYm9vdGluZyBJbiBQcm9ncmVzcyAoMTM3KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeTogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFVwZGF0ZSBJbiBQcm9ncmVzcyAoMTM4KSI7
Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5OiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRmlybXdhcmUgUmVjb3ZlcnkgSW4gUHJvZ3Jlc3MgKDEz
OSkiOwotCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBGYWls
ZWQgKDIwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd246ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IEtu
b3duICgyMDEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIE5vdCBL
bm93biAoMjAyKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5v
dCBMb2FkZWQgKDIwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIHJ1bnRp
bWUgaXMgb3V0IG9mIGRhdGUgKDIwNCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYXBwbGljYXRpb24gKDIwNSkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBpcyBub3QgY2FsaWJyYXRlZCAoMjA2
KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBDYWxpYnJhdGlvbiBpcyBp
bnZhbGlkICgyMDcpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVk
IG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91bmQgKDIwOCkiOwotICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duOiAgICAgICByZXR1
cm4gIkRyaXZlciBUcmFja2VkIERldmljZSBJbnRlcmZhY2UgdW5rbm93biAoMjA5KSI7Ci0gICAg
ICAgLy8gY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXg6
ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91
bmQgYWZ0ZXIgYXR0ZW1wdCB0byBmaXggKDIxMCkiOyAvLyB0YWtlbiBvdXQgdXBvbiBCZW4ncyBy
ZXF1ZXN0OiBIZSB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHNlcGFyYXRlIHRoYXQg
ZXJyb3IgZnJvbSAyMDgKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJ
ZE91dE9mQm91bmRzOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIERyaXZlcklkIGlz
IG91ciBvZiBib3VuZHMgKDIxMSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ht
ZERpc3BsYXlNaXJyb3JlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQg
ZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG1heSBiZSBtaXJyb3JlZCBpbnN0ZWFkIG9m
IGV4dGVuZGVkICgyMTIpIjsKLQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX1NlcnZlcklu
aXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJWUiBTZXJ2ZXIgSW5pdCBGYWlsZWQgKDMwMCkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX0Nvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiQ29ubmVjdCB0byBWUiBTZXJ2ZXIgRmFpbGVkICgzMDEpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgU3RhdGUgSW5pdCBG
YWlsZWQgKDMwMikiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQg
SVBDIENvbXBvc2l0b3IgSW5pdCBGYWlsZWQgKDMwMykiOwotICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSVBDX011dGV4SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgTXV0ZXggSW5pdCBGYWlsZWQgKDMwNCkiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBGYWlsZWQg
KDMwNSkiOwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFp
bGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9z
aXRvciBDb25uZWN0IEZhaWxlZCAoMzA2KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2U6ICAgICAgICAgICAgICByZXR1cm4gIlNo
YXJlZCBJUEMgQ29tcG9zaXRvciBJbnZhbGlkIENvbm5lY3QgUmVzcG9uc2UgKDMwNykiOwotICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1w
dHM6ICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb25uZWN0IEZhaWxlZCBBZnRlciBNdWx0aXBs
ZSBBdHRlbXB0cyAoMzA4KSI7Ci0KLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb21wb3Np
dG9yIGZhaWxlZCB0byBpbml0aWFsaXplICg0MDApIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0
b3IgZmFpbGVkIHRvIGZpbmQgRFgxMSBoYXJkd2FyZSAoNDAxKSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGU6ICAgICAgIHJldHVybiAi
Q29tcG9zaXRvciByZXF1aXJlcyBtYW5kYXRvcnkgZmlybXdhcmUgdXBkYXRlICg0MDIpIjsKLSAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQ6ICAgICAg
ICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVkLCBidXQg
b3ZlcmxheSBpbml0IGZhaWxlZCAoNDAzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZDogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGlu
aXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IHNjcmVlbnNob3QgaW5pdCBmYWlsZWQgKDQwNCki
OwotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmlj
ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHVuYWJsZSB0byBjcmVhdGUgZ3JhcGhpY3MgZGV2
aWNlICg0MDUpIjsKLQotICAgICAgIC8vIE9jdWx1cwotICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lOiAgICAgICByZXR1
cm4gIlVuYWJsZSB0byBjb25uZWN0IHRvIE9jdWx1cyBSdW50aW1lICgxMDAwKSI7Ci0KLSAgICAg
ICAvLyBMaWdodGhvdXNlCi0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBjYW4gbm90IG9wZW4gZGV2aWNlICgxMTAxKSI7Ci0gICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25m
aWdTdGFydDogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gcmVxdWVzdCBj
b25maWcgKDExMDIpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX05vU3RvcmVkQ29uZmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IG5vIHN0b3JlZCBjb25maWcgKDExMDMpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNr
OiAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGZhaWxlZCBjb25maWd1cmF0aW9uIGNoZWNr
ICgxMTEzKSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29CaWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gYmlnICgxMTA0KSI7Ci0gICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIHNtYWxs
ICgxMTA1KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb0luaXRaTGliOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhN
RCBmb3VuZCwgYnV0IHVuYWJsZSB0byBpbml0IFpMaWIgKDExMDYpIjsKLSAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9u
OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBk
YXRhICgxMTA3KSI7Ci0gICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA4KSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3Rh
cnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhl
IGRhdGEgKDExMDkpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEwKSI7Ci0gICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZTog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGgg
dGhlIGRhdGEgKDExMTEpIjsKLSAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VzZXJEYXRhRXJyb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMTIpIjsK
LQotICAgICAgIGNhc2UgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZDogcmV0dXJuICJVbmFibGUgdG8gZmluZCBTdGVhbSBpbnN0YWxsYXRpb24gKDIwMDApIjsKLQot
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHN0
YXRpYyBjaGFyIGJ1ZlsxMjhdOwotICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAi
VW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9yICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYnVmOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi19Ci0KLQotY29uc3QgY2hhciAq
R2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQotewotICAgICAg
IHN3aXRjaCggZUVycm9yICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfTm9uZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1Vua25vd24gKTsKLQotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbkNvcnJ1cHQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCApOwot
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVXNlckNv
bmZpZ0RpcmVjdG9yeUludmFsaWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RS
SU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCApOwotICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICk7Ci0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCApOwotICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICk7Ci0g
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29t
cG9zaXRvciApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5v
dEZvdW5kICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9y
dGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAp
OwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
V2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgKTsKLSAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQgKTsK
LSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Jl
Ym9vdGluZ0J1c3kgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSApOwotICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3kgKTsK
LQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgKTsKLQotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQg
KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2
ZXJfVW5rbm93biApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWRVbmtub3duKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSk7
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duICk7Ci0gICAgICAgICAg
ICAgIC8vIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZEFmdGVyRml4ICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgKTsKLSAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxh
eU1pcnJvcmVkICk7Ci0KLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQpOwotICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCk7Ci0gICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCk7Ci0gICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JD
b25uZWN0RmFpbGVkKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UpOwotICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzKTsKLQotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJl
UmVxdWlyZWQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgKTsKLSAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRl
RGV2aWNlICk7Ci0KLSAgICAgICAgICAgICAgLy8gT2N1bHVzCi0gICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25u
ZWN0VG9PY3VsdXNSdW50aW1lKTsKLQotICAgICAgICAgICAgICAvLyBMaWdodGhvdXNlCi0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UpOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0KTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyk7Ci0gICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgKTsKLSAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdUb29CaWcgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCApOwotICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZp
cm13YXJlVmVyc2lvbiApOwotICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgKTsKLSAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgKTsKLSAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCApOwotICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhQWRkcmVzc1JhbmdlICk7Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciApOwot
Ci0gICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfU3RlYW1f
U3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCApOwotCi0gICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07Ci0gICAg
ICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBlRXJy
b3IgKTsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNjZDZjOGE5NmMxMzBjMGFjZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLS8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLwotI3ByYWdtYSBvbmNlCi0KLWNvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JI
bWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKLWNvbnN0IGNoYXIgKkdldElERm9y
VlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTFhNTEyMzMyNmIxZThlMjlhMzJm
YWM5MzQzZTA4ZTk1YzJjNDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xz
X3B1YmxpYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MTkgKzAsMCBAQAotLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jaW5jbHVkZSAic3Ry
dG9vbHNfcHVibGljLmgiCi0jaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgotCi0jaWYgZGVm
aW5lZCggX1dJTjMyKQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxkaXJlY3QuaD4K
LSNpbmNsdWRlIDxzaG9iamlkbC5oPgotI2luY2x1ZGUgPGtub3duZm9sZGVycy5oPgotI2luY2x1
ZGUgPHNobG9iai5oPgotI2luY2x1ZGUgPHNoYXJlLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVu
dFZhcmlhYmxlCi0jZWxzZQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNlbmRpZgotI2lmIGRl
ZmluZWQgT1NYCi0jaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW5jbHVkZSA8
QXBwS2l0L0FwcEtpdC5oPgotI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+Ci0jZGVmaW5lIF9TX0lG
RElSIFNfSUZESVIgICAgIC8vIHJlYWxseSBmcm9tIHRpZXIwL3BsYXRmb3JtLmggd2hpY2ggd2Ug
ZG9udCBoYXZlIHlldAotI2VuZGlmCi0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotCi0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotCi0vKiogUmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1l
KSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1
dGFibGVQYXRoKCkKLXsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHdjaGFyX3QgKnB3
Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAgY2hhciAqcGNo
UGF0aCA9IG5ldyBjaGFyW01BWF9VTklDT0RFX1BBVEhfSU5fVVRGOF07Ci0gICAgICAgOjpHZXRN
b2R1bGVGaWxlTmFtZVcoIE5VTEwsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIICk7Ci0gICAg
ICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRo
LCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAgICBkZWxldGVb
XSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0aDsKLSAgICAg
ICBkZWxldGVbXSBwY2hQYXRoOwotICAgICAgIHJldHVybiBzUGF0aDsKLSNlbGlmIGRlZmluZWQo
IE9TWCApCi0gICAgICAgY2hhciByY2hQYXRoWzEwMjRdOwotICAgICAgIHVpbnQzMl90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgYm9vbCBiU3VjY2VzcyA9IF9OU0dldEV4ZWN1
dGFibGVQYXRoKHJjaFBhdGgsICZuQnVmZikgPT0gMDsKLSAgICAgICByY2hQYXRoW25CdWZmLTFd
ID0gJ1wwJzsKLSAgICAgICBpZiggYlN1Y2Nlc3MgKQotICAgICAgICAgICAgICByZXR1cm4gcmNo
UGF0aDsKLSAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHJldHVybiAiIjsKLSNlbGlmIGRlZmlu
ZWQgTElOVVgKLSAgICAgICBjaGFyIHJjaFBhdGhbMTAyNF07Ci0gICAgICAgc2l6ZV90IG5CdWZm
ID0gc2l6ZW9mKCByY2hQYXRoICk7Ci0gICAgICAgc3NpemVfdCBuUmVhZCA9IHJlYWRsaW5rKCIv
cHJvYy9zZWxmL2V4ZSIsIHJjaFBhdGgsIG5CdWZmLTEgKTsKLSAgICAgICBpZiAoIG5SZWFkICE9
IC0xICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJjaFBhdGhbIG5SZWFkIF0gPSAwOwotICAg
ICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKLSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLSNlbHNlCi0gICAgICAgQXNz
ZXJ0TXNnKCBmYWxzZSwgIkltcGxlbWVudCBQbGF0X0dldEV4ZWN1dGFibGVQYXRoIiApOwotICAg
ICAgIHJldHVybiAiIjsKLSNlbmRpZgotCi19Ci0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtp
bmdEaXJlY3RvcnkoKQotewotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoOwotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgd2NoYXJfdCBidWZbTUFYX1VOSUNPREVfUEFUSF07Ci0gICAgICAg
c1BhdGggPSBVVEYxNnRvOCggX3dnZXRjd2QoIGJ1ZiwgTUFYX1VOSUNPREVfUEFUSCApICk7Ci0j
ZWxzZQotICAgICAgIGNoYXIgYnVmWyAxMDI0IF07Ci0gICAgICAgc1BhdGggPSBnZXRjd2QoIGJ1
Ziwgc2l6ZW9mKCBidWYgKSApOwotI2VuZGlmCi0gICAgICAgcmV0dXJuIHNQYXRoOwotfQotCi0v
KiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJu
cyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwuICovCi1ib29sIFBhdGhfU2V0V29ya2luZ0Rp
cmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgYm9vbCBiU3Vj
Y2VzczsKLSNpZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHN0ZDo6d3N0cmluZyB3c1BhdGgg
PSBVVEY4dG8xNiggc1BhdGguY19zdHIoKSApOwotICAgICAgIGJTdWNjZXNzID0gMCA9PSBfd2No
ZGlyKCB3c1BhdGguY19zdHIoKSApOwotI2Vsc2UKLSAgICAgICBiU3VjY2VzcyA9IDAgPT0gY2hk
aXIoIHNQYXRoLmNfc3RyKCkgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBiU3VjY2VzczsKLX0K
LQotLyoqIFJldHVybnMgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lICov
Ci1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAg
ICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3Rk
OjpzdHJpbmc6Om5wb3MgKQotICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxz
ZQotICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCksIHNQYXRo
LmJlZ2luKCkgKyBuICk7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20g
dGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhf
U3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQot
ewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dl
dFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5k
X2xhc3Rfb2YoIHNsYXNoICk7Ci0gICAgICAgaWYoIG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQot
ICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCkgKyBuICsgMSwgc1BhdGguZW5kKCkgKTsK
LX0KLQotLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2Yg
dGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKLSogSWYgdGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlz
IGxlZnQgaW50YWN0LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3Rf
cmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYoICppID09ICcuJyApCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVn
aW4oKSwgaS5iYXNlKCkgLSAxICk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAv
LyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0ZW5zaW9uCi0gICAgICAgICAgICAg
IGlmKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyApCi0gICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICB9Ci0KLSAgICAgICAvLyB3ZSBkaWRuJ3QgZmluZCBhbiBleHRlbnNpb24KLSAg
ICAgICByZXR1cm4gc1BhdGg7Ci19Ci0KLS8qKiByZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRo
ZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0
ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKLXsKLSAgICAgICBmb3IgKCBzdGQ6
OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0g
c1BhdGgucmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKCAqaSA9PSAn
LicgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoIGkuYmFzZSgpLCBzUGF0aC5lbmQoKSApOwotICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNoIHRoZXJlIGlzIG5vIGV4dGVuc2lvbgotICAg
ICAgICAgICAgICBpZiAoICppID09ICdcXCcgfHwgKmkgPT0gJy8nICkKLSAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgIH0KLQotICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4
dGVuc2lvbgotICAgICAgIHJldHVybiAiIjsKLX0KLQotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIGlmKCBzUGF0aC5lbXB0eSgpICkK
LSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAg
ICAgIGlmICggc1BhdGguc2l6ZSgpIDwgMyApIC8vIG11c3QgYmUgYzpceCBvciBcXHggYXQgbGVh
c3QKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgaWYgKCBzUGF0aFsxXSA9
PSAnOicgKSAvLyBkcml2ZSBsZXR0ZXIgcGx1cyBzbGFzaCwgYnV0IG11c3QgdGVzdCBib3RoIHNs
YXNoIGNhc2VzCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIHNQYXRoWzJdID09ICdcXCcg
fHwgc1BhdGhbMl0gPT0gJy8nICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLSAgICAgICBlbHNlIGlmICggc1BhdGhbMF0gPT0gJ1xcJyAmJiBzUGF0aFsxXSA9
PSAnXFwnICkgLy8gVU5DIHBhdGgKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQot
ICAgICAgIGlmKCBzUGF0aFswXSA9PSAnXFwnIHx8IHNQYXRoWzBdID09ICcvJyApIC8vIGFueSBs
ZWFkaW5nIHNsYXNoCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0KLSAgICAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBh
IHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VB
YnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAg
KQotICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIGlmKCBQ
YXRoX0lzQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGggKSApCi0gICAgICAgICAgICAgIHJldHVybiBz
UmVsYXRpdmVQYXRoOwotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCAh
UGF0aF9Jc0Fic29sdXRlKCBzQmFzZVBhdGggKSApCi0gICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIiI7Ci0KLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc0NvbXBhY3RlZCA9IFBhdGhfQ29t
cGFjdCggUGF0aF9Kb2luKCBzQmFzZVBhdGgsIHNSZWxhdGl2ZVBhdGgsIHNsYXNoICksIHNsYXNo
ICk7Ci0gICAgICAgICAgICAgIGlmKCBQYXRoX0lzQWJzb2x1dGUoIHNDb21wYWN0ZWQgKSApCi0g
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0NvbXBhY3RlZDsKLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLX0KLQotCi0vKiog
Rml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRo
LCBjaGFyIHNsYXNoICkKLXsKLSAgICAgICBpZiggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAg
IHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkID0g
c1BhdGg7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6aXRlcmF0b3IgaSA9IHNGaXhlZC5iZWdp
bigpOyBpICE9IHNGaXhlZC5lbmQoKTsgaSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlm
KCAqaSA9PSAnLycgfHwgKmkgPT0gJ1xcJyApCi0gICAgICAgICAgICAgICAgICAgICAqaSA9IHNs
YXNoOwotICAgICAgIH0KLQotICAgICAgIHJldHVybiBzRml4ZWQ7Ci19Ci0KLQotY2hhciBQYXRo
X0dldFNsYXNoKCkKLXsKLSNpZiBkZWZpbmVkKF9XSU4zMikKLSAgICAgICByZXR1cm4gJ1xcJzsK
LSNlbHNlCi0gICAgICAgcmV0dXJuICcvJzsKLSNlbmRpZgotfQotCi0vKiogSmFtcyB0d28gcGF0
aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2luZCBvZiBzbGFzaCAqLwotc3RkOjpzdHJpbmcg
UGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNlY29uZCwgY2hhciBzbGFzaCApCi17Ci0gICAgICAgaWYoIHNsYXNoID09IDAgKQotICAgICAg
ICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKLQotICAgICAgIC8vIG9ubHkgaW5zZXJ0
IGEgc2xhc2ggaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZQotICAgICAgIHN0ZDo6c3RyaW5n
OjpzaXplX3R5cGUgbkxlbiA9IGZpcnN0Lmxlbmd0aCgpOwotICAgICAgIGlmKCAhbkxlbiApCi0g
ICAgICAgICAgICAgIHJldHVybiBzZWNvbmQ7Ci0jaWYgZGVmaW5lZChfV0lOMzIpCi0gICAgICAg
aWYoIGZpcnN0LmJhY2soKSA9PSAnXFwnIHx8IGZpcnN0LmJhY2soKSA9PSAnLycgKQotICAgICAg
ICAgICBuTGVuLS07Ci0jZWxzZQotICAgICAgIGNoYXIgbGFzdF9jaGFyID0gZmlyc3RbZmlyc3Qu
bGVuZ3RoKCktMV07Ci0gICAgICAgaWYgKGxhc3RfY2hhciA9PSAnXFwnIHx8IGxhc3RfY2hhciA9
PSAnLycpCi0gICAgICAgICAgIG5MZW4tLTsKLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIGZpcnN0
LnN1YnN0ciggMCwgbkxlbiApICsgc3RkOjpzdHJpbmcoIDEsIHNsYXNoICkgKyBzZWNvbmQ7Ci19
Ci0KLQotc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hh
ciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwg
c2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKTsKLX0KLQotc3RkOjpzdHJpbmcgUGF0aF9K
b2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29u
ZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwg
Y2hhciBzbGFzaCApCi17Ci0gICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRo
X0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNs
YXNoICk7Ci19Ci0KLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0gICAgICAgY29uc3Qgc3RkOjpz
dHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIAotICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpZnRoLCAKLSAgICAgICBj
aGFyIHNsYXNoICkKLXsKLSAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhf
Sm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwg
Zm91cnRoLCBzbGFzaCApLCBmaWZ0aCwgc2xhc2ggKTsKLX0KLQotCi1zdGQ6OnN0cmluZyBQYXRo
X1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIg
c2xhc2ggKQotewotICAgICAgIGlmICggc2xhc2ggPT0gMCApCi0gICAgICAgICAgICAgIHNsYXNo
ID0gUGF0aF9HZXRTbGFzaCgpOwotCi0gICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBzUmF3UGF0
aDsKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG5DdXJyZW50ID0gc1Jhd1BhdGgubGVu
Z3RoKCk7Ci0gICAgICAgaWYgKCBuQ3VycmVudCA9PSAwICkKLSAgICAgICAgICAgICAgcmV0dXJu
IHNQYXRoOwotCi0gICAgICAgaW50IG5MYXN0Rm91bmQgPSAtMTsKLSAgICAgICBuQ3VycmVudC0t
OwotICAgICAgIHdoaWxlKCBuQ3VycmVudCAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAg
IGlmICggc1Jhd1BhdGhbIG5DdXJyZW50IF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICBuTGFzdEZvdW5kID0gKGludCluQ3VycmVudDsKLSAgICAgICAg
ICAgICAgICAgICAgIG5DdXJyZW50LS07Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgaWYgKCBuTGFzdEZv
dW5kID49IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc1BhdGguZXJhc2UoIG5MYXN0Rm91
bmQsIHN0ZDo6c3RyaW5nOjpucG9zICk7Ci0gICAgICAgfQotICAgICAgIAotICAgICAgIHJldHVy
biBzUGF0aDsKLX0KLQotCi0vKiogUmVtb3ZlcyByZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMg
aW4gdGhlIHBhdGguIFJldHVybnMgYW4gZW1wdHkgcGF0aCBpZiB0aGUgCi0qIHNwZWNpZmllZCBw
YXRoIGhhcyBhIGJyb2tlbiBudW1iZXIgb2YgZGlyZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2Yg
Li5zICovCi1zdGQ6OnN0cmluZyBQYXRoX0NvbXBhY3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jh
d1BhdGgsIGNoYXIgc2xhc2ggKQotewotICAgICAgIGlmKCBzbGFzaCA9PSAwICkKLSAgICAgICAg
ICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0
aCA9IFBhdGhfRml4U2xhc2hlcyggc1Jhd1BhdGgsIHNsYXNoICk7Ci0gICAgICAgc3RkOjpzdHJp
bmcgc1NsYXNoU3RyaW5nKCAxLCBzbGFzaCApOwotCi0gICAgICAgLy8gc3RyaXAgb3V0IGFsbCAv
Li8KLSAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7IChpICsgMykgPCBz
UGF0aC5sZW5ndGgoKTsgICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgaSBd
ID09IHNsYXNoICYmIHNQYXRoWyBpKzEgXSA9PSAnLicgJiYgc1BhdGhbIGkrMiBdID09IHNsYXNo
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc1BhdGgucmVwbGFjZSgg
aSwgMywgc1NsYXNoU3RyaW5nICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICArK2k7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICB9Ci0KLQotICAgICAgIC8vIGdldCByaWQgb2YgdHJhaWxpbmcgLy4gYnV0
IGxlYXZlIHRoZSBwYXRoIHNlcGFyYXRvcgotICAgICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIg
KQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBsZW4gPSBz
UGF0aC5sZW5ndGgoKTsKLSAgICAgICAgICAgICAgaWYoIHNQYXRoWyBsZW4tMSBdID09ICcuJyAg
JiYgc1BhdGhbIGxlbi0yIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgLy8gc1BhdGgucG9wX2JhY2soKTsKLSAgICAgICAgICAgICAgICBzUGF0aFtsZW4tMV0g
PSAwOyAgLy8gZm9yIG5vdywgYXQgbGVhc3QKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIC8vIGdldCByaWQgb2YgbGVhZGluZyAuLyAKLSAgICAgICBpZiggc1BhdGgubGVuZ3Ro
KCkgPiAyICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmKCBzUGF0aFsgMCBdID09ICcuJyAg
JiYgc1BhdGhbIDEgXSA9PSBzbGFzaCApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIHNQYXRoLnJlcGxhY2UoIDAsIDIsICIiICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICB9Ci0KLSAgICAgICAvLyBlYWNoIHRpbWUgd2UgZW5jb3VudGVyIC4uIGJhY2sgdXAgdW50aWwg
d2UndmUgZm91bmQgdGhlIHByZXZpb3VzIGRpcmVjdG9yeSBuYW1lCi0gICAgICAgLy8gdGhlbiBn
ZXQgcmlkIG9mIGJvdGgKLSAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOwotICAg
ICAgIHdoaWxlKCBpIDwgc1BhdGgubGVuZ3RoKCkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
aWYoIGkgPiAwICYmIHNQYXRoLmxlbmd0aCgpIC0gaSA+PSAyIAotICAgICAgICAgICAgICAgICAg
ICAgJiYgc1BhdGhbaV0gPT0gJy4nCi0gICAgICAgICAgICAgICAgICAgICAmJiBzUGF0aFtpKzFd
ID09ICcuJwotICAgICAgICAgICAgICAgICAgICAgJiYgKCBpICsgMiA9PSBzUGF0aC5sZW5ndGgo
KSB8fCBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQotICAgICAgICAgICAgICAgICAgICAgJiYgc1Bh
dGhbIGktMSBdID09IHNsYXNoICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgLy8gY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nIGFuZCBoYXZl
IGEgYm9ndXMgcGF0aAotICAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMSApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIGktMQotICAg
ICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpRGlyU3RhcnQgPSBpLTI7
Ci0gICAgICAgICAgICAgICAgICAgICB3aGlsZSggaURpclN0YXJ0ID4gMCAmJiBzUGF0aFsgaURp
clN0YXJ0IC0gMSBdICE9IHNsYXNoICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWlE
aXJTdGFydDsKLQotICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgZnJv
bSBpRGlyU3RhcnQgdG8gaSsyCi0gICAgICAgICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBp
RGlyU3RhcnQsIChpIC0gaURpclN0YXJ0KSArIDMsICIiICk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgIC8vIHN0YXJ0IG92ZXIKLSAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgKytpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IHNQYXRoOwotfQotCi0KLS8qKiBSZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IERMTCBv
ciBleGUgKi8KLXN0ZDo6c3RyaW5nIFBhdGhfR2V0VGhpc01vZHVsZVBhdGgoKQotewotICAgICAg
IC8vIGdldHMgdGhlIHBhdGggb2YgdnJjbGllbnQuZGxsIGl0c2VsZgotI2lmZGVmIFdJTjMyCi0g
ICAgICAgSE1PRFVMRSBobW9kdWxlID0gTlVMTDsKLQotICAgICAgIDo6R2V0TW9kdWxlSGFuZGxl
RXgoIEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTIHwgR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19VTkNIQU5HRURfUkVGQ09VTlQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBDVFNU
Uj4oUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCksICZobW9kdWxlICk7Ci0KLSAgICAgICB3Y2hhcl90
ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9VTklDT0RFX1BBVEhdOwotICAgICAgIGNoYXIg
KnBjaFBhdGggPSBuZXcgY2hhclsgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4IF07Ci0gICAgICAg
OjpHZXRNb2R1bGVGaWxlTmFtZVcoIGhtb2R1bGUsIHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRI
ICk7Ci0gICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0x
LCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5VTEwsIE5VTEwgKTsKLSAgICAg
ICBkZWxldGVbXSBwd2NoUGF0aDsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0
aDsKLSAgICAgICBkZWxldGUgW10gcGNoUGF0aDsKLSAgICAgICByZXR1cm4gc1BhdGg7Ci0KLSNl
bGlmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBnZXQgdGhl
IGFkZHIgb2YgYSBmdW5jdGlvbiBpbiB2cmNsaWVudC5zbyBhbmQgdGhlbiBhc2sgdGhlIGRsb3Bl
biBzeXN0ZW0gYWJvdXQgaXQKLSAgICAgICBEbF9pbmZvIGluZm87Ci0gICAgICAgZGxhZGRyKCAo
dm9pZCAqKVBhdGhfR2V0VGhpc01vZHVsZVBhdGgsICZpbmZvICk7Ci0gICAgICAgcmV0dXJuIGlu
Zm8uZGxpX2ZuYW1lOwotI2VuZGlmCi0KLX0KLQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBz
cGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29sIFBhdGhfSXNE
aXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQotewotICAgICAgIHN0ZDo6c3Ry
aW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7Ci0gICAgICAgaWYoIHNG
aXhlZFBhdGguZW1wdHkoKSApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICBj
aGFyIGNMYXN0ID0gc0ZpeGVkUGF0aFsgc0ZpeGVkUGF0aC5sZW5ndGgoKSAtIDEgXTsKLSAgICAg
ICBpZiggY0xhc3QgPT0gJy8nIHx8IGNMYXN0ID09ICdcXCcgKQotICAgICAgICAgICAgICBzRml4
ZWRQYXRoLmVyYXNlKCBzRml4ZWRQYXRoLmVuZCgpIC0gMSwgc0ZpeGVkUGF0aC5lbmQoKSApOwot
Ci0gICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCi0K
LSNpZiBkZWZpbmVkKFBPU0lYKQotICAgICAgIHN0cnVjdCAgICAgICBzdGF0ICAgICAgIGJ1ZjsK
LSAgICAgICBpZiAoIHN0YXQoIHNGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xICkKLSAg
ICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSNpZiBkZWZp
bmVkKCBMSU5VWCApIHx8IGRlZmluZWQoIE9TWCApCi0gICAgICAgcmV0dXJuIFNfSVNESVIoIGJ1
Zi5zdF9tb2RlICk7Ci0jZWxzZQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJ
UikgIT0gMDsKLSNlbmRpZgotCi0jZWxzZQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAg
ICBidWY7Ci0gICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhl
ZFBhdGguY19zdHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigp
LCAmYnVmICkgPT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsK
LSNlbmRpZgotfQotCi0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXBy
ZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KLWJvb2wgUGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzUGF0aCApCi17Ci0jaWYgZGVmaW5lZChPU1gpCi0gICAgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFsgTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6IFsgTlNTdHJpbmcgc3RyaW5nV2l0
aFVURjhTdHJpbmc6c1BhdGguY19zdHIoKSBdIF07Ci0gICAgICAgYm9vbCBiaXNBcHBCdW5kbGUg
PSAoIG51bGxwdHIgIT0gYnVuZGxlICk7Ci0gICAgICAgWyBidW5kbGUgcmVsZWFzZSBdOwotICAg
ICAgIHJldHVybiBiaXNBcHBCdW5kbGU7Ci0jZWxzZQotICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiByZXR1cm5zIHRy
dWUgaWYgdGhlIHRoZSBwYXRoIGV4aXN0cwotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBQ
YXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCi17Ci0gICAgICAgc3RkOjpz
dHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKLSAgICAgICBpZigg
c0ZpeGVkUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYg
ZGVmaW5lZCggV0lOMzIgKQotICAgICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAgICBidWY7Ci0g
ICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19z
dHIoKSApOwotICAgICAgIGlmICggX3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkg
PT0gLTEgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIH0K
LSNlbHNlCi0gICAgICAgc3RydWN0IHN0YXQgYnVmOwotICAgICAgIGlmICggc3RhdCAoIHNGaXhl
ZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgIH0KLSNlbmRpZgotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0K
LQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBk
aXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVuIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVudERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJE
aXJlY3RvcnlOYW1lICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3Ry
U3RhcnREaXJlY3RvcnkgKTsKLSAgICAgICBpZiAoIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09
IDAgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSAgICAgICBib29sIGJFeGlzdHMgPSBQ
YXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLSAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJy
ZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7
Ci0gICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1l
LmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSApID09IDAgKQotICAgICAgICAgICAg
ICByZXR1cm4gc3RyQ3VycmVudFBhdGg7Ci0KLSAgICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJD
dXJyZW50UGF0aC5sZW5ndGgoKSAhPSAwICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHN0ckN1
cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZpbGVuYW1lKCBzdHJDdXJyZW50UGF0aCApOwotICAgICAg
ICAgICAgICBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0
ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3Ry
Q3VycmVudFBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0
ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSAp
ID09IDAgKQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ckN1cnJlbnRQYXRoOwotICAg
ICAgIH0KLQotICAgICAgIHJldHVybiAiIjsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBhIHN1YmRpcmVjdG9yeSB1cHN0cmVhbSBmcm9t
IGEgZ2l2ZW4gcGF0aAotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgUGF0aF9G
aW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJT
dGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKQotewot
ICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0aCA9ICIiOwotICAgICAgIHN0ZDo6c3RyaW5n
IHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzdHJTdGFydERpcmVjdG9yeSApOwot
ICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgPT0gMCApCi0gICAgICAgICAgICAg
IHJldHVybiAiIjsKLQotICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJy
ZW50UGF0aCApOwotICAgICAgIHdoaWxlKCBiRXhpc3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0
aCgpICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRo
X1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRoICk7Ci0gICAgICAgICAgICAgIGJFeGlzdHMg
PSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKLQotICAgICAgICAgICAgICBpZiggUGF0
aF9FeGlzdHMoIFBhdGhfSm9pbiggc3RyQ3VycmVudFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKSAp
ICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgc3RyRm91bmRQYXRoID0g
UGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0b3J5TmFtZSApOwotICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgcmV0
dXJuIHN0ckZvdW5kUGF0aDsKLX0KLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJw
b3NlOiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVzIGluIHRoZSB2b3J0ZXggZGlyZWN0b3J5Ci0v
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi11bnNpZ25lZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5Rmls
ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBpbnQgKnBTaXplICkKLXsKLSAgICAg
ICBGSUxFICpmOwotI2lmIGRlZmluZWQoIFBPU0lYICkKLSAgICAgICBmID0gZm9wZW4oIHN0ckZp
bGVuYW1lLmNfc3RyKCksICJyYiIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJG
aWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgLy8gdGhl
IG9wZW4gb3BlcmF0aW9uIG5lZWRzIHRvIGJlIHNoYXJhYmxlLCB0aGVyZWZvcmUgdXNlIG9mIF93
ZnNvcGVuIGluc3RlYWQgb2YgX3dmb3Blbl9zCi0gICAgICAgZiA9IF93ZnNvcGVuKCB3c3RyRmls
ZW5hbWUuY19zdHIoKSwgTCJyYiIsIF9TSF9ERU5ZTk8gKTsKLSNlbmRpZgotICAgICAgIAotICAg
ICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IE5VTEw7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCAp
Ci0gICAgICAgewotICAgICAgICAgICAgICBmc2VlayhmLCAwLCBTRUVLX0VORCk7Ci0gICAgICAg
ICAgICAgIGludCBzaXplID0gZnRlbGwoZik7Ci0gICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNF
RUtfU0VUKTsKLQotICAgICAgICAgICAgICBidWYgPSBuZXcgdW5zaWduZWQgY2hhcltzaXplXTsK
LSAgICAgICAgICAgICAgaWYgKGJ1ZiAmJiBmcmVhZChidWYsIHNpemUsIDEsIGYpID09IDEpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChwU2l6ZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqcFNpemUgPSBzaXplOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgZGVs
ZXRlW10gYnVmOwotICAgICAgICAgICAgICAgICAgICAgYnVmID0gMDsKLSAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4g
YnVmOwotfQotCi11aW50MzJfdCAgUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUg
KQotewotICAgICAgIEZJTEUgKmY7Ci0jaWYgZGVmaW5lZCggUE9TSVggKQotICAgICAgIGYgPSBm
b3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJiIiApOwotI2Vsc2UKLSAgICAgICBzdGQ6Ondz
dHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAg
ICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBM
InJiIiApOwotICAgICAgIGlmICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAg
ZiA9IE5VTEw7Ci0gICAgICAgfQotI2VuZGlmCi0KLSAgICAgICB1aW50MzJfdCB1blNpemVUb1Jl
dHVybiA9IDA7Ci0KLSAgICAgICBpZiAoIGYgIT0gTlVMTCApCi0gICAgICAgewotICAgICAgICAg
ICAgICBmc2VlayggZiwgMCwgU0VFS19FTkQgKTsKLSAgICAgICAgICAgICAgdWludDMyX3Qgc2l6
ZSA9ICh1aW50MzJfdClmdGVsbCggZiApOwotICAgICAgICAgICAgICBmc2VlayggZiwgMCwgU0VF
S19TRVQgKTsKLQotICAgICAgICAgICAgICBpZiAoIHNpemUgPiB1blNpemUgfHwgIXBCdWZmZXIg
KQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICB1blNpemVUb1JldHVybiA9
ICh1aW50MzJfdClzaXplOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCBmcmVhZCggcEJ1ZmZlciwg
c2l6ZSwgMSwgZiApID09IDEgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJuID0gKHVpbnQzMl90KXNpemU7Ci0gICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBmY2xvc2Uo
IGYgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdW5TaXplVG9SZXR1cm47Ci19Ci0KLWJv
b2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1
bnNpZ25lZCBjaGFyICpwRGF0YSwgdW5zaWduZWQgblNpemUpCi17Ci0gICAgICAgRklMRSAqZjsK
LSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKHN0ckZpbGVuYW1lLmNfc3Ry
KCksICJ3YiIpOwotI2Vsc2UKLSAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRG
OHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBlcnJub190IGVyciA9IF93Zm9w
ZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMIndiIiApOwotICAgICAgIGlmIChlcnIg
IT0gMCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGYgPSBOVUxMOwotICAgICAgIH0KLSNlbmRp
ZgotCi0gICAgICAgc2l6ZV90IHdyaXR0ZW4gPSAwOwotICAgICAgIGlmIChmICE9IE5VTEwpIHsK
LSAgICAgICAgICAgICAgd3JpdHRlbiA9IGZ3cml0ZShwRGF0YSwgc2l6ZW9mKHVuc2lnbmVkIGNo
YXIpLCBuU2l6ZSwgZik7Ci0gICAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICB9Ci0KLSAg
ICAgICByZXR1cm4gd3JpdHRlbiA9PSBuU2l6ZSA/IHRydWUgOiBmYWxzZTsKLX0KLQotc3RkOjpz
dHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSAp
Ci17Ci0gICAgICAgLy8gZG9pbmcgaXQgdGhpcyB3YXkgc2VlbXMgYmFja3dhcmRzLCBidXQgSSBk
b24ndAotICAgICAgIC8vIHNlZSBhbiBlYXN5IHdheSB0byBkbyB0aGlzIHdpdGggQy9DKysgc3R5
bGUgSU8KLSAgICAgICAvLyB0aGF0IGlzbid0IHdvcnNlLi4uCi0gICAgICAgaW50IHNpemU7Ci0g
ICAgICAgdW5zaWduZWQgY2hhciogYnVmID0gUGF0aF9SZWFkQmluYXJ5RmlsZSggc3RyRmlsZW5h
bWUsICZzaXplICk7Ci0gICAgICAgaWYgKCFidWYpCi0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LQotICAgICAgIC8vIGNvbnZlcnQgQ1JMRiAtPiBMRgotICAgICAgIHNpemVfdCBvdXRzaXplID0g
MTsKLSAgICAgICBmb3IgKGludCBpPTE7IGkgPCBzaXplOyBpKyspCi0gICAgICAgewotICAgICAg
ICAgICAgICBpZiAoYnVmW2ldID09ICdcbicgJiYgYnVmW2ktMV0gPT0gJ1xyJykgLy8gQ1JMRgot
ICAgICAgICAgICAgICAgICAgICAgYnVmW291dHNpemUtMV0gPSAnXG4nOyAvLyAtPkxGCi0gICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplKytdID0gYnVm
W2ldOyAvLyBqdXN0IGNvcHkKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyByZXQoKGNo
YXIgKilidWYsIG91dHNpemUpOwotICAgICAgIGRlbGV0ZVtdIGJ1ZjsKLSAgICAgICByZXR1cm4g
cmV0OwotfQotCi0KLWJvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIGNvbnN0IHN0ZDo6
c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCi17Ci0gICAgICAgRklM
RSAqZjsKLSNpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFt
ZS5jX3N0cigpLCAidyIgKTsKLSNlbHNlCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFt
ZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7Ci0gICAgICAgZXJybm9fdCBlcnIg
PSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3IiApOwotICAgICAgIGlm
ICggZXJyICE9IDAgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgZiA9IE5VTEw7Ci0gICAgICAg
fQotI2VuZGlmCi0gICAgICAgCi0gICAgICAgYm9vbCBvayA9IGZhbHNlOwotCi0gICAgICAgaWYg
KCBmICE9IE5VTEwgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgb2sgPSBmcHV0cyggcGNoRGF0
YSwgZikgPj0gMDsKLSAgICAgICAgICAgICAgZmNsb3NlKGYpOwotICAgICAgIH0KLQotICAgICAg
IHJldHVybiBvazsKLX0KLQotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYygg
Y29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICkKLXsK
LSAgICAgICBzdGQ6OnN0cmluZyBzdHJUbXBGaWxlbmFtZSA9IHN0ckZpbGVuYW1lICsgIi50bXAi
OwotCi0gICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHN0clRtcEZpbGVu
YW1lLCBwY2hEYXRhICkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAv
LyBQbGF0Zm9ybSBzcGVjaWZpYyBhdG9taWMgZmlsZSByZXBsYWNlbWVudAotI2lmIGRlZmluZWQo
IF9XSU4zMiApCi0gICAgICAgc3RkOjp3c3RyaW5nIHdzRmlsZW5hbWUgPSBVVEY4dG8xNiggc3Ry
RmlsZW5hbWUuY19zdHIoKSApOwotICAgICAgIHN0ZDo6d3N0cmluZyB3c1RtcEZpbGVuYW1lID0g
VVRGOHRvMTYoIHN0clRtcEZpbGVuYW1lLmNfc3RyKCkgKTsKLSAgICAgICBpZiAoICE6OlJlcGxh
Y2VGaWxlVyggd3NGaWxlbmFtZS5jX3N0cigpLCB3c1RtcEZpbGVuYW1lLmNfc3RyKCksIG51bGxw
dHIsIDAsIDAsIDAgKSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZG4n
dCBSZXBsYWNlRmlsZSwgdHJ5IGEgbm9uLWF0b21pYyB3cml0ZSBhcyBhIGZhbGxiYWNrCi0gICAg
ICAgICAgICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJGaWxlbmFtZSwg
cGNoRGF0YSApICkKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9
Ci0jZWxpZiBkZWZpbmVkKCBQT1NJWCApCi0gICAgICAgaWYgKCByZW5hbWUoIHN0clRtcEZpbGVu
YW1lLmNfc3RyKCksIHN0ckZpbGVuYW1lLmNfc3RyKCkgKSA9PSAtMSApCi0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSNlbHNlCi0jZXJyb3IgRG8gbm90IGtub3cgaG93IHRvIHdyaXRlIGF0
b21pYyBmaWxlCi0jZW5kaWYKLQotICAgICAgIHJldHVybiB0cnVlOwotfQotCi0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8vIgotI2Vsc2UKLSNk
ZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vIgotI2VuZGlmCi0KLS8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFR1cm5zIGEgcGF0aCB0byBhIGZpbGUgb24gZGlzayBpbnRvIGEgVVJMIChv
ciBqdXN0IHJldHVybnMgdGhlIHZhbHVlIGlmIGl0J3MgYWxyZWFkeSBhIFVSTCkKLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLXN0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCApCi17Ci0gICAg
ICAgaWYgKCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHA6Ly8iLCA3ICkK
LSAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRw
czovLyIsIDggKQotICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19z
dHIoKSwgImZpbGU6Ly8iLCA3ICkgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHNS
ZWxhdGl2ZVBhdGg7Ci0gICAgICAgfQotICAgICAgIGVsc2UKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHN0ZDo6c3RyaW5nIHNBYnNvbHV0ZSA9IFBhdGhfTWFrZUFic29sdXRlKCBzUmVsYXRpdmVQ
YXRoLCBzQmFzZVBhdGggKTsKLSAgICAgICAgICAgICAgaWYgKCBzQWJzb2x1dGUuZW1wdHkoKSAp
Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Fic29sdXRlOwotICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoIEZJTEVfVVJMX1BSRUZJWCApICsgc0Fic29sdXRlOwotICAgICAg
IH0KLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IFN0cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhl
IHBhdGguIEZvciBvdGhlciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5l
ZAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6
c3RyaW5nIFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCAp
Ci17Ci0gICAgICAgaWYgKCAhc3RybmljbXAoIHNGaWxlVXJsLmNfc3RyKCksIEZJTEVfVVJMX1BS
RUZJWCwgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIHJldHVybiBzRmlsZVVybC5jX3N0cigpICsgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKTsK
LSAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAgIHsKLSAgICAgICAgICAgICAgcmV0dXJuICIi
OwotICAgICAgIH0KLX0KLQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5
IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4KLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0cmluZyBHZXRV
c2VyRG9jdW1lbnRzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQotICAgICAgIFdDSEFS
IHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmICggIVNVQ0NFRURFRCggU0hHZXRGb2xk
ZXJQYXRoVyggTlVMTCwgQ1NJRExfTVlET0NVTUVOVFMgfCBDU0lETF9GTEFHX0NSRUFURSwgTlVM
TCwgMCwgcndjaFBhdGggKSApICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHJldHVybiAiIjsK
LSAgICAgICB9Ci0KLSAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRvIFVURi04IGFuZCBzdG9y
ZSBpbiB0aGUgb3V0cHV0Ci0gICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQYXRoID0gVVRGMTZ0bzgo
IHJ3Y2hQYXRoICk7Ci0KLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2VsaWYgZGVmaW5lZCgg
T1NYICkKLSAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgICAgICAgTlNBcnJheSAq
cGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyggTlNEb2N1bWVudERp
cmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7Ci0gICAgICAgICAgICAgIGlmICggW3Bh
dGhzIGNvdW50XSA9PSAwICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICByZXR1cm4gW1twYXRocyBvYmplY3RBdEluZGV4OjBdIFVURjhTdHJpbmddOwotICAgICAgIH0K
LSNlbGlmIGRlZmluZWQoIExJTlVYICkKLSAgICAgICAvLyBAdG9kbzogbm90IHNvbHZlZC9jaGFu
Z2VkIGFzIHBhcnQgb2YgT1NYIC0gc3RpbGwgbm90IHJlYWwgLSBqdXN0IHJlbW92ZWQgb2xkIGNs
YXNzIGJhc2VkIHN0ZWFtIGN1dCBhbmQgcGFzdGUKLSAgICAgICBjb25zdCBjaGFyICpwY2hIb21l
ID0gZ2V0ZW52KCAiSE9NRSIgKTsKLSAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCi0gICAg
ICAgewotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgfQotICAgICAgIHJldHVybiBw
Y2hIb21lOwotI2VuZGlmCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI5NTdjNjRkNzM3YThjMTE2MDRmYTU4NmE0MjJhYzA4MTIyY2E1NTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzIgKzAsMCBAQAotLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNs
dWRlIDxzdGRpbnQuaD4KLQotLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFt
ZSkgdG8gdGhlIGN1cnJlbnQgZXhlY3V0YWJsZSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVj
dXRhYmxlUGF0aCgpOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KCk7
Ci0KLS8qKiBTZXRzIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBS
ZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KLWJvb2wgUGF0aF9TZXRXb3Jr
aW5nRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiByZXR1cm5z
IHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJlZCBsaWIg
b3IgRExMICovCi1zdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7Ci0KLS8qKiBS
ZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KLSogSWYgc2xh
c2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVu
dCBwbGF0Zm9ybQotKiB3aWxsIGJlIHVzZWQuICovCi1zdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmls
ZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8q
KiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVs
YXRpdmUgcGF0aC4gKi8KLXN0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7Ci0KLS8qKiByZXR1cm5zIGp1c3Qg
dGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4g
Ci0qIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KLXN0ZDo6
c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChp
ZiBhbnkpLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGggKTsKLQotLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0
ZSAqLwotYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEg
YmFzZSBwYXRoICovCi1zdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hh
ciBzbGFzaCA9IDAgKTsKLQotLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3Ig
dGhlIGN1cnJlbnQgcGxhdGZvcm0uCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRp
dmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBiZSB1c2Vk
LiAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQ
YXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogUmV0dXJucyB0aGUgcGF0aCBzZXBhcmF0b3Ig
Zm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCi1jaGFyIFBhdGhfR2V0U2xhc2goKTsKLQotLyoq
IEphbXMgdHdvIHBhdGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8K
LXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7Ci1zdGQ6OnN0cmluZyBQYXRo
X0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vj
b25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOwotc3RkOjpz
dHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJp
bmcgJmZvdXJ0aCwgY2hhciBzbGFzaCA9IDAgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCi0g
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCi0gICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcgJiBzZWNvbmQsIAotICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAotICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKLSAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpZnRoLCAKLSAgICAgICBjaGFyIHNsYXNoID0gMCApOwotCi0KLS8qKiBSZW1vdmVzIHJlZHVu
ZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRo
IGlmIHRoZSAKLSogc3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3Rv
cmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMuCi0qIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRo
ZSBuYXRpdmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KLSogd2lsbCBi
ZSB1c2VkLiAqLwotc3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vLyoqIFJlbW92ZWQgdHJhaWxpbmcgc2xh
c2hlcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOwotCi0vKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCi1ib29s
IFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKLQotLyoqIHJl
dHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxl
ICovCi1ib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
LQotLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCi1ib29sIFBhdGhf
RXhpc3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7Ci0KLS8qKiBIZWxwZXIgZnVuY3Rp
b25zIHRvIGZpbmQgcGFyZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9mIHBhcmVu
dCBkaXJlY3RvcmllcyAqLwotc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVj
dXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKLXN0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJl
Y3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7Ci0KLS8qKiBQYXRo
IG9wZXJhdGlvbnMgdG8gcmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwotdW5zaWdu
ZWQgY2hhciAqIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSwgaW50ICpwU2l6ZSApOwotdWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMy
X3QgdW5TaXplICk7Ci1ib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSApOwot
c3RkOjpzdHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSApOwotYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7Ci1ib29sIFBhdGhfV3JpdGVT
dHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNv
bnN0IGNoYXIgKnBjaERhdGEgKTsKLQotLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBmb3IgcGF0
aHMsIG9yIGFuIGh0dHAgb3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92aWRlZCAq
Lwotc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNS
ZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7Ci0KLS8qKiBTdHJp
cHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIg
a2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KLXN0ZDo6c3RyaW5n
IFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApOwotCi0v
KiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMg
dG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4gKi8KLXN0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVu
dHNQYXRoKCk7Ci0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSAotICAgICAgICNkZWZpbmUgTUFY
X1VOSUNPREVfUEFUSCAzMjc2NwotI2VuZGlmCi0KLSNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSF9J
Tl9VVEY4Ci0gICAgICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1BWF9VTklD
T0RFX1BBVEggKiA0KQotI2VuZGlmCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNpZiBkZWZp
bmVkKFdJTjMyKQotI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCi0jZGVmaW5l
IFBST0dSQU1fRVhUICIuZXhlIgotI2lmZGVmIF9XSU42NAotI2RlZmluZSBQTEFUU1VCRElSICAg
ICAgICJ3aW42NCIKLSNlbHNlCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMyIgotI2Vu
ZGlmCi0jZWxpZiBkZWZpbmVkKE9TWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIu
ZHlsaWIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgotI2RlZmluZSBQUk9HUkFN
X0VYVCAiIgotI2VsaWYgZGVmaW5lZChMSU5VWCkKLSNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAg
ICAgICIuc28iCi0jZGVmaW5lIFBST0dSQU1fRVhUICIiCi0jaWYgZGVmaW5lZCggTElOVVgzMiAp
Ci0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgImxpbnV4MzIiCi0jZWxzZQotI2RlZmluZSBQTEFU
U1VCRElSICAgICAgICJsaW51eDY0IgotI2VuZGlmCi0jZWxzZQotI3dhcm5pbmcgIlVua25vd24g
cGxhdGZvcm0gZm9yIFBMQVRTVUJESVIiCi0jZGVmaW5lIFBMQVRTVUJESVIgICAgICAgInVua25v
d25fcGxhdGZvcm0iCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhlZWMyNjA0NTljNTFlZWM1NjlhMmNhNWIxMDI5YTU5
YzliYWNkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmln
aHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNpbmNsdWRlICJzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoX1dJTjMy
KQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChQT1NJWCkKLSNp
bmNsdWRlIDxkbGZjbi5oPgotI2VuZGlmCi0KLVNoYXJlZExpYkhhbmRsZSBTaGFyZWRMaWJfTG9h
ZCggY29uc3QgY2hhciAqcGNoUGF0aCApCi17Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAgICAg
IHJldHVybiAoU2hhcmVkTGliSGFuZGxlKUxvYWRMaWJyYXJ5RXgoIHBjaFBhdGgsIE5VTEwsIExP
QURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIICk7Ci0jZWxpZiBkZWZpbmVkKFBPU0lYKQotICAg
ICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKWRsb3BlbihwY2hQYXRoLCBSVExEX0xPQ0FMfFJU
TERfTk9XKTsKLSNlbmRpZgotfQotCi12b2lkICpTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIFNoYXJl
ZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIgKnBjaEZ1bmN0aW9uTmFtZSkKLXsKLSNpZiBkZWZp
bmVkKCBfV0lOMzIpCi0gICAgICAgcmV0dXJuICh2b2lkKilHZXRQcm9jQWRkcmVzcyggKEhNT0RV
TEUpbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0gICAgICAg
cmV0dXJuIGRsc3ltKCBsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOwotI2VuZGlmCi19Ci0KLQotdm9p
ZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICkKLXsKLSAgICAgICBpZiAo
ICFsaWIgKQotICAgICAgICAgICAgICByZXR1cm47Ci0jaWYgZGVmaW5lZCggX1dJTjMyKQotICAg
ICAgIEZyZWVMaWJyYXJ5KCAoSE1PRFVMRSlsaWIgKTsKLSNlbGlmIGRlZmluZWQoUE9TSVgpCi0g
ICAgICAgZGxjbG9zZSggbGliICk7Ci0jZW5kaWYKLX0KLQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJs
aWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNjNkYmZhYjJiZTgzNjJmODNi
YzIwOTNjMjQyMTRiMjQ3ZmJhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLy89PT09PT09
PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCi0jcHJhZ21hIG9u
Y2UKLQotdHlwZWRlZiB2b2lkICpTaGFyZWRMaWJIYW5kbGU7Ci0KLVNoYXJlZExpYkhhbmRsZSBT
aGFyZWRMaWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApOwotdm9pZCAqU2hhcmVkTGliX0dl
dEZ1bmN0aW9uKCBTaGFyZWRMaWJIYW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5h
bWUpOwotdm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICk7Ci0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29s
c19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0
b29sc19wdWJsaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjkzNzBiMmNk
MWI4YzVhYTRmZDcxMDI5NjJhOWQ0YWJlOGY4ZGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vc3RydG9vbHNfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzNyArMCwwIEBACi0v
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNp
bmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBQdXJwb3NlOgotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYm9vbCBTdHJpbmdIYXNQcmVm
aXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJl
Zml4ICkKLXsKLSAgICAgICByZXR1cm4gMCA9PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBz
UHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQotYm9vbCBTdHJpbmdIYXNQ
cmVmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1ByZWZpeCApCi17Ci0gICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0
cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKLX0KLQot
Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJp
bmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgp
OwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCi0gICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5n
LnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKLQotICAgICAgIHJl
dHVybiAwID09IHN0cmljbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigp
ICk7Ci19Ci0KLWJvb2wgU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKLXsKLSAgICAgICBz
aXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7Ci0gICAgICAgc2l6ZV90IGNTdWZmaXhM
ZW4gPSBzU3VmZml4Lmxlbmd0aCgpOwotCi0gICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxl
biApCi0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgIHN0ZDo6c3RyaW5nIHNT
dHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZm
aXhMZW4gKTsKLQotICAgICAgIHJldHVybiAwID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19z
dHIoKSwgc1N1ZmZpeC5jX3N0cigpLGNTdWZmaXhMZW4gKTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5n
IFVURjE2dG84KGNvbnN0IHdjaGFyX3QgKiBpbikKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBvdXQ7
Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAm
JiAqaW4gIT0gMDsgKytpbiApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoKmluID49IDB4
ZDgwMCAmJiAqaW4gPD0gMHhkYmZmKQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0g
KCgqaW4gLSAweGQ4MDApIDw8IDEwKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYg
KmluIDw9IDB4ZGZmZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0g
KmluIC0gMHhkYzAwOwotICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvZGVwb2ludCA9ICppbjsKLQotICAgICAgICAgICAgICAgICAgICAgaWYg
KGNvZGVwb2ludCA8PSAweDdmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBl
bmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHg3ZmYpCi0gICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFy
PigweGMwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDFmKSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9p
bnQgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNo
YXI+KDB4ZTAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDBmKSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29k
ZXBvaW50ID4+IDYpICYgMHgzZikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
YXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsK
LSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5k
KDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZjAgfCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+IDEyKSAmIDB4M2YpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChj
b2RlcG9pbnQgPj4gNikgJiAweDNmKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkp
OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50
ID0gMDsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLSAgICAgICByZXR1cm4gb3V0OwotfQot
Ci1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29uc3QgY2hhciAqIGluKQotewotICAgICAgIHN0ZDo6
d3N0cmluZyBvdXQ7Ci0gICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7Ci0gICAgICAg
aW50IGZvbGxvd2luZyA9IDA7Ci0gICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiAp
Ci0gICAgICAgewotICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKmluOwotICAgICAg
ICAgICAgICBpZiAoY2ggPD0gMHg3ZikKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgY29kZXBvaW50ID0gY2g7Ci0gICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAw
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQot
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVw
b2ludCA9IChjb2RlcG9pbnQgPDwgNikgfCAoY2ggJiAweDNmKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLWZvbGxvd2luZzsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGRmKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MWY7Ci0gICAgICAg
ICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAxOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UgaWYgKGNoIDw9IDB4ZWYpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgwZjsKLSAgICAgICAgICAgICAgICAgICAgIGZvbGxv
d2luZyA9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7Ci0gICAg
ICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAzOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIGlmIChmb2xsb3dpbmcgPT0gMCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNvZGVwb2ludCA+IDB4ZmZmZikKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdj
aGFyX3Q+KDB4ZDgwMCArIChjb2RlcG9pbnQgPj4gMTApKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29k
ZXBvaW50ICYgMHgwM2ZmKSkpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8d2NoYXJfdD4oY29kZXBvaW50KSk7Ci0gICAgICAgICAgICAgICAgICAgICBj
b2RlcG9pbnQgPSAwOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotICAgICAgIHJldHVybiBv
dXQ7Ci19Ci0KLQotdm9pZCBzdHJjcHlfc2FmZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5C
dWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApCi17Ci0gICAgICAgcGNoQnVm
ZmVyWyB1bkJ1ZmZlclNpemVCeXRlcyAtIDEgXSA9ICdcMCc7Ci0gICAgICAgc3RybmNweSggcGNo
QnVmZmVyLCBwY2hTb3VyY2UsIHVuQnVmZmVyU2l6ZUJ5dGVzIC0gMSApOwotfQotCi0KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBjb252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJp
bmcgJiBzU3RyaW5nICkKLXsKLSAgICAgICBzdGQ6OnN0cmluZyBzT3V0OwotICAgICAgIHNPdXQu
cmVzZXJ2ZSggc1N0cmluZy5zaXplKCkgKyAxICk7Ci0gICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6
Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJpbmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBp
KysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBw
ZXIoICppICkgKTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gc091dDsKLX0KLQotCi0vLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQot
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1N0cmluZyApCi17Ci0gICAgICAgc3RkOjpzdHJpbmcgc091dDsKLSAgICAgICBzT3V0
LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOwotICAgICAgIGZvciggc3RkOjpzdHJpbmc6
OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsg
aSsrICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xv
d2VyKCAqaSApICk7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJuIHNPdXQ7Ci19Ci0KLQotdWlu
dDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAq
cGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApCi17Ci0gICAgICAgdWludDMyX3QgdW5M
ZW4gPSAodWludDMyX3Qpc1ZhbHVlLmxlbmd0aCgpICsgMTsKLSAgICAgICBpZiggIXBjaEJ1ZmZl
ciB8fCAhdW5CdWZmZXJMZW4gKQotICAgICAgICAgICAgICByZXR1cm4gdW5MZW47Ci0KLSAgICAg
ICBpZiggdW5CdWZmZXJMZW4gPCB1bkxlbiApCi0gICAgICAgewotICAgICAgICAgICAgICBwY2hC
dWZmZXJbMF0gPSAnXDAnOwotICAgICAgIH0KLSAgICAgICBlbHNlCi0gICAgICAgewotICAgICAg
ICAgICAgICBtZW1jcHkoIHBjaEJ1ZmZlciwgc1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7Ci0gICAg
ICAgfQotCi0gICAgICAgcmV0dXJuIHVuTGVuOwotfQotCi12b2lkIEJ1ZmZlclRvU3RkU3RyaW5n
KCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVu
QnVmZmVyTGVuICkKLXsKLSAgICAgICBzRGVzdC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOwot
ICAgICAgIG1lbWNweSggY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hC
dWZmZXIsIHVuQnVmZmVyTGVuICk7Ci0gICAgICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3Qu
Y19zdHIoKSApWyB1bkJ1ZmZlckxlbiBdID0gJ1wwJzsKLX0KLQotLyoqIFJldHVybnMgYSBzdGQ6
OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1
aW50NjRfdCB1bFZhbHVlICkKLXsKLSAgICAgICBjaGFyIGJ1ZlsgMjIgXTsKLSNpZiBkZWZpbmVk
KCBfV0lOMzIgKQotICAgICAgIHNwcmludGZfcyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKLSNl
bHNlCi0gICAgc25wcmludGYoIGJ1Ziwgc2l6ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25n
IHVuc2lnbmVkIGludCApIHVsVmFsdWUgKTsKLSNlbmRpZgotICAgICAgIHJldHVybiBidWY7Ci19
Ci0KLQotLyoqIHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCi11aW50NjRfdCBT
dHJpbmdUb1VpbnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKQotewotICAgICAgIHJl
dHVybiBzdHJ0b3VsbCggc1ZhbHVlLmNfc3RyKCksIE5VTEwsIDAgKTsKLX0KLQotLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJp
YyB2YWx1ZSB0byBhIGhleCBkaWdpdCwgdmFsdWUgc2hvdWxkIGJlIDAtMTUuCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1jaGFyIGNJbnRUb0hleERpZ2l0KCBpbnQgblZhbHVlICkKLXsKLSAgICAg
ICAvL0Fzc2VydCggblZhbHVlID49IDAgJiYgblZhbHVlIDw9IDE1ICk7Ci0gICAgICAgcmV0dXJu
ICIwMTIzNDU2Nzg5QUJDREVGIlsgblZhbHVlICYgMTUgXTsKLX0KLQotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFs
dWUgdG8gbnVtZXJpYywgcmV0dXJuIC0xIGlmIHRoZSBjaGFyCi0vLyAgICAgICAgICBpcyBub3Qg
YSB2YWxpZCBoZXggZGlnaXQuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pbnQgaUhleENoYXJU
b0ludCggY2hhciBjVmFsdWUgKQotewotICAgICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOwot
ICAgICAgIGlmICggKHVpbnQzMl90KSggaVZhbHVlIC0gJzAnICkgPCAxMCApCi0gICAgICAgICAg
ICAgIHJldHVybiBpVmFsdWUgLSAnMCc7Ci0KLSAgICAgICBpVmFsdWUgfD0gMHgyMDsKLSAgICAg
ICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAtICdhJyApIDwgNiApCi0gICAgICAgICAgICAgIHJl
dHVybiBpVmFsdWUgLSAnYScgKyAxMDsKLQotICAgICAgIHJldHVybiAtMTsKLX0KLQotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2Yg
ZW5jb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0IFJGQyBtYW5uZXIsIG9yCi0vLyAgICAgICAgICB3
aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtlIEhUTUwgZm9ybSBlbmNvZGluZy4KLS8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9VUkxFbmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwg
aW50IG5EZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29s
IGJVc2VQbHVzRm9yU3BhY2UgKQotewotICAgICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMq
blNvdXJjZUxlbiwgIlRhcmdldCBidWZmZXIgZm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBz
b3VyY2UgbGVuZ3RoLCBwbHVzIG9uZSBmb3IgdGVybWluYXRpbmcgbnVsbFxuIiApOwotICAgICAg
IAotICAgICAgIGludCBpRGVzdFBvcyA9IDA7Ci0gICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5T
b3VyY2VMZW47ICsraSApCi0gICAgICAgewotICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdl
IG5lZWQgMyBhZGRpdGlvbmFsIGNoYXJzCi0gICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykg
PiBuRGVzdExlbiAgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hE
ZXN0WzBdID0gJ1wwJzsKLS8vICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwg
IlRhcmdldCBidWZmZXIgdG9vIHNob3J0XG4iICk7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEt
eiwgQS1aLCAwLTksIHBlcmlvZCwgdW5kZXJzY29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91
Z2ggdW5lc2NhcGVkLgotICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMg
YWxsb3dlZCBieSBib3RoIHRoZSBvcmlnaW5hbCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMg
Mzk4Ni4KLSAgICAgICAgICAgICAgLy8gQ3VycmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0
IHRoYXQgaXMgZm9yYmlkZGVuIHVuZGVyIG9yaWdpbmFsIFJGQyAxNzM4LgotICAgICAgICAgICAg
ICBpZiAoICEoIHBjaFNvdXJjZVtpXSA+PSAnYScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYm
ICEoIHBjaFNvdXJjZVtpXSA+PSAnQScgJiYgcGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNo
U291cmNlW2ldID49ICcwJyAmJiBwY2hTb3VyY2VbaV0gPD0gJzknICkKLSAgICAgICAgICAgICAg
ICAgICAgICAmJiBwY2hTb3VyY2VbaV0gIT0gJy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYg
cGNoU291cmNlW2ldICE9ICcuJyAgICAgICAKLSAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291
cmNlW2ldID09ICcgJyApCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcrJzsKLSAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ld
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlID09IDAgKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
ciBjSGV4RGlnaXQxID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSAlIDE2ICk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAvPSAxNjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1
ZSApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9z
KytdID0gY0hleERpZ2l0MjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNo
RGVzdFtpRGVzdFBvcysrXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtp
RGVzdFBvcysrXSA9IHBjaFNvdXJjZVtpXTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQot
ICAgICAgIGlmKCAoaURlc3RQb3MrMSkgPiBuRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAg
ICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNl
LCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hvcnQgdG8gdGVybWluYXRlXG4iICk7Ci0gICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICB9Ci0KLSAgICAgICAvLyBOdWxsIHRlcm1pbmF0ZQotICAgICAg
IHBjaERlc3RbaURlc3RQb3MrK10gPSAwOwotfQotCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS8vIFB1cnBvc2U6IEludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4g
dGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgotLy8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVk
IHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2RpbmcuCi0vLwotLy8gICAgICAgICAgICAgICAgICAg
ICBSZXR1cm5zIHRoZSBhbW91bnQgb2Ygc3BhY2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4K
LS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNpemVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFy
ICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29k
ZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkK
LXsKLSAgICAgICBpZiAoIG5EZWNvZGVEZXN0TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVl
ZHMgYSBkZXN0IGJ1ZmZlciBhdCBsZWFzdCBhcyBsYXJnZSBhcyB0aGUgc291cmNlIiApOwotICAg
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICB9Ci0KLSAgICAgICBpbnQgaURlc3RQb3MgPSAw
OwotICAgICAgIGZvciggaW50IGk9MDsgaSA8IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQotICAg
ICAgIHsKLSAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRT
b3VyY2VbaV0gPT0gJysnICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyAnOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGVsc2UgaWYgKCBwY2hFbmNvZGVkU291cmNlW2ldID09ICclJyApCi0gICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVu
Y29kZWQgdmFsdWUsIGxvb2sgYWhlYWQgZm9yIHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1l
cmljLCBhbmQgdXNlIHRoYXQKLQotICAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBz
dXJlIHdlIGhhdmUgMiBtb3JlIGNoYXJzCi0gICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBu
RW5jb2RlZFNvdXJjZUxlbiAtIDIgKQotICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsx
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNv
ZGVkU291cmNlW2krMl07Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRo
ZSBjaGFycyBpbnRvIGEgaGV4IHZhbHVlLCBpZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2Un
bGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0
aGUgZm9sbG93aW5nIHR3byBjaGFycyBkaXJlY3QgaW50byB0aGUgc3RyaW5nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBo
YXBwZW4sIHdobyBrbm93cyB3aGF0IGJhZCBjbGllbnRzCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gbWF5IGRvIHdpdGggZW5jb2RpbmcuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBiVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
aVZhbHVlID0gaUhleENoYXJUb0ludCggY0hleERpZ2l0MSApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICggaVZhbHVlICE9IC0xICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRv
SW50KCBjSGV4RGlnaXQyICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICggaVZhbHVlMiAhPSAtMSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFs
dWUyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2Rl
RGVzdFsgaURlc3RQb3MrKyBdID0gKGNoYXIpaVZhbHVlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYlZhbGlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICggIWJWYWxpZCApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVE
ZXN0WyBpRGVzdFBvcysrIF0gPSAnJSc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNI
ZXhEaWdpdDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGFoZWFkCi0gICAgICAgICAg
ICAgICAgICAgICBpICs9IDI7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVz
dFBvcysrIF0gPSBwY2hFbmNvZGVkU291cmNlW2ldOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
fQotCi0gICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5h
dGUsIHNpbmNlIHRoaXMgY2FuIGJlIHVzZWQgb24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbwotICAg
ICAgIC8vIGdvIGFoZWFkIGFuZCBkbyBpdCBhcyB0aGlzIGNhbiBhdm9pZCBidWdzLgotICAgICAg
IGlmICggaURlc3RQb3MgPCBuRGVjb2RlRGVzdExlbiApCi0gICAgICAgewotICAgICAgICAgICAg
ICBwY2hEZWNvZGVEZXN0W2lEZXN0UG9zXSA9IDA7Ci0gICAgICAgfQotCi0gICAgICAgcmV0dXJu
IChzaXplX3QpaURlc3RQb3M7Ci19Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBv
c2U6IEVuY29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBm
b3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNp
b24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNl
cyArIGZvciBzcGFjZSBhcyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9y
bSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8v
ICAgICAgICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3Vy
Y2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi12b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNv
bnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKQotewotICAgICAgIHJldHVybiBW
X1VSTEVuY29kZUludGVybmFsKCBwY2hEZXN0LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNl
TGVuLCB0cnVlICk7Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
RGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1h
dCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBv
ZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsg
Zm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVu
Y29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwotLy8gICAg
ICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBi
dWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAgICAgICAg
ICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29k
ZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURl
c3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxl
biApCi17Ci0gICAgICAgcmV0dXJuIFZfVVJMRGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3Qs
IG5EZWNvZGVEZXN0TGVuLCBwY2hFbmNvZGVkU291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1
ZSApOwotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZfU3RyaXBFeHRlbnNpb24o
IHN0ZDo6c3RyaW5nICZpbiApCi17Ci0gICAgICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0
J3MgZm9sbG93ZWQgYnkgYSBkb3Qgb3IgYSBzbGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKLSAg
ICAgICAvLyBkaXJlY3Rvcnkgc3BlY2lmaWVyIGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCi0g
ICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOwotICAg
ICAgIGlmICggdGVzdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCi0gICAgICAgewotICAgICAgICAg
ICAgICAvLyBUaGlzIGhhbmRsZXMgdGhpbmdzIGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWls
LmNvbVxhYmNcZGVmXGdlaCIKLSAgICAgICAgICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNl
IHdpbmQgdXAgd2l0aCAiIiBhbmQgImM6XG15QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgotICAgICAg
ICAgICAgICBpZiAoIGluLnJmaW5kKCAnXFwnICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8
IHRlc3QgKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUo
IHRlc3QgKTsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjNlNTRhMjhjNzM0Yjc3ZjkyZjc3ODM0NmEz
YTZhODVjNjRmMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0vLz09PT09PT09PSBDb3B5cmlnaHQg
VmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSA8c3RyaW5nPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgot
Ci0vKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBwcmVmaXggKi8KLWJvb2wg
U3RyaW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc1ByZWZpeCApOwotYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0aXZlKCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCAp
OwotCi0vKiogcmV0dXJucyBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgc3VmZml4ICovCi1ib29sIFN0
cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzU3VmZml4ICk7Ci1ib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApOwotCi0v
KiogY29udmVydHMgYSBVVEYtMTYgc3RyaW5nIHRvIGEgVVRGLTggc3RyaW5nICovCi1zdGQ6OnN0
cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pOwotCi0vKiogY29udmVydHMgYSBVVEYt
OCBzdHJpbmcgdG8gYSBVVEYtMTYgc3RyaW5nICovCi1zdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29u
c3QgY2hhciAqIGluKTsKLSNkZWZpbmUgVXRmMTZGcm9tVXRmOCBVVEY4dG8xNgotCi0vKiogc2Fm
ZWx5IGNvcHkgYSBzdHJpbmcgaW50byBhIGJ1ZmZlciAqLwotdm9pZCBzdHJjcHlfc2FmZSggY2hh
ciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSApOwotdGVtcGxhdGU8IHNpemVfdCBidWZmZXJTaXplID4KLXZvaWQgc3RyY3B5X3NhZmUo
IGNoYXIgKCYgYnVmZmVyKSBbIGJ1ZmZlclNpemUgXSwgY29uc3QgY2hhciAqcGNoU291cmNlICkg
Ci17Ci0gICAgICAgc3RyY3B5X3NhZmUoIGJ1ZmZlciwgYnVmZmVyU2l6ZSwgcGNoU291cmNlICk7
Ci19Ci0KLQotLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UgKi8KLXN0ZDo6c3Ry
aW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApOwotCi0vKiog
Y29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZSAqLwotc3RkOjpzdHJpbmcgU3RyaW5nVG9M
b3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7Ci0KLS8vIHdlIHN0cmljbXAgKGZy
b20gV0lOKSBidXQgaXQgaXNuJ3QgUE9TSVggLSBPU1gvTElOVVggaGF2ZSBzdHJjYXNlY21wIHNv
IGp1c3QgaW5saW5lIGJyaWRnZSB0byBpdAotI2lmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQo
IExJTlVYICkKLSNpbmNsdWRlIDxzdHJpbmdzLmg+Ci1pbmxpbmUgaW50IHN0cmljbXAoY29uc3Qg
Y2hhciAqcFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyKSB7IHJldHVybiBzdHJjYXNlY21wKHBTdHIx
LHBTdHIyKTsgfQotI2RlZmluZSBfc3RyaWNtcCBzdHJpY21wCi1pbmxpbmUgaW50IHN0cm5pY21w
KCBjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIsIHNpemVfdCB1bkJ1ZmZlckxl
biApIHsgcmV0dXJuIHN0cm5jYXNlY21wKCBwU3RyMSxwU3RyMiwgdW5CdWZmZXJMZW4gKTsgfQot
I2RlZmluZSBfc3RybmljbXAgc3RybmljbXAKLQotI2RlZmluZSBfdnNucHJpbnRmX3MgdnNucHJp
bnRmCi0KLSNkZWZpbmUgX1RSVU5DQVRFICgoc2l6ZV90KS0xKQotCi0jZW5kaWYKLQotI2lmIGRl
ZmluZWQoIE9TWCApCi0vLyBiZWhhdmlvcnMgZW5zdXJlIE5VTEwtdGVybWluYXRpb24gYXQgbGVh
c3QgYXMgd2VsbCBhcyBfVFJVTkNBVEUgZG9lcywgYnV0Ci0vLyB3Y3NuY3B5X3Mvc3RybmNweV9z
IGNhbiBub24tTlVMTC10ZXJtaW5hdGUsIHdjc2xjcHkvc3RybGNweSBjYW4gbm90LgotaW5saW5l
IGVycm5vX3Qgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1l
bnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBy
ZXR1cm4gd2NzbGNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMpOwotfQot
Ci1pbmxpbmUgZXJybm9fdCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9m
RWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQotewotICAgICAg
IHJldHVybiBzdHJsY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci19
Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZCggTElOVVggKQotLy8gdGhpcyBpbXBsZW1lbnRhdGlv
biBkb2VzIG5vdCByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGRlc3RpbmF0aW9uIHdhcyAKLS8v
IHRydW5jYXRlZCwgYnV0IHRoYXQgaXMgc3RyYWlnaHRmb3J3YXJkIHRvIGZpeCBpZiBhbnlib2R5
IGFjdHVhbGx5IG5lZWRzIHRoZQotLy8gcmV0dXJuIGNvZGUuIAotI2luY2x1ZGUgInN0cmluZy5o
IgotaW5saW5lIHZvaWQgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAg
ICAgICB3Y3NuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAg
ICAgc3RyRGVzdFtudW1iZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotaW5saW5lIHZvaWQg
c3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBjb25zdCBj
aGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKLXsKLSAgICAgICBzdHJuY3B5KHN0ckRlc3Qs
IHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Ci0gICAgICAgc3RyRGVzdFtudW1iZXJPZkVs
ZW1lbnRzLTFdID0gJ1wwJzsKLX0KLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKCBfV0lOMzIgKSAm
JiBfTVNDX1ZFUiA8IDE4MDAKLWlubGluZSB1aW50NjRfdCBzdHJ0b3VsbChjb25zdCBjaGFyICpz
dHIsIGNoYXIgKiplbmRwdHIsIGludCBiYXNlKSB7IHJldHVybiBfc3RydG91aTY0KCBzdHIsIGVu
ZHB0ciwgYmFzZSApOyB9Ci0jZW5kaWYKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEgc3RkOjpzdHJp
bmcgaW50byBhIGJ1ZmZlciBhcyB3b3VsZCBiZSBwcm92aWRlZCBpbiBhbiBBUEkgKi8KLXVpbnQz
Ml90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUsIGNoYXIgKnBj
aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyogSGFuZGxlcyBjb3B5aW5nIGEg
YnVmZmVyIGludG8gYW4gc3RkOjpzdHJpbmcgYW5kIGF1dG8gYWRkcyBudWxsIHRlcm1pbmF0b3Ig
Ki8KLXZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNvbnN0IGNo
YXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKLQotLyoqIFJldHVybnMgYSBz
dGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KLXN0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5n
KCB1aW50NjRfdCB1bFZhbHVlICk7Ci0KLS8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJvbSBhIHN0
cmluZyAqLwotdWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Zh
bHVlICk7Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IEVuY29kZXMgYSBz
dHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMx
NzM4IHNlY3Rpb24gMi4yLiAgCi0vLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwg
aXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBh
cyBpcwotLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVz
cGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgotLy8KLS8vICAgICAgICAgIERlc3Qg
YnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1
YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIFZf
VVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaFNv
dXJjZSwgaW50IG5Tb3VyY2VMZW4gKTsKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVy
cG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5n
IGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKLS8vICAgICAgICAgIFRoaXMgdmVy
c2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1
c2VzICsgZm9yIHNwYWNlIGFzIGlzCi0vLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBm
b3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCi0vLwot
Ly8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNv
dXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KLS8vICAgICAgICAgICAg
ICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIg
KGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgotLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRl
Y29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNv
dXJjZUxlbiApOwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBzdHJpcCBl
eHRlbnNpb24gZnJvbSBhIHBhdGgKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgVl9TdHJp
cEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICk7Ci0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGYzMDQyNGE5ZmYzNjFjODM2
ZjlhNGMwOGNmYTY4NDZhYWQzN2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQxMSArMCwwIEBACi0vLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KLQotI2lu
Y2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgotI2luY2x1ZGUgImpzb24vanNvbi5oIgot
I2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJs
aWMuaCIKLSNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKLSNpbmNsdWRlICJkaXJ0b29sc19w
dWJsaWMuaCIKLQotI2lmIGRlZmluZWQoIFdJTjMyICkKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0j
aW5jbHVkZSA8c2hsb2JqLmg+Ci0KLSN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCi0jZWxp
ZiBkZWZpbmVkIE9TWAotI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2luY2x1
ZGUgPEFwcEtpdC9BcHBLaXQuaD4KLSNlbGlmIGRlZmluZWQoTElOVVgpCi0jaW5jbHVkZSA8ZGxm
Y24uaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2VuZGlmCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+
Ci0KLSNpZm5kZWYgVlJMb2cKLSAgICAgICAjaWYgZGVmaW5lZCggX19NSU5HVzMyX18gKQotICAg
ICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgYXJncykKLSAgICAgICAjZWxpZiBkZWZpbmVkKCBXSU4zMiApCi0gICAgICAgICAgICAg
ICNkZWZpbmUgVlJMb2coZm10LCAuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgZm10
LCBfX1ZBX0FSR1NfXykKLSAgICAgICAjZWxzZQotICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9n
KGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKLSAgICAgICAjZW5k
aWYKLSNlbmRpZgotCi0vKiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBz
eXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBjb25maWcgZGF0YSBpbiAqLwotc3RhdGljIHN0
ZDo6c3RyaW5nIEdldEFwcFNldHRpbmdzUGF0aCgpCi17Ci0jaWYgZGVmaW5lZCggV0lOMzIgKQot
ICAgICAgIFdDSEFSIHJ3Y2hQYXRoW01BWF9QQVRIXTsKLQotICAgICAgIGlmKCAhU1VDQ0VFREVE
KCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9MT0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxB
R19DUkVBVEUsIE5VTEwsIDAsIHJ3Y2hQYXRoICkgKSApCi0gICAgICAgewotICAgICAgICAgICAg
ICByZXR1cm4gIiI7Ci0gICAgICAgfQotCi0gICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBV
VEYtOCBhbmQgc3RvcmUgaW4gdGhlIG91dHB1dAotICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0
aCA9IFVURjE2dG84KCByd2NoUGF0aCApOwotCi0gICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKLSNl
bGlmIGRlZmluZWQoIE9TWCApCi0gICAgICAgc3RkOjpzdHJpbmcgc1NldHRpbmdzRGlyOwotICAg
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgICAvLyBTZWFyY2ggZm9yIHRoZSBw
YXRoCi0gICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0
b3JpZXNJbkRvbWFpbnMoIE5TQXBwbGljYXRpb25TdXBwb3J0RGlyZWN0b3J5LCBOU1VzZXJEb21h
aW5NYXNrLCBZRVMgKTsKLSAgICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIE5TU3RyaW5nICpyZXNvbHZl
ZFBhdGggPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTsKLSAgICAgICAgICAgICAgcmVzb2x2ZWRQ
YXRoID0gW3Jlc29sdmVkUGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6IEAiT3Bl
blZSIl07Ci0gICAgICAgICAgICAgIAotICAgICAgICAgICAgICBpZiAoICFbW05TRmlsZU1hbmFn
ZXIgbmV3XSBjcmVhdGVEaXJlY3RvcnlBdFBhdGg6IHJlc29sdmVkUGF0aCB3aXRoSW50ZXJtZWRp
YXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF0gKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgIHNTZXR0aW5nc0Rpci5hc3NpZ24oIFtyZXNv
bHZlZFBhdGggVVRGOFN0cmluZ10gKTsKLSAgICAgICB9Ci0gICAgICAgcmV0dXJuIHNTZXR0aW5n
c0RpcjsKLSNlbGlmIGRlZmluZWQoIExJTlVYICkKLQotICAgICAgIC8vIEFzIGRlZmluZWQgYnkg
WERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb24gCi0gICAgICAgLy8gaHR0cHM6Ly9zcGVj
aWZpY2F0aW9ucy5mcmVlZGVza3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRl
c3QuaHRtbAotCi0gICAgICAgY29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVudigiWERHX0NPTkZJ
R19IT01FIik7Ci0gICAgICAgaWYgKCAoIHBjaEhvbWUgIT0gTlVMTCkgJiYgKCBwY2hIb21lWzBd
ICE9ICdcMCcgKSApCi0gICAgICAgewotICAgICAgICAgICAgICByZXR1cm4gcGNoSG9tZTsKLSAg
ICAgICB9Ci0KLSAgICAgICAvLwotICAgICAgIC8vIFhER19DT05GSUdfSE9NRSBpcyBub3QgZGVm
aW5lZCwgdXNlIH4vLmNvbmZpZyBpbnN0ZWFkCi0gICAgICAgLy8gCi0gICAgICAgcGNoSG9tZSA9
IGdldGVudiggIkhPTUUiICk7Ci0gICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQotICAgICAg
IHsKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIH0KLQotICAgICAgIHN0ZDo6c3Ry
aW5nIHNVc2VyUGF0aCggcGNoSG9tZSApOwotICAgICAgIHNVc2VyUGF0aCA9IFBhdGhfSm9pbigg
c1VzZXJQYXRoLCAiLmNvbmZpZyIgKTsKLSAgICAgICByZXR1cm4gc1VzZXJQYXRoOwotI2Vsc2UK
LSAgICAgICAjd2FybmluZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCi0jZW5kaWYKLX0KLQotCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnN0cnVjdG9yCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUNWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJs
aWMoKQotewotCi19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29tcHV0
ZXMgdGhlIHJlZ2lzdHJ5IGZpbGVuYW1lCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3Ry
aW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgoKQotewotICAg
ICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoID0gR2V0QXBwU2V0dGluZ3NQYXRoKCk7Ci0gICAg
ICAgaWYoIHNDb25maWdQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0K
LSNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBMSU5VWCApCi0gICAgICAgc0NvbmZp
Z1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRoLCAib3BlbnZyIiApOwotI2VsaWYgZGVmaW5l
ZCAoIE9TWCApIAotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwg
Ii5vcGVudnIiICk7Ci0jZWxzZQotICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9y
bSIKLSNlbmRpZgotICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzQ29uZmln
UGF0aCApOwotICAgICAgIHJldHVybiBzQ29uZmlnUGF0aDsKLX0KLQotCi0KLS8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6Ci0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdGQ6OnN0
cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCkK
LXsKLSAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKLSAg
ICAgICBpZiAoIHNQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSNp
ZiBkZWZpbmVkKCBfV0lOMzIgKQotICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9w
ZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbGlmIGRlZmluZWQgKCBQT1NJWCApIAotICAgICAgIHNQ
YXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIgKTsKLSNlbHNlCi0g
ICAgICAgI2Vycm9yICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKLSNlbmRpZgotICAgICAgIHNQYXRo
ID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOwotICAgICAgIHJldHVybiBzUGF0aDsKLX0KLQot
Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFB1cnBvc2U6IENvbnZlcnRzIEpTT04gdG8gYSBo
aXN0b3J5IGFycmF5Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0YXRpYyB2b2lkIFBhcnNlU3Ry
aW5nTGlzdEZyb21Kc29uKCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiAqcHZlY0hpc3Rvcnks
IGNvbnN0IEpzb246OlZhbHVlICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlOYW1lICkKLXsK
LSAgICAgICBpZiggIXJvb3QuaXNNZW1iZXIoIHBjaEFycmF5TmFtZSApICkKLSAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgY29uc3QgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290
WyBwY2hBcnJheU5hbWUgXTsKLSAgICAgICBpZiggIWFycmF5Tm9kZSApCi0gICAgICAgewotICAg
ICAgICAgICAgICBWUkxvZyggIlZSIFBhdGggUmVnaXN0cnkgbm9kZSAlcyBpcyBub3QgYW4gYXJy
YXlcbiIsIHBjaEFycmF5TmFtZSApOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgfQot
Ci0gICAgICAgcHZlY0hpc3RvcnktPmNsZWFyKCk7Ci0gICAgICAgcHZlY0hpc3RvcnktPnJlc2Vy
dmUoIGFycmF5Tm9kZS5zaXplKCkgKTsKLSAgICAgICBmb3IoIHVpbnQzMl90IHVuSW5kZXggPSAw
OyB1bkluZGV4IDwgYXJyYXlOb2RlLnNpemUoKTsgdW5JbmRleCsrICkKLSAgICAgICB7Ci0gICAg
ICAgICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoKCBhcnJheU5vZGVbIHVuSW5kZXggXS5hc1N0cmlu
ZygpICk7Ci0gICAgICAgICAgICAgIHB2ZWNIaXN0b3J5LT5wdXNoX2JhY2soIHNQYXRoICk7Ci0g
ICAgICAgfQotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogQ29udmVy
dHMgYSBoaXN0b3J5IGFycmF5IHRvIEpTT04KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc3RhdGlj
IHZvaWQgU3RyaW5nTGlzdFRvSnNvbiggY29uc3Qgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4g
JiB2ZWNIaXN0b3J5LCBKc29uOjpWYWx1ZSAmIHJvb3QsIGNvbnN0IGNoYXIgKnBjaEFycmF5TmFt
ZSApCi17Ci0gICAgICAgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5h
bWUgXTsKLSAgICAgICBmb3IoIGF1dG8gaSA9IHZlY0hpc3RvcnkuYmVnaW4oKTsgaSAhPSB2ZWNI
aXN0b3J5LmVuZCgpOyBpKysgKQotICAgICAgIHsKLSAgICAgICAgICAgICAgYXJyYXlOb2RlLmFw
cGVuZCggKmkgKTsKLSAgICAgICB9Ci19Ci0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8g
UHVycG9zZToKLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYzo6VG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKQotewotICAgICAg
IHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAg
ICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgIAotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdpc3RyeUNvbnRlbnRzID0gUGF0aF9SZWFk
VGV4dEZpbGUoIHNSZWdQYXRoICk7Ci0gICAgICAgaWYoIHNSZWdpc3RyeUNvbnRlbnRzLmVtcHR5
KCkgKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICBzSnNvblN0cmluZyA9
IHNSZWdpc3RyeUNvbnRlbnRzOwotCi0gICAgICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBMb2FkcyB0aGUgY29uZmlnIGZpbGUgZnJvbSBp
dHMgd2VsbCBrbm93biBsb2NhdGlvbgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29sIENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUoKQotewotICAgICAgIHN0ZDo6c3RyaW5n
IHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVn
UGF0aC5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRv
IGRldGVybWluZSBWUiBQYXRoIFJlZ2lzdHJ5IGZpbGVuYW1lXG4iICk7Ci0gICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlD
b250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVnUGF0aCApOwotICAgICAgIGlmKCBzUmVn
aXN0cnlDb250ZW50cy5lbXB0eSgpICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIFZSTG9nKCAi
VW5hYmxlIHRvIHJlYWQgVlIgUGF0aCBSZWdpc3RyeSBmcm9tICVzXG4iLCBzUmVnUGF0aC5jX3N0
cigpICk7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICBK
c29uOjpWYWx1ZSByb290OwotICAgICAgIEpzb246OlJlYWRlciByZWFkZXI7Ci0KLSAgICAgICBp
ZiggIXJlYWRlci5wYXJzZSggc1JlZ2lzdHJ5Q29udGVudHMsIHJvb3QgKSApCi0gICAgICAgewot
ICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBwYXJzZSAlczogJXNcbiIsIHNSZWdQYXRo
LmNfc3RyKCksIHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuY19zdHIoKSApOwot
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAgUGFyc2VTdHJp
bmdMaXN0RnJvbUpzb24oICZtX3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsKLSAg
ICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNv
bmZpZyIgKTsKLSAgICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjTG9nUGF0aCwg
cm9vdCwgImxvZyIgKTsKLSAgICAgICBpZiAocm9vdC5pc01lbWJlciggImV4dGVybmFsX2RyaXZl
cnMiICkgJiYgcm9vdFsgImV4dGVybmFsX2RyaXZlcnMiIF0uaXNBcnJheSgpICkKLSAgICAgICB7
Ci0gICAgICAgICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNFeHRlcm5hbERy
aXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotICAgICAgIH0KLQotICAgICAgIHJl
dHVybiB0cnVlOwotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogU2F2
ZXMgdGhlIGNvbmZpZyBmaWxlIHRvIGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLWJvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUoKSBj
b25zdAotewotI2lmIGRlZmluZWQoIERBU0hCT0FSRF9CVUlMRF9NT0RFICkKLSAgICAgICByZXR1
cm4gZmFsc2U7Ci0jZWxzZQotICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRo
UmVnaXN0cnlGaWxlbmFtZSgpOwotICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKLSAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgIAotICAgICAgIEpzb246OlZhbHVlIHJvb3Q7
Ci0gICAgICAgCi0gICAgICAgcm9vdFsgInZlcnNpb24iIF0gPSAxOwotICAgICAgIHJvb3RbICJq
c29uaWQiIF0gPSAidnJwYXRocmVnIjsKLQotICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVj
UnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwotICAgICAgIFN0cmluZ0xpc3RUb0pzb24o
IG1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIgKTsKLSAgICAgICBTdHJpbmdMaXN0VG9K
c29uKCBtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7Ci0gICAgICAgU3RyaW5nTGlzdFRvSnNv
biggbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOwotCi0g
ICAgICAgSnNvbjo6U3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgICAgICBzdGQ6OnN0cmluZyBzUmVn
aXN0cnlDb250ZW50cyA9IHdyaXRlci53cml0ZSggcm9vdCApOwotCi0gICAgICAgLy8gbWFrZSBz
dXJlIHRoZSBkaXJlY3Rvcnkgd2UncmUgd3JpdGluZyBpbnRvIGFjdHVhbGx5IGV4aXN0cwotICAg
ICAgIHN0ZDo6c3RyaW5nIHNSZWdEaXJlY3RvcnkgPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHNSZWdQ
YXRoICk7Ci0gICAgICAgaWYoICFCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBzUmVnRGlyZWN0
b3J5LmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byBjcmVhdGUgcGF0aCByZWdpc3RyeSBkaXJlY3RvcnkgJXNcbiIsIHNSZWdEaXJlY3RvcnkuY19z
dHIoKSApOwotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotCi0gICAgICAg
aWYoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc1JlZ1BhdGgsIHNSZWdpc3RyeUNvbnRl
bnRzLmNfc3RyKCkgKSApCi0gICAgICAgewotICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0
byB3cml0ZSBWUiBwYXRoIHJlZ2lzdHJ5IHRvICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7Ci0g
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0KLSAgICAgICByZXR1cm4gdHJ1
ZTsKLSNlbmRpZgotfQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0
dXJucyB0aGUgY3VycmVudCBydW50aW1lIHBhdGggb3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZp
Z3VyZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoKCkgY29uc3QKLXsKLSAgICAgICBpZiggbV92ZWNSdW50
aW1lUGF0aC5lbXB0eSgpICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjUnVudGltZVBhdGguZnJvbnQoKS5jX3N0cigpOwot
fQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3Vy
cmVudCBjb25maWcgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4KLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0
Q29uZmlnUGF0aCgpIGNvbnN0Ci17Ci0gICAgICAgaWYoIG1fdmVjQ29uZmlnUGF0aC5lbXB0eSgp
ICkKLSAgICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
cmV0dXJuIG1fdmVjQ29uZmlnUGF0aC5mcm9udCgpLmNfc3RyKCk7Ci19Ci0KLQotLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBQdXJwb3NlOiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvZyBwYXRoIG9y
IE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1z
dGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoKCkgY29uc3QKLXsK
LSAgICAgICBpZiggbV92ZWNMb2dQYXRoLmVtcHR5KCkgKQotICAgICAgICAgICAgICByZXR1cm4g
IiI7Ci0gICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gbV92ZWNMb2dQYXRoLmZyb250
KCkuY19zdHIoKTsKLX0KLQotCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gUHVycG9zZTog
UmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHByb3ZpZGVkIG92
ZXJyaWRlIAotLy8gICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuIFBhc3MgTlVMTCBmb3IgYW55
IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1ib29s
IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1l
UGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmlnUGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwg
Y29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRo
T3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyAp
Ci17Ci0gICAgICAgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYyBwYXRoUmVnOwotICAgICAgIGJvb2wg
YkxvYWRlZFJlZ2lzdHJ5ID0gcGF0aFJlZy5CTG9hZEZyb21GaWxlKCk7Ci0gICAgICAgaW50IG5D
b3VudEVudmlyb25tZW50VmFyaWFibGVzID0gMDsKLQotICAgICAgIGlmKCBwc1J1bnRpbWVQYXRo
ICkKLSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgg
a19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSBHZXRFbnZpcm9ubWVudFZh
cmlhYmxlKCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAg
bkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRSdW50aW1lUGF0aCgpLmVtcHR5KCkgKQotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IHBhdGhSZWcu
R2V0UnVudGltZVBhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gIiI7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICB9Ci0KLSAgICAgICBpZiggcHNDb25maWdQYXRoICkK
LSAgICAgICB7Ci0gICAgICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19w
Y2hDb25maWdPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJs
ZSgga19wY2hDb25maWdPdmVycmlkZVZhciApOwotICAgICAgICAgICAgICAgICAgICAgbkNvdW50
RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBl
bHNlIGlmKCBwY2hDb25maWdQYXRoT3ZlcnJpZGUgKQotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gcGNoQ29uZmlnUGF0aE92ZXJyaWRlOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldENvbmZpZ1Bh
dGgoKS5lbXB0eSgpICkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBz
Q29uZmlnUGF0aCA9IHBhdGhSZWcuR2V0Q29uZmlnUGF0aCgpOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
KnBzQ29uZmlnUGF0aCA9ICIiOwotICAgICAgICAgICAgICB9Ci0gICAgICAgfQotCi0gICAgICAg
aWYoIHBzTG9nUGF0aCApCi0gICAgICAgewotICAgICAgICAgICAgICBpZiAoIEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKLSAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIgKTsKLSAgICAgICAgICAgICAgICAgICAg
IG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgZWxzZSBpZiggcGNoTG9nUGF0aE92ZXJyaWRlICkKLSAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IHBjaExvZ1BhdGhPdmVycmlkZTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRMb2dQYXRoKCku
ZW1wdHkoKSApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1Bh
dGggPSBwYXRoUmVnLkdldExvZ1BhdGgoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGgg
PSAiIjsKLSAgICAgICAgICAgICAgfQotICAgICAgIH0KLQotICAgICAgIGlmICggcHZlY0V4dGVy
bmFsRHJpdmVycyApCi0gICAgICAgewotICAgICAgICAgICAgICAqcHZlY0V4dGVybmFsRHJpdmVy
cyA9IHBhdGhSZWcubV92ZWNFeHRlcm5hbERyaXZlcnM7Ci0gICAgICAgfQotCi0gICAgICAgaWYg
KCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9PSAzICkKLSAgICAgICB7Ci0gICAgICAgICAg
ICAgIC8vIGFsbCB0aHJlZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlcmUgc2V0LCBzbyB3ZSBk
b24ndCBuZWVkIHRoZSBwaHlzaWNhbCBmaWxlCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgIH0KLQotICAgICAgIHJldHVybiBiTG9hZGVkUmVnaXN0cnk7Ci19Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlf
cHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJl
Z2lzdHJ5X3B1YmxpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjBkZTU2Zjlk
ZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vdnJwYXRocmVnaXN0cnlfcHVibGljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNp
bmNsdWRlIDxzdGRpbnQuaD4KLQotc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoUnVudGltZU92ZXJy
aWRlVmFyID0gIlZSX09WRVJSSURFIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaENvbmZpZ092
ZXJyaWRlVmFyID0gIlZSX0NPTkZJR19QQVRIIjsKLXN0YXRpYyBjb25zdCBjaGFyICprX3BjaExv
Z092ZXJyaWRlVmFyID0gIlZSX0xPR19QQVRIIjsKLQotY2xhc3MgQ1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYwotewotcHVibGljOgotICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRWUlBhdGhSZWdp
c3RyeUZpbGVuYW1lKCk7Ci0gICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE9wZW5WUkNvbmZp
Z1BhdGgoKTsKLQotcHVibGljOgotICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKTsKLQot
ICAgICAgIC8qKiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUg
cHJvdmlkZWQgb3ZlcnJpZGUgdmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9u
J3QgY2FyZSBhYm91dC4gCi0gICAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBwYXRoIHJlZ2lz
dHJ5IGNvdWxkIG5vdCBiZSByZWFkLiBWYWxpZCBwYXRocyBtaWdodCBzdGlsbCBiZSByZXR1cm5l
ZCBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCi0gICAgICAgc3RhdGljIGJvb2wg
R2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRpbWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25m
aWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRoLCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRo
T3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1BhdGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJzID0gTlVMTCApOwotCi0gICAgICAgYm9vbCBC
TG9hZEZyb21GaWxlKCk7Ci0gICAgICAgYm9vbCBCU2F2ZVRvRmlsZSgpIGNvbnN0OwotCi0gICAg
ICAgYm9vbCBUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApOwotCi0gICAg
ICAgLy8gbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgdmFsdWVzCi0gICAgICAgc3RkOjpzdHJp
bmcgR2V0UnVudGltZVBhdGgoKSBjb25zdDsKLSAgICAgICBzdGQ6OnN0cmluZyBHZXRDb25maWdQ
YXRoKCkgY29uc3Q7Ci0gICAgICAgc3RkOjpzdHJpbmcgR2V0TG9nUGF0aCgpIGNvbnN0OwotCi1w
cm90ZWN0ZWQ6Ci0gICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiBTdHJp
bmdWZWN0b3JfdDsKLQotICAgICAgIC8vIGluZGV4IDAgaXMgdGhlIGN1cnJlbnQgc2V0dGluZwot
ICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjUnVudGltZVBhdGg7Ci0gICAgICAgU3RyaW5nVmVj
dG9yX3QgbV92ZWNMb2dQYXRoOwotICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjQ29uZmlnUGF0
aDsKLQotICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBleHRlcm5hbCBkcml2ZXJzCi0gICAgICAgU3Ry
aW5nVmVjdG9yX3QgbV92ZWNFeHRlcm5hbERyaXZlcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4NjEyODNkMzlkODdmN2U5ZjEwOGU4ZTlhYTIxNDc2ZTU3YTBmMzk0Li5kOGUwNGU5MGFj
ZWQ4YWM2YzlkZWNlMjU2NzIzYTk1NWZiNzI1OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NjgsNyArNjgsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy93ZWJzb2NrZXRzIgotICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnZyIgogICAgICIk
e1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYW5pbWF0aW9uIgpAQCAt
MjE1LDcgKzIxNCw2IEBAIHNldChXZWJDb3JlX0lETF9JTkNMVURFUwogICAgIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UKICAgICBNb2R1bGVzL3dlYmdwdQogICAgIE1vZHVsZXMvd2Vic29ja2V0cwotICAg
IE1vZHVsZXMvd2VidnIKIAogICAgIGJpbmRpbmdzL2pzCiAKQEAgLTU1OCwyMCArNTU2LDYgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvQ2xv
c2VFdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAogCi0gICAg
TW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwKLSAgICBNb2R1bGVzL3dlYnZyL05hdmln
YXRvcldlYlZSLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotICAgIE1vZHVs
ZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJE
aXNwbGF5RXZlbnQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5p
ZGwKLSAgICBNb2R1bGVzL3dlYnZyL1ZSRXllLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSAgICBN
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAotICAgIE1vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCi0gICAgTW9kdWxlcy93ZWJ2ci9W
UlN0YWdlUGFyYW1ldGVycy5pZGwKLQogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJv
bGUuaWRsCiAgICAgYWNjZXNzaWJpbGl0eS9BcmlhQXR0cmlidXRlcy5pZGwKIApAQCAtMTE5Myw4
ICsxMTc3LDYgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICAgICBNb2R1bGVzL2dhbWVwYWQv
R2FtZXBhZEJ1dHRvbi5pZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5p
ZGwKICAgICAgICAgTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsCi0KLSAgICAg
ICAgTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCiAgICAgKQogCiAgICAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCkBAIC0xNTY0LDEyICsxNTQ2LDYgQEAgaWYgKEVOQUJMRV9VU0VS
X01FU1NBR0VfSEFORExFUlMpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOVlIpCi0g
IGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1RISVJE
UEFSVFlfRElSfS9vcGVudnIvaGVhZGVycyIpCi0gIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFU
RV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS92ci9vcGVudnIi
KQotICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBvcGVudnJfYXBpKQotZW5kaWYgKCkK
LQogaWYgKFVTRV9XT0ZGMikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVf
RElSRUNUT1JJRVMgIiR7V09GRjJERUNfSU5DTFVERV9ESVJTfSIpCiAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfTElCUkFSSUVTICIke1dPRkYyREVDX0xJQlJBUklFU30iKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMGFjNWU1ZWU2YjBiZmU4
YTBhNmY1NjNlMGMzZTJlMDc5NzQ3ZmEwMi4uNWE0ZTNkMmEzNjgxOTIyNGZlZjE2OGNkZDBkM2Ji
YjY3ZWJhNThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC00MDksMjAgKzQwOSw2IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJncHUv
V29ya2VyTmF2aWdhdG9yR1BVLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJzb2NrZXRz
L0Nsb3NlRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwK
LSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAotJChQUk9KRUNU
X0RJUikvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZS
RGlzcGxheUV2ZW50LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlF
dmVudFJlYXNvbi5pZGwKLSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2VidnIvVlJFeWUuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKLSQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2VidnIvVlJGaWVsZE9mVmlldy5pZGwKLSQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZy
L1ZSTGF5ZXJJbml0LmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRs
Ci0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYnZyL1ZSU3RhZ2VQYXJhbWV0ZXJzLmlkbAogJChQ
Uk9KRUNUX0RJUikvUmVzb3VyY2VzL3BsdWdJbnMuanMKICQoUFJPSkVDVF9ESVIpL1NjcmlwdHMv
R2VuZXJhdGVTZXR0aW5ncy5yYgogJChQUk9KRUNUX0RJUikvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWQ2NmNlY2RmMzQ4ZDJm
N2E3ZjNlZjA4MzAyYjhmNTI5YWQ3OThmOC4uODUzYTI3NDcyZGZkMDFiNTIwZWI3MmEyMDIxOGVm
MjU4OGI3NThhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTQzOSw4ICs0MzksNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFz
ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvd1dlYkdQVS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93V2ViR1BVLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViVlIuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYlZSLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUN1ZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlci5jcHAKQEAg
LTY3NSw4ICs2NzMsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0dhbWVwYWRCdXR0b24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRCdXR0b24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHYW1lcGFkRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRFdmVudC5oCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZS
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9j
YXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dlb2xvY2F0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKQEAgLTExMzcsOCArMTEzMyw2IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldlYkRyaXZlci5oCi0k
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcldl
YlZSLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0b3JXZWJWUi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU05vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNOb2RlRmlsdGVyLmNwcApAQCAtMTg4NywyOCArMTg4MSw2IEBAICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVlJEaXNwbGF5LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWUkRpc3BsYXkuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuY3BwCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRGlzcGxh
eUV2ZW50LmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNWUkRpc3BsYXlFdmVudC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZSRGlzcGxheUV2ZW50UmVhc29uLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkRpc3BsYXlFdmVudFJlYXNvbi5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllLmNwcAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkV5ZS5oCi0kKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRXllUGFyYW1ldGVycy5j
cHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJFeWVQ
YXJhbWV0ZXJzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVlJGaWVsZE9mVmlldy5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlJGaWVsZE9mVmlldy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1ZSRnJhbWVEYXRhLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkZyYW1lRGF0YS5oCi0kKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSTGF5ZXJJbml0LmNwcAotJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWUkxheWVySW5pdC5oCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZSUG9zZS5jcHAKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJQb3NlLmgKLSQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlJTdGFnZVBhcmFt
ZXRlcnMuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1ZSU3RhZ2VQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVlRUQ3VlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRDdWUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNWVFRSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAyMWZiMWFkYjdhZjE1NGE5NGVkMWUyZmMyN2JiYzZiMDE3OGM1MzNmLi4yNDZlZjJkOGU5
MzM4ZWQyYTliNjAxMTgwNGNmYTEyNDZjNzE4NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTY0LDcgKzY0LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ2ciBc
CiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlv
biBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjEsMjAgKzQ2MCw2IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3Nl
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL05hdmlnYXRvcldlYlZSLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIv
VlJFeWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJFeWVQYXJhbWV0ZXJz
LmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VidnIvVlJMYXllckluaXQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VidnIvVlJQb3NlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL1ZS
U3RhZ2VQYXJhbWV0ZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRy
aWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIzYzQ2ZDUzOTEzZmUzMjBiYTI2ZGYyNGQ2YmY0
NzIxZWVkYzljNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbAorKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7Ci0gICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnZyZGlzcGxheWNvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnZyZGlzcGxheWRpc2Nvbm5lY3Q7Ci0gICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnZyZGlzcGxheWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRp
c3BsYXlkZWFjdGl2YXRlOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXli
bHVyOwotICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252cmRpc3BsYXlmb2N1czsKLSAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udnJkaXNwbGF5cHJlc2VudGNoYW5nZTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMzY2JhNjIwOTQ1ODA1MzUwMDVkYmE4ODQ1ZDAzNGNlMWIzMDc5
ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiR2FtZXBhZFdlYlZSLmgiCi0KLSNpZiBFTkFCTEUoR0FNRVBBRCkKLQotI2luY2x1ZGUgIkdh
bWVwYWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HYW1lcGFkV2ViVlI6OkdhbWVwYWRX
ZWJWUigpID0gZGVmYXVsdDsKLQotR2FtZXBhZFdlYlZSOjp+R2FtZXBhZFdlYlZSKCkgPSBkZWZh
dWx0OwotCi11bnNpZ25lZCBHYW1lcGFkV2ViVlI6OmRpc3BsYXlJZChjb25zdCBHYW1lcGFkJikK
LXsKLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFk
V2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYyMDkxNWIyNDVjODg5NTdj
YjkyNjc0OGUxMmIwOGM5MmY3Mjc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL0dhbWVwYWRXZWJWUi5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShHQU1FUEFEKQotCi0jaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHYW1lcGFkOwotCi1jbGFzcyBHYW1lcGFk
V2ViVlIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxHYW1lcGFkPiB7Ci1wdWJsaWM6Ci0gICAg
R2FtZXBhZFdlYlZSKCk7Ci0gICAgdmlydHVhbCB+R2FtZXBhZFdlYlZSKCk7Ci0KLSAgICBzdGF0
aWMgdW5zaWduZWQgZGlzcGxheUlkKGNvbnN0IEdhbWVwYWQmKTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9HYW1lcGFkV2ViVlIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYjBiMTA5ZGQwMTQ4MTk5YmI0ZGVmZTMzZWU1OTliN2ExYzZkM2YzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvR2FtZXBhZFdlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgQ29u
ZGl0aW9uYWw9R0FNRVBBRCwKLV0gcGFydGlhbCBpbnRlcmZhY2UgR2FtZXBhZCB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZGlzcGxheUlkOwotfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkZjEwMjExYTdhNDY5ZWFlMTg5ZGZhNGRjNTBhOGMzZjc5YTUzYzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJOYXZpZ2F0b3JXZWJWUi5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgIkpTVlJEaXNwbGF5LmgiCi0j
aW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUgIlZSTWFuYWdlci5oIgotI2luY2x1
ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBO
YXZpZ2F0b3JXZWJWUjo6Z2V0VlJEaXNwbGF5cyhOYXZpZ2F0b3ImIG5hdmlnYXRvciwgRG9jdW1l
bnQmIGRvY3VtZW50LCBHZXRWUkRpc3BsYXlzUHJvbWlzZSYmIHByb21pc2UpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZSRW5hYmxlZCgp
KSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgTmF2aWdhdG9yV2ViVlI6OmZyb20oJm5hdmlnYXRvciktPmdldFZSRGlzcGxheXMoZG9jdW1l
bnQsIFdURk1vdmUocHJvbWlzZSkpOwotfQotCi12b2lkIE5hdmlnYXRvcldlYlZSOjpnZXRWUkRp
c3BsYXlzKERvY3VtZW50JiBkb2N1bWVudCwgR2V0VlJEaXNwbGF5c1Byb21pc2UmJiBwcm9taXNl
KQotewotICAgIGRvY3VtZW50LnBvc3RUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAg
ICBPcHRpb25hbDxWUk1hbmFnZXI6OlZSRGlzcGxheXNWZWN0b3I+IHBsYXRmb3JtRGlzcGxheXMg
PSBWUk1hbmFnZXI6OnNpbmdsZXRvbigpLmdldFZSRGlzcGxheXMoKTsKLSAgICAgICAgaWYgKCFw
bGF0Zm9ybURpc3BsYXlzKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdCgpOwotICAgICAg
ICAgICAgbV9kaXNwbGF5cy5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBvbGREaXNwbGF5cyA9IFdURk1vdmUo
bV9kaXNwbGF5cyk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIHRoZSB2ZWN0b3Igb2YgZGlzcGxheXMu
IE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGlzIE8obl4yKSB0aGUgYW1vdW50IG9mIGV4cGVjdGVk
Ci0gICAgICAgIC8vIFZSRGlzcGxheXMgaXMgc28gcmVkdWNlZCB0aGF0IGl0J2xsIHJ1biBmYXN0
IGVub3VnaC4KLSAgICAgICAgZm9yIChhdXRvJiBwbGF0Zm9ybURpc3BsYXkgOiBwbGF0Zm9ybURp
c3BsYXlzLnZhbHVlKCkpIHsKLSAgICAgICAgICAgIGJvb2wgbmV3RGlzcGxheSA9IHRydWU7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIG9sZERpc3BsYXkgOiBvbGREaXNwbGF5cykgewotICAgICAg
ICAgICAgICAgIGlmIChwbGF0Zm9ybURpc3BsYXktPmdldERpc3BsYXlJbmZvKCkuZGlzcGxheUlk
ZW50aWZpZXIoKSA9PSBvbGREaXNwbGF5LT5kaXNwbGF5SWQoKSkgewotICAgICAgICAgICAgICAg
ICAgICBuZXdEaXNwbGF5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIG1fZGlzcGxheXMu
YXBwZW5kKG9sZERpc3BsYXkuY29weVJlZigpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5ld0Rp
c3BsYXkpIHsKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlzLmFwcGVuZChWUkRpc3BsYXk6OmNy
ZWF0ZShjb250ZXh0LCBXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpKTsKLSAgICAgICAgICAgICAg
ICBtX2Rpc3BsYXlzLmxhc3QoKS0+cGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKG1fZGlz
cGxheXMsIFtdKGNvbnN0IFJlZjxWUkRpc3BsYXk+JiBkaXNwbGF5KSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGlzcGxheS5jb3B5UmVmKCk7Ci0gICAgICAgIH0pKTsKLSAgICB9KTsKLX0KLQotY29u
c3QgVmVjdG9yPFJlZlB0cjxWUkRpc3BsYXk+PiYgTmF2aWdhdG9yV2ViVlI6OmFjdGl2ZVZSRGlz
cGxheXMoTmF2aWdhdG9yJikKLXsKLSAgICBzdGF0aWMgYXV0byBtb2NrVmVjdG9yID0gbWFrZU5l
dmVyRGVzdHJveWVkKFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5Pj4geyB9KTsKLSAgICByZXR1cm4g
bW9ja1ZlY3RvcjsKLX0KLQotY29uc3QgY2hhciogTmF2aWdhdG9yV2ViVlI6OnN1cHBsZW1lbnRO
YW1lKCkKLXsKLSAgICByZXR1cm4gIk5hdmlnYXRvcldlYlZSIjsKLX0KLQotTmF2aWdhdG9yV2Vi
VlIqIE5hdmlnYXRvcldlYlZSOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQotewotICAgIE5h
dmlnYXRvcldlYlZSKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yV2ViVlIqPihT
dXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpKSk7
Ci0gICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IG1h
a2VVbmlxdWU8TmF2aWdhdG9yV2ViVlI+KCk7Ci0gICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBw
bGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFt
ZSgpLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1cHBsZW1l
bnQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmZkNzEzOWNlYWM3NWVkNGI4MGQ3ODkxMzVjMzg4NmVkYmNhZWNiNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL05hdmlnYXRvcldlYlZSLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotY2xhc3MgTmF2aWdhdG9yOwotY2xh
c3MgUGFnZTsKLWNsYXNzIFZSRGlzcGxheTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4g
Y2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwotCi1jbGFzcyBOYXZpZ2F0b3JXZWJWUiBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIHVzaW5nIEdldFZSRGlzcGxheXNQcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETFNlcXVlbmNlPElETEludGVyZmFjZTxWUkRpc3BsYXk+Pj47Ci0KLSAgICBz
dGF0aWMgdm9pZCBnZXRWUkRpc3BsYXlzKE5hdmlnYXRvciYsIERvY3VtZW50JiwgR2V0VlJEaXNw
bGF5c1Byb21pc2UmJik7Ci0gICAgc3RhdGljIGNvbnN0IFZlY3RvcjxSZWZQdHI8VlJEaXNwbGF5
Pj4mIGFjdGl2ZVZSRGlzcGxheXMoTmF2aWdhdG9yJik7Ci0gICAgc3RhdGljIGJvb2wgdnJFbmFi
bGVkKE5hdmlnYXRvciYpOwotCi0gICAgdm9pZCBnZXRWUkRpc3BsYXlzKERvY3VtZW50JiwgR2V0
VlJEaXNwbGF5c1Byb21pc2UmJik7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldl
YlZSKiBmcm9tKE5hdmlnYXRvciopOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwotCi0gICAgVmVjdG9yPFJlZjxWUkRpc3BsYXk+PiBtX2Rpc3BsYXlzOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9OYXZpZ2F0b3JXZWJWUi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L05hdmlnYXRvcldlYlZSLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVlN2E4
NzRlNmNjYzA5NTVlMGVkYTNiMTdhY2E1NDNlNGIyZTM0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL05h
dmlnYXRvcldlYlZSLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPHNlcXVlbmNlPFZS
RGlzcGxheT4+IGdldFZSRGlzcGxheXMoKTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVu
QXJyYXk8VlJEaXNwbGF5PiBhY3RpdmVWUkRpc3BsYXlzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAzMDc2MTg1YzUyYWZhYmU3ZTM1OTFlM2E4ODVlOTQxNmQ4OWUyMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIK
LQotI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJDaHJvbWUu
aCIKLSNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
LSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKLSNpbmNsdWRlICJWUkRpc3Bs
YXlDYXBhYmlsaXRpZXMuaCIKLSNpbmNsdWRlICJWUkRpc3BsYXlFdmVudC5oIgotI2luY2x1ZGUg
IlZSRXllUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0jaW5jbHVkZSAi
VlJMYXllckluaXQuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSUG9zZS5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2lu
ZG93RXZlbnRMb29wLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVlJEaXNwbGF5
KTsKLQotUmVmPFZSRGlzcGxheT4gVlJEaXNwbGF5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4mJiBwbGF0Zm9ybURpc3Bs
YXkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5KGNvbnRleHQsIFdURk1v
dmUocGxhdGZvcm1EaXNwbGF5KSkpOwotfQotCi1WUkRpc3BsYXk6OlZSRGlzcGxheShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmIHBs
YXRmb3JtRGlzcGxheSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKLSAgICAsIG1f
ZGlzcGxheShXVEZNb3ZlKHBsYXRmb3JtRGlzcGxheSkpCi17Ci0gICAgYXV0byBkaXNwbGF5SW5m
byA9IG1fZGlzcGxheS0+Z2V0RGlzcGxheUluZm8oKTsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFZS
RGlzcGxheUNhcGFiaWxpdGllczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmNhcGFiaWxpdHlGbGFncygp
KTsKLSAgICBtX2xlZnRFeWVQYXJhbWV0ZXJzID0gVlJFeWVQYXJhbWV0ZXJzOjpjcmVhdGUoZGlz
cGxheUluZm8uZXllVHJhbnNsYXRpb24oVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0KSwg
ZGlzcGxheUluZm8uZXllRmllbGRPZlZpZXcoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpFeWVMZWZ0
KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgpKTsKLSAgICBtX3JpZ2h0RXllUGFyYW1ldGVycyA9
IFZSRXllUGFyYW1ldGVyczo6Y3JlYXRlKGRpc3BsYXlJbmZvLmV5ZVRyYW5zbGF0aW9uKFZSUGxh
dGZvcm1EaXNwbGF5SW5mbzo6RXllUmlnaHQpLCBkaXNwbGF5SW5mby5leWVGaWVsZE9mVmlldyhW
UlBsYXRmb3JtRGlzcGxheUluZm86OkV5ZVJpZ2h0KSwgZGlzcGxheUluZm8ucmVuZGVyU2l6ZSgp
KTsKLSAgICBtX2Rpc3BsYXlJZCA9IGRpc3BsYXlJbmZvLmRpc3BsYXlJZGVudGlmaWVyKCk7Ci0g
ICAgbV9kaXNwbGF5TmFtZSA9IGRpc3BsYXlJbmZvLmRpc3BsYXlOYW1lKCk7Ci0KLSAgICBtX2Rp
c3BsYXktPnNldENsaWVudCh0aGlzKTsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLX0KLQotVlJE
aXNwbGF5Ojp+VlJEaXNwbGF5KCkKLXsKLSAgICBtX2Rpc3BsYXktPnNldENsaWVudChudWxscHRy
KTsKLX0KLQotYm9vbCBWUkRpc3BsYXk6OmlzQ29ubmVjdGVkKCkgY29uc3QKLXsKLSAgICBpZiAo
IW1fZGlzcGxheSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fZGlzcGxh
eS0+Z2V0RGlzcGxheUluZm8oKS5pc0Nvbm5lY3RlZCgpOwotfQotCi1jb25zdCBWUkRpc3BsYXlD
YXBhYmlsaXRpZXMmIFZSRGlzcGxheTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gKm1fY2FwYWJpbGl0aWVzOwotfQotCi1SZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IFZSRGlz
cGxheTo6c3RhZ2VQYXJhbWV0ZXJzKCkgY29uc3QKLXsKLSAgICBhdXRvIGRpc3BsYXlJbmZvID0g
bV9kaXNwbGF5LT5nZXREaXNwbGF5SW5mbygpOwotICAgIHJldHVybiBWUlN0YWdlUGFyYW1ldGVy
czo6Y3JlYXRlKGRpc3BsYXlJbmZvLnNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtKCksIGRpc3Bs
YXlJbmZvLnBsYXlBcmVhQm91bmRzKCkpOwotfQotCi1jb25zdCBWUkV5ZVBhcmFtZXRlcnMmIFZS
RGlzcGxheTo6Z2V0RXllUGFyYW1ldGVycyhWUkV5ZSBleWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGV5ZSA9PSBWUkV5ZTo6TGVmdCA/ICptX2xlZnRFeWVQYXJhbWV0ZXJzIDogKm1fcmlnaHRFeWVQ
YXJhbWV0ZXJzOwotfQotCi1ib29sIFZSRGlzcGxheTo6Z2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRh
JiBmcmFtZURhdGEpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcy0+aGFzUG9zaXRp
b24oKSB8fCAhbV9jYXBhYmlsaXRpZXMtPmhhc09yaWVudGF0aW9uKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIC8vIEZJWE1FOiBlbnN1cmUgdGhhdCB0aGlzIGlzIG9ubHkgY2FsbGVk
IGluc2lkZSBXZWJWUidzIHJBRi4KLSAgICBmcmFtZURhdGEudXBkYXRlKG1fZGlzcGxheS0+Z2V0
VHJhY2tpbmdJbmZvKCksIGdldEV5ZVBhcmFtZXRlcnMoVlJFeWU6OkxlZnQpLCBnZXRFeWVQYXJh
bWV0ZXJzKFZSRXllOjpSaWdodCksIG1fZGVwdGhOZWFyLCBtX2RlcHRoRmFyKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotUmVmPFZSUG9zZT4gVlJEaXNwbGF5OjpnZXRQb3NlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gVlJQb3NlOjpjcmVhdGUobV9kaXNwbGF5LT5nZXRUcmFja2luZ0luZm8oKSk7
Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpyZXNldFBvc2UoKQotewotfQotCi11aW50MzJfdCBWUkRp
c3BsYXk6OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcikgewotICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCpkb2N1bWVudCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5yZWdpc3Rl
ckNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmNhbmNl
bEFuaW1hdGlvbkZyYW1lKHVpbnQzMl90IGlkKQotewotICAgIGlmICghbV9zY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLT5jYW5jZWxDYWxsYmFjayhpZCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5Ojpy
ZXF1ZXN0UHJlc2VudChjb25zdCBWZWN0b3I8VlJMYXllckluaXQ+JiBsYXllcnMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKLXsKLSAgICBhdXRvIHJlamVjdFJlcXVlc3RBbmRTdG9w
UHJlc2VudGluZyA9IFt0aGlzLCAmcHJvbWlzZV0gKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29k
ZSwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IGV4Y2VwdGlvbkNvZGUsIG1lc3NhZ2UgfSk7Ci0gICAgICAgIGlmIChtX3ByZXNlbnRp
bmdMYXllcikKLSAgICAgICAgICAgIHN0b3BQcmVzZW50aW5nKCk7Ci0gICAgfTsKLQotICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMtPmNhblByZXNlbnQoKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0
QW5kU3RvcFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJWUkRpc3BsYXkgY2Fubm90IHBy
ZXNlbnQiX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFsYXllcnMuc2l6
ZSgpIHx8IGxheWVycy5zaXplKCkgPiBtX2NhcGFiaWxpdGllcy0+bWF4TGF5ZXJzKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCBs
YXllcnMuc2l6ZSgpID8gIlRvbyBtYW55IGxheWVycyJfcyA6ICJOb3QgZW5vdWdoIGxheWVycyJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVy
ICYmICFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAg
ICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVzZW50aW5nKEludmFsaWRBY2Nlc3NFcnJvciwg
Ik11c3QgcmVxdWVzdCBwcmVzZW50YXRpb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJf
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FTU0VSVChsYXllcnMu
c2l6ZSgpID09IDEpOwotICAgIGF1dG8gbGF5ZXIgPSBsYXllcnNbMF07Ci0KLSAgICBpZiAoIWxh
eWVyLnNvdXJjZSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3RvcFByZXNlbnRpbmcoSW52
YWxpZFN0YXRlRXJyb3IsICJMYXllciBkb2VzIG5vdCBjb250YWluIGFueSBzb3VyY2UiX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byogY2FudmFzQ29udGV4dCA9IGxheWVy
LnNvdXJjZS0+Z2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAoIWNhbnZhc0NvbnRleHQgfHwg
IWNhbnZhc0NvbnRleHQtPmlzV2ViR0woKSkgewotICAgICAgICByZWplY3RSZXF1ZXN0QW5kU3Rv
cFByZXNlbnRpbmcoTm90U3VwcG9ydGVkRXJyb3IsICJXZWJWUiByZXF1aXJlcyBWUkxheWVySW5p
dCB3aXRoIFdlYkdMIGNvbnRleHQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICgobGF5ZXIubGVmdEJvdW5kcy5zaXplKCkgJiYgbGF5ZXIubGVmdEJvdW5kcy5zaXplKCkg
IT0gNCkKLSAgICAgICAgfHwgKGxheWVyLnJpZ2h0Qm91bmRzLnNpemUoKSAmJiBsYXllci5yaWdo
dEJvdW5kcy5zaXplKCkgIT0gNCkpIHsKLSAgICAgICAgcmVqZWN0UmVxdWVzdEFuZFN0b3BQcmVz
ZW50aW5nKEludmFsaWRTdGF0ZUVycm9yLCAiTGF5ZXIgYm91bmRzIG11c3QgYmUgZWl0aGVyIDAg
b3IgNCJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3ByZXNlbnRpbmdMYXll
ciA9IGxheWVyOwotICAgIHByb21pc2UtPnJlc29sdmUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6
OnN0b3BQcmVzZW50aW5nKCkKLXsKLSAgICBtX3ByZXNlbnRpbmdMYXllciA9IFdURjo6bnVsbG9w
dDsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OmV4aXRQcmVzZW50KFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKLXsKLSAgICBpZiAoIW1fcHJlc2VudGluZ0xheWVyKSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlZSRGlzcGxheSBp
cyBub3QgcHJlc2VudGluZyJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0
b3BQcmVzZW50aW5nKCk7Ci19Ci0KLVZlY3RvcjxWUkxheWVySW5pdD4gVlJEaXNwbGF5OjpnZXRM
YXllcnMoKSBjb25zdAotewotICAgIFZlY3RvcjxWUkxheWVySW5pdD4gbGF5ZXJzOwotICAgIGlm
IChtX3ByZXNlbnRpbmdMYXllcikKLSAgICAgICAgbGF5ZXJzLmFwcGVuZChtX3ByZXNlbnRpbmdM
YXllci52YWx1ZSgpKTsKLSAgICByZXR1cm4gbGF5ZXJzOwotfQotCi12b2lkIFZSRGlzcGxheTo6
c3VibWl0RnJhbWUoKQotewotfQotCi0vLyBVc2UgYSBFdmVudExvb3AgaW5zdGVhZCBvZiBkaXNw
YXRjaGluZyBldmVudHMgc3luY2hyb25vdXNseSBiZWNhdXNlIHRoZQotLy8gRXZlbnRMb29wIGNv
cnJlY3RseSBzdXNwZW5kcyB3aGVuIGluIHRoZSBjYWNoZS4gVGhpcyB3YXkgVlJEaXNwbGF5IGRv
ZXMgbm8KLS8vIGxvbmdlciBwcmV2ZW50IGNhY2hpbmcgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4KLXZvaWQgVlJEaXNwbGF5OjpkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3AoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4m
JiByZWFzb24pCi17Ci0gICAgYXV0byBldmVudCA9IFZSRGlzcGxheUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBtYWtlUmVmUHRyKHRoaXMpLCBXVEZNb3ZlKHJlYXNvbikpOwotICAgIHF1ZXVlVGFz
a0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBb
dGhpcywgZXZlbnQgPSBXVEZNb3ZlKGV2ZW50KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFk
b2N1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoYXV0byogd2luZG93
ID0gZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpCi0gICAgICAgICAgICB3aW5kb3ctPmRpc3BhdGNo
RXZlbnQoZXZlbnQpOwotICAgIH0pOwotfQotCi12b2lkIFZSRGlzcGxheTo6cGxhdGZvcm1EaXNw
bGF5Q29ubmVjdGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExvb3Ao
ZXZlbnROYW1lcygpLnZyZGlzcGxheWNvbm5lY3RFdmVudCwgV1RGOjpudWxsb3B0KTsKLX0KLQot
dm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheURpc2Nvbm5lY3RlZCgpCi17Ci0gICAgZGlz
cGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFtZXMoKS52cmRpc3BsYXlkaXNj
b25uZWN0RXZlbnQsIFdURjo6bnVsbG9wdCk7Ci19Ci0KLXZvaWQgVlJEaXNwbGF5OjpwbGF0Zm9y
bURpc3BsYXlNb3VudGVkKCkKLXsKLSAgICBkaXNwYXRjaFZSRGlzcGxheUV2ZW50SW5FdmVudExv
b3AoZXZlbnROYW1lcygpLnZyZGlzcGxheWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVh
c29uOjpNb3VudGVkKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnBsYXRmb3JtRGlzcGxheVVubW91
bnRlZCgpCi17Ci0gICAgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGV2ZW50TmFt
ZXMoKS52cmRpc3BsYXlkZWFjdGl2YXRlRXZlbnQsIFZSRGlzcGxheUV2ZW50UmVhc29uOjpVbm1v
dW50ZWQpOwotfQotCi1ib29sIFZSRGlzcGxheTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWNvbnN0IGNoYXIqIFZSRGlzcGxheTo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJWUkRpc3BsYXkiOwotfQotCi12
b2lkIFZSRGlzcGxheTo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKLXsKLSAg
ICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kKCk7Ci0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25G
b3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQotICAgICAgICBzdG9wUHJlc2VudGluZygp
OwotfQotCi12b2lkIFZSRGlzcGxheTo6cmVzdW1lKCkKLXsKLSAgICBpZiAobV9zY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LT5yZXN1bWUoKTsKLX0KLQotdm9pZCBWUkRpc3BsYXk6OnN0b3AoKQotewotICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyID0gbnVsbHB0cjsKLSAgICBzdG9wUHJlc2VudGluZygpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkRpc3BsYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQzYTY3YzkzZmFjN2Yx
OGU0Zjg0MjhlOGRhYjdjNzk3ZjI4MmY1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCi0jaW5jbHVkZSAiVlJEaXNwbGF5RXZlbnRSZWFzb24uaCIKLSNpbmNsdWRlICJW
UkV5ZS5oIgotI2luY2x1ZGUgIlZSTGF5ZXJJbml0LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXlDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gRXhjZXB0aW9uQ29k
ZTsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLWNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrOwotY2xhc3MgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwotY2xhc3MgVlJEaXNw
bGF5Q2FwYWJpbGl0aWVzOwotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzOwotY2xhc3MgVlJGcmFtZURh
dGE7Ci1jbGFzcyBWUlBsYXRmb3JtRGlzcGxheTsKLWNsYXNzIFZSUG9zZTsKLWNsYXNzIFZSU3Rh
Z2VQYXJhbWV0ZXJzOwotCi1jbGFzcyBWUkRpc3BsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxWUkRpc3BsYXk+LCBwdWJsaWMgVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFZSRGlzcGxheSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkRpc3BsYXk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxWUlBsYXRm
b3JtRGlzcGxheT4mJik7Ci0KLSAgICB2aXJ0dWFsIH5WUkRpc3BsYXkoKTsKLQotICAgIHVzaW5n
IFJlZkNvdW50ZWQ8VlJEaXNwbGF5Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8VlJEaXNw
bGF5Pjo6ZGVyZWY7Ci0KLSAgICBib29sIGlzQ29ubmVjdGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBp
c1ByZXNlbnRpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fcHJlc2VudGluZ0xheWVyOyB9OwotCi0g
ICAgY29uc3QgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdDsKLSAg
ICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IHN0YWdlUGFyYW1ldGVycygpIGNvbnN0OwotCi0g
ICAgY29uc3QgVlJFeWVQYXJhbWV0ZXJzJiBnZXRFeWVQYXJhbWV0ZXJzKFZSRXllKSBjb25zdDsK
LQotICAgIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXlOYW1lOyB9Ci0gICAgdWludDMyX3QgZGlzcGxheUlkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5SWQ7IH0KLQotICAgIGJvb2wgZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhJikgY29uc3Q7Ci0K
LSAgICBSZWY8VlJQb3NlPiBnZXRQb3NlKCkgY29uc3Q7Ci0gICAgdm9pZCByZXNldFBvc2UoKTsK
LQotICAgIGRvdWJsZSBkZXB0aE5lYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRoTmVhcjsgfQot
ICAgIHZvaWQgc2V0RGVwdGhOZWFyKGRvdWJsZSBkZXB0aE5lYXIpIHsgbV9kZXB0aE5lYXIgPSBk
ZXB0aE5lYXI7IH0KLSAgICBkb3VibGUgZGVwdGhGYXIoKSBjb25zdCB7IHJldHVybiBtX2RlcHRo
RmFyOyB9Ci0gICAgdm9pZCBzZXREZXB0aEZhcihkb3VibGUgZGVwdGhGYXIpIHsgbV9kZXB0aEZh
ciA9IGRlcHRoRmFyOyB9Ci0KLSAgICB1aW50MzJfdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVm
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmKTsKLSAgICB2b2lkIGNhbmNlbEFuaW1h
dGlvbkZyYW1lKHVpbnQzMl90KTsKLQotICAgIHZvaWQgcmVxdWVzdFByZXNlbnQoY29uc3QgVmVj
dG9yPFZSTGF5ZXJJbml0PiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwotICAgIHZvaWQgZXhp
dFByZXNlbnQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0KLSAgICBWZWN0b3I8VlJMYXllcklu
aXQ+IGdldExheWVycygpIGNvbnN0OwotCi0gICAgdm9pZCBzdWJtaXRGcmFtZSgpOwotCi0gICAg
Ly8gVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQKLSAgICB2b2lkIHBsYXRmb3JtRGlzcGxheUNvbm5l
Y3RlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxhdGZvcm1EaXNwbGF5RGlzY29ubmVjdGVkKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlNb3VudGVkKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBwbGF0Zm9ybURpc3BsYXlVbm1vdW50ZWQoKSBvdmVycmlkZTsKLQotICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLXByaXZhdGU6Ci0gICAgVlJEaXNwbGF5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBX
ZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5PiYmKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWUkRpc3BsYXlFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
LSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQotCi0gICAgLy8gQWN0aXZl
RE9NT2JqZWN0Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBzdG9wUHJlc2VudGluZygpOwotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
eyByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7IH0K
LQotICAgIHZvaWQgZGlzcGF0Y2hWUkRpc3BsYXlFdmVudEluRXZlbnRMb29wKGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50TmFtZSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYpOwotCi0g
ICAgV2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4gbV9kaXNwbGF5OwotCi0gICAgUmVmUHRyPFZS
RGlzcGxheUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgLy8gV2UgY291bGQgbGlr
ZWx5IHN0b3JlIGp1c3Qgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nIG9uZXMgYXMgdGhlIHZhbHVl
cyBzaG91bGQgYmUgaWRlbnRpY2FsCi0gICAgLy8gKGV4Y2VwdCB0aGUgc2lnbiBvZiB0aGUgZXll
IHRvIGhlYWQgdHJhbnNmb3JtIG9mZnNldCkuCi0gICAgUmVmUHRyPFZSRXllUGFyYW1ldGVycz4g
bV9sZWZ0RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJFeWVQYXJhbWV0ZXJzPiBtX3JpZ2h0
RXllUGFyYW1ldGVyczsKLSAgICBSZWZQdHI8VlJTdGFnZVBhcmFtZXRlcnM+IG1fc3RhZ2VQYXJh
bWV0ZXJzOwotCi0gICAgU3RyaW5nIG1fZGlzcGxheU5hbWU7Ci0gICAgdWludDMyX3QgbV9kaXNw
bGF5SWQ7Ci0KLSAgICBkb3VibGUgbV9kZXB0aE5lYXIgeyAwLjAxIH07IC8vIERlZmF1bHQgdmFs
dWUgZnJvbSB0aGUgc3BlY3MuCi0gICAgZG91YmxlIG1fZGVwdGhGYXIgeyAxMDAwMCB9OyAvLyBE
ZWZhdWx0IHZhbHVlIGZyb20gdGhlIHNwZWNzLgotCi0gICAgUmVmUHRyPFNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7Ci0KLSAgICBPcHRp
b25hbDxWUkxheWVySW5pdD4gbV9wcmVzZW50aW5nTGF5ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlz
cGxheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhN2RkNGYxYWE2NzFmMmIxMjhjYmI2Y2U3NDQx
Zjk4ZDQzNjljZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXkuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQWN0aXZlRE9NT2JqZWN0
LAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGludGVyZmFjZSBWUkRpc3BsYXkgOiBF
dmVudFRhcmdldCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb25uZWN0ZWQ7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNQcmVzZW50aW5nOwotCi0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZSRGlzcGxheUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7IC8vIEZJ
WE1FOiBbU2FtZU9iamVjdF0KLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlN0YWdlUGFyYW1l
dGVycz8gc3RhZ2VQYXJhbWV0ZXJzOwotCi0gICAgVlJFeWVQYXJhbWV0ZXJzIGdldEV5ZVBhcmFt
ZXRlcnMoVlJFeWUgd2hpY2hFeWUpOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZGlzcGxheUlkOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkaXNw
bGF5TmFtZTsKLQotICAgIGJvb2xlYW4gZ2V0RnJhbWVEYXRhKFZSRnJhbWVEYXRhIGZyYW1lRGF0
YSk7Ci0KLSAgICBbTmV3T2JqZWN0XSBWUlBvc2UgZ2V0UG9zZSgpOwotCi0gICAgdm9pZCByZXNl
dFBvc2UoKTsKLQotICAgIGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOwotICAgIGF0dHJpYnV0
ZSBkb3VibGUgZGVwdGhGYXI7Ci0KLSAgICAvLyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ayBlcXVhdGVzIHRvIEZyYW1lUmVxdWVzdENhbGxiYWNrLgotICAgIGxvbmcgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrIGNhbGxiYWNrKTsKLSAgICB2
b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKLQotICAgIFBy
b21pc2U8dm9pZD4gcmVxdWVzdFByZXNlbnQoc2VxdWVuY2U8VlJMYXllckluaXQ+IGxheWVycyk7
Ci0KLSAgICBQcm9taXNlPHZvaWQ+IGV4aXRQcmVzZW50KCk7Ci0KLSAgICBzZXF1ZW5jZTxWUkxh
eWVySW5pdD4gZ2V0TGF5ZXJzKCk7Ci0KLSAgICB2b2lkIHN1Ym1pdEZyYW1lKCk7Ci19OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjQ5Yjg0MTQzM2Q1YTUwYjYwZjQ4
N2NjZmY1NGEwOWJjZGQ0OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8VlJE
aXNwbGF5Q2FwYWJpbGl0aWVzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWUkRpc3BsYXlD
YXBhYmlsaXRpZXM+IGNyZWF0ZSh1bnNpZ25lZCBjYXBhYmlsaXR5RmxhZ3MpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUkRpc3BsYXlDYXBhYmlsaXRpZXMoY2FwYWJpbGl0
eUZsYWdzKSk7Ci0gICAgfQotCi0gICAgYm9vbCBoYXNQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9uOyB9Ci0gICAgYm9vbCBo
YXNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBWUkRpc3BsYXlDYXBhYmls
aXR5RmxhZ09yaWVudGF0aW9uOyB9Ci0gICAgYm9vbCBoYXNFeHRlcm5hbERpc3BsYXkoKSBjb25z
dCB7IHJldHVybiBtX2ZsYWdzICYgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdFeHRlcm5hbERpc3Bs
YXk7IH0KLSAgICBib29sIGNhblByZXNlbnQoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgVlJE
aXNwbGF5Q2FwYWJpbGl0eUZsYWdQcmVzZW50OyB9Ci0gICAgdW5zaWduZWQgbWF4TGF5ZXJzKCkg
Y29uc3QgeyByZXR1cm4gY2FuUHJlc2VudCgpID8gMSA6IDA7IH0KLQotcHJpdmF0ZToKLSAgICBW
UkRpc3BsYXlDYXBhYmlsaXRpZXModW5zaWduZWQgY2FwYWJpbGl0eUZsYWdzKQotICAgICAgICA6
IG1fZmxhZ3MoY2FwYWJpbGl0eUZsYWdzKQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBt
X2ZsYWdzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmUzZTllZTlkOTY1ZDBkMmU4YWU0Y2VlMmJhM2RhZjAw
YTU5MTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZh
Y2UgVlJEaXNwbGF5Q2FwYWJpbGl0aWVzIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBoYXNQb3NpdGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNPcmllbnRh
dGlvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNFeHRlcm5hbERpc3BsYXk7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY2FuUHJlc2VudDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhMYXllcnM7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDZjMDE3MTc5YzYzNzE2MzVlMTMzODMyYzE2NzNhYmM3NjM3NjIzYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50LmgiCi0KLSNpbmNsdWRlICJWUkRpc3BsYXkuaCIKLSNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChWUkRpc3BsYXlFdmVudCk7Ci0KLVZSRGlzcGxheUV2ZW50OjpW
UkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKLSAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVy
LCBpc1RydXN0ZWQpCi0gICAgLCBtX2Rpc3BsYXkoaW5pdGlhbGl6ZXIuZGlzcGxheSkKLSAgICAs
IG1fcmVhc29uKGluaXRpYWxpemVyLnJlYXNvbikKLXsKLX0KLQotVlJEaXNwbGF5RXZlbnQ6OlZS
RGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIGNvbnN0IFJlZlB0cjxWUkRpc3Bs
YXk+JiBkaXNwbGF5LCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJiByZWFzb24pCi0g
ICAgOiBFdmVudChuYW1lLCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Ok5vKQotICAgICwg
bV9kaXNwbGF5KGRpc3BsYXkpCi0gICAgLCBtX3JlYXNvbihXVEZNb3ZlKHJlYXNvbikpCi17Ci19
Ci0KLVZSRGlzcGxheUV2ZW50Ojp+VlJEaXNwbGF5RXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLUV2ZW50
SW50ZXJmYWNlIFZSRGlzcGxheUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFZSRGlzcGxheUV2ZW50SW50ZXJmYWNlVHlwZTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3Bs
YXlFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTAwMmJmNDU3YzM5OTFhY2MyZDZlNGIw
MTAzNzFlMDYwOTY1YjUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIlZSRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSRGlzcGxheUV2ZW50UmVhc29uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VlJEaXNwbGF5RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewotICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoVlJEaXNwbGF5RXZlbnQpOwotcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlJEaXNw
bGF5RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBSZWZQdHI8VlJE
aXNwbGF5PiYgZGlzcGxheSwgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRSZWFzb24+JiYgcmVhc29u
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQodHlw
ZSwgZGlzcGxheSwgV1RGTW92ZShyZWFzb24pKSk7Ci0gICAgfQotCi0gICAgc3RydWN0IEluaXQg
OiBFdmVudEluaXQgewotICAgICAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5OwotICAgICAg
ICBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4gcmVhc29uOwotICAgIH07Ci0KLSAgICBz
dGF0aWMgUmVmPFZSRGlzcGxheUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6
Ok5vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJEaXNwbGF5RXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgflZS
RGlzcGxheUV2ZW50KCk7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBkaXNwbGF5KCkgY29uc3Qg
eyByZXR1cm4gbV9kaXNwbGF5OyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VlJEaXNwbGF5RXZlbnRS
ZWFzb24+JiByZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3JlYXNvbjsgfQotCi1wcml2YXRlOgot
ICAgIFZSRGlzcGxheUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKLSAgICBWUkRpc3BsYXlFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgUmVmUHRy
PFZSRGlzcGxheT4mLCBPcHRpb25hbDxWUkRpc3BsYXlFdmVudFJlYXNvbj4mJik7Ci0KLSAgICAv
LyBFdmVudAotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICBSZWZQdHI8VlJEaXNwbGF5PiBtX2Rpc3BsYXk7Ci0gICAgT3B0aW9uYWw8VlJE
aXNwbGF5RXZlbnRSZWFzb24+IG1fcmVhc29uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWViNzBiZWUyMjMwZTQ4YjE5ZGQ5YWM0YWNk
ZWE1ODEwYmJlZWIyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheUV2ZW50LmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViVlIsCi1dIGRpY3Rpb25hcnkgVlJEaXNwbGF5RXZlbnRJbml0IDogRXZlbnRJ
bml0IHsKLSAgICByZXF1aXJlZCBWUkRpc3BsYXkgZGlzcGxheTsKLSAgICBWUkRpc3BsYXlFdmVu
dFJlYXNvbiByZWFzb247Ci19OwotCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAg
ICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgVlJEaXNwbGF5RXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpCi1dIGludGVyZmFjZSBWUkRpc3BsYXlFdmVudCA6IEV2ZW50IHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVlJEaXNwbGF5IGRpc3BsYXk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFZS
RGlzcGxheUV2ZW50UmVhc29uPyByZWFzb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXlFdmVudFJlYXNvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YjAzMzZiZTM2NDU3OWJlNGU3MzZiMTk1MDJlNjAxMWEyZjJkNTcyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaAorKysgL2Rldi9udWxsCkBAIC0x
LDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWVudW0gY2xhc3MgVlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgIE1vdW50ZWQsCi0g
ICAgTmF2aWdhdGlvbiwKLSAgICBSZXF1ZXN0ZWQsCi0gICAgVW5tb3VudGVkCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheUV2ZW50UmVhc29uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
dnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYjg0MDM5ZDc0ODg3YWIwNTA0M2ZmYjA0MzRlNmYyN2U5MjA3MmU4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VidnIvVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi1dIGVudW0g
VlJEaXNwbGF5RXZlbnRSZWFzb24gewotICAgICJtb3VudGVkIiwKLSAgICAibmF2aWdhdGlvbiIs
Ci0gICAgInJlcXVlc3RlZCIsCi0gICAgInVubW91bnRlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSRXllLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MmJiN2Y4MDI5
NGM5YjllMzhmYWJiMGUwNmZiOWI5ZTU0YWY4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNl
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBWUkV5ZSB7Ci0gICAgTGVmdCwK
LSAgICBSaWdodAotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ0ZWYw
NjljOTA5ZmI4ZjE1MTgzMzUwM2U4MzdhZTM0NjgxOTNkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLVsKLSAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotXSBlbnVtIFZSRXllIHsKLSAgICAibGVmdCIsCi0g
ICAgInJpZ2h0IgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIv
VlJFeWVQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJFeWVQ
YXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmYTY2MjhjNmU1
ZWYxZmRmNjk2ZGU3MmM5MGRjYzZjMzE4ZmUyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVlJFeWVQYXJhbWV0ZXJzLmgiCi0KLSNpbmNs
dWRlICJWUkZpZWxkT2ZWaWV3LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJh
eUlubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUkV5ZVBhcmFtZXRlcnM6OlZS
RXllUGFyYW1ldGVycyhjb25zdCBGbG9hdFBvaW50M0QmIG9mZnNldCwgY29uc3QgVlJQbGF0Zm9y
bURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyYgZmllbGRPZlZpZXcsIGNvbnN0IFJlbmRlclNpemUm
IHJlbmRlclNpemUpCi0gICAgOiBtX2ZpZWxkT2ZWaWV3KFZSRmllbGRPZlZpZXc6OmNyZWF0ZShm
aWVsZE9mVmlldykpCi0gICAgLCBtX29mZnNldChvZmZzZXQpCi0gICAgLCBtX3JlbmRlclNpemUo
cmVuZGVyU2l6ZSkKLXsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4gVlJFeWVQYXJhbWV0ZXJzOjpv
ZmZzZXQoKSBjb25zdAotewotICAgIGF1dG8gb2Zmc2V0ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Myk7Ci0gICAgZmxvYXQqIG9mZnNldERhdGEgPSBvZmZzZXQtPmRhdGEoKTsKLSAgICBvZmZzZXRE
YXRhWzBdID0gbV9vZmZzZXQueCgpOwotICAgIG9mZnNldERhdGFbMV0gPSBtX29mZnNldC55KCk7
Ci0gICAgb2Zmc2V0RGF0YVsyXSA9IG1fb2Zmc2V0LnooKTsKLSAgICByZXR1cm4gb2Zmc2V0Owot
fQotCi1jb25zdCBWUkZpZWxkT2ZWaWV3JiBWUkV5ZVBhcmFtZXRlcnM6OmZpZWxkT2ZWaWV3KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9maWVsZE9mVmlldzsKLX0KLQotdW5zaWduZWQgVlJFeWVQ
YXJhbWV0ZXJzOjpyZW5kZXJXaWR0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVyU2l6
ZS53aWR0aDsKLX0KLQotdW5zaWduZWQgVlJFeWVQYXJhbWV0ZXJzOjpyZW5kZXJIZWlnaHQoKSBj
b25zdAotewotICAgIHJldHVybiBtX3JlbmRlclNpemUuaGVpZ2h0OwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZS
RXllUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkV5ZVBhcmFt
ZXRlcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMwZDBmYmQ2NTRhMWQxZjE4
OGExZjQzOWQzMDMwODBmY2E2NDgyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVy
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKLSNpbmNsdWRlICJWUkZpZWxkT2ZWaWV3
LmgiCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0ZXJzIDogcHVibGljIFJlZkNv
dW50ZWQ8VlJFeWVQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgUmVuZGVyU2l6ZSA9
IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6UmVuZGVyU2l6ZTsKLQotICAgIHN0YXRpYyBSZWY8VlJF
eWVQYXJhbWV0ZXJzPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZzZXQsIGNvbnN0IFZS
UGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmIGZpZWxkT2ZWaWV3LCBjb25zdCBSZW5k
ZXJTaXplJiByZW5kZXJTaXplKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VlJFeWVQYXJhbWV0ZXJzKG9mZnNldCwgZmllbGRPZlZpZXcsIHJlbmRlclNpemUpKTsKLSAgICB9
Ci0KLSAgICBSZWY8RmxvYXQzMkFycmF5PiBvZmZzZXQoKSBjb25zdDsKLSAgICBjb25zdCBGbG9h
dFBvaW50M0QmIHJhd09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9Ci0KLSAgICBj
b25zdCBWUkZpZWxkT2ZWaWV3JiBmaWVsZE9mVmlldygpIGNvbnN0OwotCi0gICAgdW5zaWduZWQg
cmVuZGVyV2lkdGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCByZW5kZXJIZWlnaHQoKSBjb25zdDsK
LQotcHJpdmF0ZToKLSAgICBWUkV5ZVBhcmFtZXRlcnMoY29uc3QgRmxvYXRQb2ludDNEJiBvZmZz
ZXQsIGNvbnN0IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcmLCBjb25zdCBSZW5k
ZXJTaXplJik7Ci0KLSAgICBSZWY8VlJGaWVsZE9mVmlldz4gbV9maWVsZE9mVmlldzsKLSAgICBG
bG9hdFBvaW50M0QgbV9vZmZzZXQ7Ci0gICAgUmVuZGVyU2l6ZSBtX3JlbmRlclNpemU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnZyL1ZSRXllUGFyYW1ldGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRXllUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNk
ZTk1NWExZWU5NzBmNGM5YzAyZmRhODAwZDlkM2E0YmY0ZDhlYzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2
ci9WUkV5ZVBhcmFtZXRlcnMuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgVlJFeWVQYXJhbWV0ZXJzIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IG9mZnNldDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWUkZpZWxkT2ZWaWV3IGZpZWxkT2ZWaWV3OyAvLyBGSVhNRTogW1NhbWVPYmplY3RdCi0KLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJXaWR0aDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZW5kZXJIZWlnaHQ7Ci19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTBhMzBhOTk3OTBkYTAwNGExNDU5ZTQ1M2JjZDMxMGI1M2VkYzZkMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURp
c3BsYXkuaCIKLQotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSRmllbGRPZlZpZXcgOiBwdWJs
aWMgUmVmQ291bnRlZDxWUkZpZWxkT2ZWaWV3PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxW
UkZpZWxkT2ZWaWV3PiBjcmVhdGUoVlJQbGF0Zm9ybURpc3BsYXlJbmZvOjpGaWVsZE9mVmlldyBm
aWVsZE9mVmlldykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSRmllbGRP
ZlZpZXcoZmllbGRPZlZpZXcpKTsKLSAgICB9Ci0KLSAgICBkb3VibGUgdXBEZWdyZWVzKCkgY29u
c3QgeyByZXR1cm4gbV91cERlZ3JlZXM7IH07Ci0gICAgZG91YmxlIHJpZ2h0RGVncmVlcygpIGNv
bnN0IHsgcmV0dXJuIG1fcmlnaHREZWdyZWVzOyB9OwotICAgIGRvdWJsZSBkb3duRGVncmVlcygp
IGNvbnN0IHsgcmV0dXJuIG1fZG93bkRlZ3JlZXM7IH07Ci0gICAgZG91YmxlIGxlZnREZWdyZWVz
KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0RGVncmVlczsgfTsKLQotcHJpdmF0ZToKLSAgICBWUkZp
ZWxkT2ZWaWV3KFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgZmllbGRPZlZpZXcp
Ci0gICAgICAgIDogbV91cERlZ3JlZXMoZmllbGRPZlZpZXcudXBEZWdyZWVzKQotICAgICAgICAs
IG1fcmlnaHREZWdyZWVzKGZpZWxkT2ZWaWV3LnJpZ2h0RGVncmVlcykKLSAgICAgICAgLCBtX2Rv
d25EZWdyZWVzKGZpZWxkT2ZWaWV3LmRvd25EZWdyZWVzKQotICAgICAgICAsIG1fbGVmdERlZ3Jl
ZXMoZmllbGRPZlZpZXcubGVmdERlZ3JlZXMpCi0gICAgewotICAgIH0KLQotICAgIGRvdWJsZSBt
X3VwRGVncmVlczsKLSAgICBkb3VibGUgbV9yaWdodERlZ3JlZXM7Ci0gICAgZG91YmxlIG1fZG93
bkRlZ3JlZXM7Ci0gICAgZG91YmxlIG1fbGVmdERlZ3JlZXM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmll
bGRPZlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZpZWxkT2ZWaWV3
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y0NDcwZTY0MmIxOWRlMmU1ODA5
OTJmYmUxYzA5OWI2NjcyZjUzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRmllbGRPZlZpZXcuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViVlIsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgVlJGaWVsZE9mVmlldyB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB1cERl
Z3JlZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSByaWdodERlZ3JlZXM7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkb3duRGVncmVlczsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgZG91YmxlIGxlZnREZWdyZWVzOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NWUx
NDk0ZjUwMTNhNWNkYWQwMWU3YmQ4M2EzODYyMDdiMWIwYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9W
UkZyYW1lRGF0YS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSRnJhbWVEYXRhLmgiCi0KLSNpbmNs
dWRlICJWUkV5ZVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgot
I2luY2x1ZGUgIlZSUG9zZS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJ
bmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVlJGcmFtZURhdGE6OlZSRnJhbWVE
YXRhKCkKLSAgICA6IG1fcG9zZShWUlBvc2U6OmNyZWF0ZSgpKQotewotfQotCi1zdGF0aWMgUmVm
PEZsb2F0MzJBcnJheT4gbWF0cml4VG9BcnJheShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4KQotewotICAgIGF1dG8gY29sdW1uTWFqb3JNYXRyaXggPSBtYXRyaXgudG9Db2x1bW5N
YWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoY29sdW1u
TWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpsZWZ0UHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0UHJvamVjdGlvbk1hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZS
RnJhbWVEYXRhOjpsZWZ0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJpeFRv
QXJyYXkobV9sZWZ0Vmlld01hdHJpeCk7Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSRnJhbWVE
YXRhOjpyaWdodFByb2plY3Rpb25NYXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtYXRyaXhU
b0FycmF5KG1fcmlnaHRQcm9qZWN0aW9uTWF0cml4KTsKLX0KLQotUmVmPEZsb2F0MzJBcnJheT4g
VlJGcmFtZURhdGE6OnJpZ2h0Vmlld01hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hdHJp
eFRvQXJyYXkobV9yaWdodFZpZXdNYXRyaXgpOwotfQotCi1jb25zdCBWUlBvc2UmIFZSRnJhbWVE
YXRhOjpwb3NlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wb3NlOwotfQotCi1zdGF0aWMgVHJh
bnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlvbk1hdHJpeEZyb21GaWVsZE9mVmlldyhjb25zdCBW
UkZpZWxkT2ZWaWV3JiBmb3YsIGRvdWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcikKLXsK
LSAgICBkb3VibGUgdXBUYW4gPSB0YW4oZGVnMnJhZChmb3YudXBEZWdyZWVzKCkpKTsKLSAgICBk
b3VibGUgZG93blRhbiA9IHRhbihkZWcycmFkKGZvdi5kb3duRGVncmVlcygpKSk7Ci0gICAgZG91
YmxlIGxlZnRUYW4gPSB0YW4oZGVnMnJhZChmb3YubGVmdERlZ3JlZXMoKSkpOwotICAgIGRvdWJs
ZSByaWdodFRhbiA9IHRhbihkZWcycmFkKGZvdi5yaWdodERlZ3JlZXMoKSkpOwotCi0gICAgZG91
YmxlIHhTY2FsZSA9IDIgLyAobGVmdFRhbiArIHJpZ2h0VGFuKTsKLSAgICBkb3VibGUgeVNjYWxl
ID0gMiAvICh1cFRhbiArIGRvd25UYW4pOwotCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcHJv
amVjdGlvbk1hdHJpeDsKLSAgICBwcm9qZWN0aW9uTWF0cml4LnNldE0xMSh4U2NhbGUpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTIyKHlTY2FsZSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5z
ZXRNMzIoKHVwVGFuIC0gZG93blRhbikgKiB5U2NhbGUgKiAwLjUpOwotICAgIHByb2plY3Rpb25N
YXRyaXguc2V0TTMxKC0oKGxlZnRUYW4gLSByaWdodFRhbikgKiB4U2NhbGUgKiAwLjUpKTsKLSAg
ICBwcm9qZWN0aW9uTWF0cml4LnNldE0zMygoZGVwdGhOZWFyICsgZGVwdGhGYXIpIC8gKGRlcHRo
TmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNMzQoLTEpOwotICAg
IHByb2plY3Rpb25NYXRyaXguc2V0TTQzKCgyICogZGVwdGhGYXIgKiBkZXB0aE5lYXIpIC8gKGRl
cHRoTmVhciAtIGRlcHRoRmFyKSk7Ci0gICAgcHJvamVjdGlvbk1hdHJpeC5zZXRNNDQoMCk7Ci0K
LSAgICByZXR1cm4gcHJvamVjdGlvbk1hdHJpeDsKLX0KLQotLy8gaHR0cDovL3d3dy5ldWNsaWRl
YW5zcGFjZS5jb20vbWF0aHMvZ2VvbWV0cnkvcm90YXRpb25zL2NvbnZlcnNpb25zL3F1YXRlcm5p
b25Ub01hdHJpeC9pbmRleC5odG0KLXN0YXRpYyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByb3RhdGlv
bk1hdHJpeEZyb21RdWF0ZXJuaW9uKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRl
cm5pb24mIHF1YXRlcm5pb24pCi17Ci0gICAgZG91YmxlIG1hZ25pdHVkZSA9IChxdWF0ZXJuaW9u
LnggKiBxdWF0ZXJuaW9uLngpICsgKHF1YXRlcm5pb24ueSAqIHF1YXRlcm5pb24ueSkgKyAocXVh
dGVybmlvbi56ICogcXVhdGVybmlvbi56KSArIChxdWF0ZXJuaW9uLncgKiBxdWF0ZXJuaW9uLncp
OwotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1YXRlcm5pb24gbm9ybWFsaXplZFF1YXRl
cm5pb24ocXVhdGVybmlvbi54IC8gbWFnbml0dWRlLCBxdWF0ZXJuaW9uLnkgLyBtYWduaXR1ZGUs
IHF1YXRlcm5pb24ueiAvIG1hZ25pdHVkZSwgcXVhdGVybmlvbi53IC8gbWFnbml0dWRlKTsKLSAg
ICBkb3VibGUgeDIgPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5p
b24ueDsKLSAgICBkb3VibGUgeTIgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXpl
ZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgejIgPSBub3JtYWxpemVkUXVhdGVybmlvbi56ICog
bm9ybWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgdzIgPSBub3JtYWxpemVkUXVhdGVy
bmlvbi53ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBkb3VibGUgeHkgPSBub3JtYWxp
emVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24ueTsKLSAgICBkb3VibGUgencg
PSBub3JtYWxpemVkUXVhdGVybmlvbi56ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLSAgICBk
b3VibGUgeHogPSBub3JtYWxpemVkUXVhdGVybmlvbi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24u
ejsKLSAgICBkb3VibGUgeXcgPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9ybWFsaXplZFF1
YXRlcm5pb24udzsKLSAgICBkb3VibGUgeXogPSBub3JtYWxpemVkUXVhdGVybmlvbi55ICogbm9y
bWFsaXplZFF1YXRlcm5pb24uejsKLSAgICBkb3VibGUgeHcgPSBub3JtYWxpemVkUXVhdGVybmlv
bi54ICogbm9ybWFsaXplZFF1YXRlcm5pb24udzsKLQotICAgIHJldHVybiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgKLSAgICAgICAgeDIgLSB5MiAtIHoyICsgdzIsIDIuMCAqICh4eSAtIHp3KSwgMi4w
ICogKHh6ICsgeXcpLCAwLAotICAgICAgICAyLjAgKiAoeHkgKyB6dyksIC14MiArIHkyIC0gejIg
KyB3MiwgMi4wICogKHl6IC0geHcpLCAwLAotICAgICAgICAyLjAgKiAoeHogLSB5dyksIDIuMCAq
ICh5eiArIHh3KSwgLXgyIC0geTIgKyB6MiArIHcyLCAwLAotICAgICAgICAwLCAwLCAwLCAxKTsK
LX0KLQotc3RhdGljIHZvaWQgYXBwbHlIZWFkVG9FeWVUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgY29uc3QgRmxvYXRQb2ludDNEJiB0cmFuc2xhdGlvbikKLXsKLSAgICBt
YXRyaXguc2V0TTQxKG1hdHJpeC5tNDEoKSAtIHRyYW5zbGF0aW9uLngoKSk7Ci0gICAgbWF0cml4
LnNldE00MihtYXRyaXgubTQyKCkgLSB0cmFuc2xhdGlvbi55KCkpOwotICAgIG1hdHJpeC5zZXRN
NDMobWF0cml4Lm00MygpIC0gdHJhbnNsYXRpb24ueigpKTsKLX0KLQotdm9pZCBWUkZyYW1lRGF0
YTo6dXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5mbywgY29u
c3QgVlJFeWVQYXJhbWV0ZXJzJiBsZWZ0RXllLCBjb25zdCBWUkV5ZVBhcmFtZXRlcnMmIHJpZ2h0
RXllLCBkb3VibGUgZGVwdGhOZWFyLCBkb3VibGUgZGVwdGhGYXIpCi17Ci0gICAgbV9sZWZ0UHJv
amVjdGlvbk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcobGVmdEV5ZS5m
aWVsZE9mVmlldygpLCBkZXB0aE5lYXIsIGRlcHRoRmFyKTsKLSAgICBtX3JpZ2h0UHJvamVjdGlv
bk1hdHJpeCA9IHByb2plY3Rpb25NYXRyaXhGcm9tRmllbGRPZlZpZXcocmlnaHRFeWUuZmllbGRP
ZlZpZXcoKSwgZGVwdGhOZWFyLCBkZXB0aEZhcik7Ci0KLSAgICBtX3RpbWVzdGFtcCA9IHRyYWNr
aW5nSW5mby50aW1lc3RhbXA7Ci0gICAgbV9wb3NlLT51cGRhdGUodHJhY2tpbmdJbmZvKTsKLQot
ICAgIGF1dG8gcm90YXRpb25NYXRyaXggPSByb3RhdGlvbk1hdHJpeEZyb21RdWF0ZXJuaW9uKHRy
YWNraW5nSW5mby5vcmllbnRhdGlvbi52YWx1ZU9yKFZSUGxhdGZvcm1UcmFja2luZ0luZm86OlF1
YXRlcm5pb24oMCwgMCwgMCwgMSkpKTsKLSAgICBGbG9hdFBvaW50M0QgcG9zaXRpb24gPSB0cmFj
a2luZ0luZm8ucG9zaXRpb24udmFsdWVPcihGbG9hdFBvaW50M0QoMCwgMCwgMCkpOwotICAgIHJv
dGF0aW9uTWF0cml4LnRyYW5zbGF0ZTNkKC1wb3NpdGlvbi54KCksIC1wb3NpdGlvbi55KCksIC1w
b3NpdGlvbi56KCkpOwotCi0gICAgbV9sZWZ0Vmlld01hdHJpeCA9IHJvdGF0aW9uTWF0cml4Owot
ICAgIGFwcGx5SGVhZFRvRXllVHJhbnNmb3JtKG1fbGVmdFZpZXdNYXRyaXgsIGxlZnRFeWUucmF3
T2Zmc2V0KCkpOwotCi0gICAgbV9yaWdodFZpZXdNYXRyaXggPSByb3RhdGlvbk1hdHJpeDsKLSAg
ICBhcHBseUhlYWRUb0V5ZVRyYW5zZm9ybShtX3JpZ2h0Vmlld01hdHJpeCwgcmlnaHRFeWUucmF3
T2Zmc2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVmM2JjN2FiNmE1ZGMxNjBlZjA3MDM4MmExMzUwMjY5NTk1NTE5NDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUkZyYW1lRGF0YS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgVlJFeWVQYXJhbWV0
ZXJzOwotY2xhc3MgVlJQb3NlOwotc3RydWN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm87Ci0KLWNs
YXNzIFZSRnJhbWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8VlJGcmFtZURhdGE+IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFZSRnJhbWVEYXRhPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVlJGcmFtZURhdGEpOwotICAgIH0KLQotICAgIGRvdWJsZSB0
aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotCi0gICAgUmVmPEZsb2F0
MzJBcnJheT4gbGVmdFByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKLSAgICBSZWY8RmxvYXQzMkFy
cmF5PiBsZWZ0Vmlld01hdHJpeCgpIGNvbnN0OwotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmln
aHRQcm9qZWN0aW9uTWF0cml4KCkgY29uc3Q7Ci0gICAgUmVmPEZsb2F0MzJBcnJheT4gcmlnaHRW
aWV3TWF0cml4KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBWUlBvc2UmIHBvc2UoKSBjb25zdDsKLQot
ICAgIHZvaWQgdXBkYXRlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mLCBjb25zdCBWUkV5
ZVBhcmFtZXRlcnMmIGxlZnRFeWUsIGNvbnN0IFZSRXllUGFyYW1ldGVycyYgcmlnaHRFeWUsIGRv
dWJsZSBkZXB0aE5lYXIsIGRvdWJsZSBkZXB0aEZhcik7Ci0KLXByaXZhdGU6Ci0gICAgVlJGcmFt
ZURhdGEoKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcCB7IDAgfTsKLSAgICBSZWY8VlJQb3Nl
PiBtX3Bvc2U7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9sZWZ0UHJvamVjdGlvbk1hdHJp
eDsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3JpZ2h0UHJvamVjdGlvbk1hdHJpeDsKLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2xlZnRWaWV3TWF0cml4OwotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fcmlnaHRWaWV3TWF0cml4OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkZyYW1lRGF0YS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRhNGJkMjg2ZmJjNmYwZGM5MGE1N2M1ZDFkZTNmNTkz
Njg0NGVkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRnJhbWVEYXRhLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLXR5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNU
aW1lU3RhbXA7Ci0KLVsKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYlZSLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgQ29uc3RydWN0b3IKLV0gaW50ZXJmYWNlIFZSRnJhbWVE
YXRhIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lc3Rh
bXA7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IGxlZnRQcm9qZWN0aW9u
TWF0cml4OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbGVmdFZpZXdNYXRy
aXg7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0UHJvamVjdGlv
bk1hdHJpeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHJpZ2h0Vmlld01h
dHJpeDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWUlBvc2UgcG9zZTsKLX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSTGF5ZXJJbml0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgzMzMxM2Y4ODY0NWI1ZWYyZmQ4MmIyZTAyOGExZDRjMjUxNDY4YWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFZSTGF5ZXJJbml0IHsKLSAgICBSZWZQdHI8
SFRNTENhbnZhc0VsZW1lbnQ+IHNvdXJjZTsKLSAgICBWZWN0b3I8ZmxvYXQ+IGxlZnRCb3VuZHM7
Ci0gICAgVmVjdG9yPGZsb2F0PiByaWdodEJvdW5kczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJMYXllcklu
aXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZTdkNjgwNjExZTlhMTgxZmFmODJmYzUwOTc5
NWRjNGZlY2MwZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkxheWVySW5pdC5pZGwKKysrIC9kZXYv
bnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEZJWE1FOiB0eXBlZGVmIChI
VE1MQ2FudmFzRWxlbWVudCBvciBPZmZzY3JlZW5DYW52YXMpIFZSU291cmNlOwotdHlwZWRlZiBI
VE1MQ2FudmFzRWxlbWVudCBWUlNvdXJjZTsKLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
VlIsCi0gICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLV0gZGljdGlvbmFyeSBWUkxheWVySW5pdCB7
Ci0gICAgVlJTb3VyY2U/IHNvdXJjZSA9IG51bGw7Ci0KLSAgICBzZXF1ZW5jZTxmbG9hdD4gbGVm
dEJvdW5kcyA9IFsgXTsKLSAgICBzZXF1ZW5jZTxmbG9hdD4gcmlnaHRCb3VuZHMgPSBbIF07Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5OWFmYzE0Mzk5M2Y3NzQ3MzI0Mjk4ZjI0NTkxN2UxZGRjMTFkNGVhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUlBvc2UuaCIK
LQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG9wdGlvbmFsRmxv
YXQzVG9KU0NBcnJheShjb25zdCBPcHRpb25hbDxWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9h
dDM+JiBkYXRhKQotewotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUoZGF0YS0+ZGF0YSwgMyk7Ci19Ci0KLVJl
ZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6cG9zaXRpb24oKSBjb25zdAotewotICAgIGlmICgh
bV90cmFja2luZ0luZm8ucG9zaXRpb24pCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
YXV0byYgcG9zaXRpb24gPSAqbV90cmFja2luZ0luZm8ucG9zaXRpb247Ci0gICAgZmxvYXQgcG9z
aXRpb25EYXRhWzNdID0geyBwb3NpdGlvbi54KCksIHBvc2l0aW9uLnkoKSwgcG9zaXRpb24ueigp
IH07Ci0gICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHBvc2l0aW9uRGF0YSwgMyk7Ci19
Ci0KLVJlZlB0cjxGbG9hdDMyQXJyYXk+IFZSUG9zZTo6bGluZWFyVmVsb2NpdHkoKSBjb25zdAot
ewotICAgIHJldHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8ubGlu
ZWFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6OmxpbmVhckFj
Y2VsZXJhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9KU0NBcnJh
eShtX3RyYWNraW5nSW5mby5saW5lYXJBY2NlbGVyYXRpb24pOwotfQotCi1SZWZQdHI8RmxvYXQz
MkFycmF5PiBWUlBvc2U6Om9yaWVudGF0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fdHJhY2tp
bmdJbmZvLm9yaWVudGF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8m
IG9yaWVudGF0aW9uID0gKm1fdHJhY2tpbmdJbmZvLm9yaWVudGF0aW9uOwotICAgIGZsb2F0IG9y
aWVudGF0aW9uRGF0YVs0XSA9IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50
YXRpb24ueiwgb3JpZW50YXRpb24udyB9OwotICAgIHJldHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0
ZShvcmllbnRhdGlvbkRhdGEsIDQpOwotfQotCi1SZWZQdHI8RmxvYXQzMkFycmF5PiBWUlBvc2U6
OmFuZ3VsYXJWZWxvY2l0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG9wdGlvbmFsRmxvYXQzVG9K
U0NBcnJheShtX3RyYWNraW5nSW5mby5hbmd1bGFyVmVsb2NpdHkpOwotfQotCi1SZWZQdHI8Rmxv
YXQzMkFycmF5PiBWUlBvc2U6OmFuZ3VsYXJBY2NlbGVyYXRpb24oKSBjb25zdAotewotICAgIHJl
dHVybiBvcHRpb25hbEZsb2F0M1RvSlNDQXJyYXkobV90cmFja2luZ0luZm8uYW5ndWxhckFjY2Vs
ZXJhdGlvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnZyL1ZSUG9zZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzIzYzgzNzZj
ZTFhZjc3Njc1OTdkMTliOTJmZWE1YmU5N2Y4ZmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJQb3Nl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxWUlBv
c2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZSUG9zZT4gY3JlYXRlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZSUG9zZSk7Ci0gICAgfQotCi0gICAgc3RhdGlj
IFJlZjxWUlBvc2U+IGNyZWF0ZShjb25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2lu
Z0luZm8pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlBvc2UodHJhY2tp
bmdJbmZvKSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gcG9zaXRpb24oKSBj
b25zdDsKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBsaW5lYXJWZWxvY2l0eSgpIGNvbnN0Owot
ICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGxpbmVhckFjY2VsZXJhdGlvbigpIGNvbnN0OwotCi0g
ICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gb3JpZW50YXRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8
RmxvYXQzMkFycmF5PiBhbmd1bGFyVmVsb2NpdHkoKSBjb25zdDsKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiBhbmd1bGFyQWNjZWxlcmF0aW9uKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHVwZGF0ZShj
b25zdCBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvJiB0cmFja2luZ0luZm8pIHsgbV90cmFja2luZ0lu
Zm8gPSB0cmFja2luZ0luZm87IH07Ci0KLXByaXZhdGU6Ci0gICAgVlJQb3NlKCkgPSBkZWZhdWx0
OwotCi0gICAgVlJQb3NlKGNvbnN0IFZSUGxhdGZvcm1UcmFja2luZ0luZm8mIHRyYWNraW5nSW5m
bykKLSAgICAgICAgOiBtX3RyYWNraW5nSW5mbyh0cmFja2luZ0luZm8pCi0gICAgewotICAgIH0K
LQotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gbV90cmFja2luZ0luZm87Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSUG9zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSUG9zZS5pZGwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNWEwYmU1Yjk3NjFmYzdkM2I3NWM1NzY2
NDY4YmU5MzYyNTk3NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlBvc2UuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotWwotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKLV0gaW50ZXJmYWNlIFZSUG9zZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZs
b2F0MzJBcnJheT8gcG9zaXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gbGluZWFyVmVsb2NpdHk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8g
bGluZWFyQWNjZWxlcmF0aW9uOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJh
eT8gb3JpZW50YXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheT8gYW5n
dWxhclZlbG9jaXR5OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXk/IGFuZ3Vs
YXJBY2NlbGVyYXRpb247Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZl
NTczMjZjNTI0YTU3Njk3M2JjM2I2YTdjODY0ZDgxODgyMjU3My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZy
L1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSU3RhZ2VQYXJhbWV0
ZXJzLmgiCi0KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1WUlN0YWdlUGFyYW1ldGVyczo6VlJTdGFnZVBhcmFtZXRl
cnMoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFNpemUmIHBsYXlBcmVhQm91bmRzKQotICAgIDogbV9wbGF5QXJlYUJvdW5k
cyhwbGF5QXJlYUJvdW5kcykKLSAgICAsIG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oc2l0
dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0pCi17Ci19Ci0KLVJlZjxGbG9hdDMyQXJyYXk+IFZSU3Rh
Z2VQYXJhbWV0ZXJzOjpzaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAg
YXV0byBjb2x1bW5NYWpvck1hdHJpeCA9IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0udG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKLSAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUo
Y29sdW1uTWFqb3JNYXRyaXguZGF0YSgpLCAxNik7Ci19Ci0KLWZsb2F0IFZSU3RhZ2VQYXJhbWV0
ZXJzOjpzaXplWCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheUFyZWFCb3VuZHMud2lkdGgo
KTsKLX0KLQotZmxvYXQgVlJTdGFnZVBhcmFtZXRlcnM6OnNpemVaKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wbGF5QXJlYUJvdW5kcy5oZWlnaHQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVy
cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE5NmI3YWMzNzUzZjc3MjQ5ODRl
OTJkZDNmOGExNDViZDkxOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKLQotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlN0YWdlUGFyYW1ldGVycyA6IHB1YmxpYyBSZWZD
b3VudGVkPFZSU3RhZ2VQYXJhbWV0ZXJzPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxW
UlN0YWdlUGFyYW1ldGVycz4gY3JlYXRlKGNvbnN0IE9wdGlvbmFsPFRyYW5zZm9ybWF0aW9uTWF0
cml4PiYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IE9wdGlvbmFsPEZsb2F0U2l6
ZT4mIHBsYXlBcmVhQm91bmRzKQotICAgIHsKLSAgICAgICAgaWYgKCFzaXR0aW5nVG9TdGFuZGlu
Z1RyYW5zZm9ybSB8fCAhcGxheUFyZWFCb3VuZHMpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWUlN0YWdlUGFyYW1ldGVycyhzaXR0
aW5nVG9TdGFuZGluZ1RyYW5zZm9ybS52YWx1ZSgpLCBwbGF5QXJlYUJvdW5kcy52YWx1ZSgpKSk7
Ci0gICAgfQotCi0gICAgUmVmPEZsb2F0MzJBcnJheT4gc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zv
cm0oKSBjb25zdDsKLQotICAgIGZsb2F0IHNpemVYKCkgY29uc3Q7Ci0gICAgZmxvYXQgc2l6ZVoo
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBWUlN0YWdlUGFyYW1ldGVycyhjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0U2l6
ZSYgcGxheUFyZWFCb3VuZHMpOwotCi0gICAgRmxvYXRTaXplIG1fcGxheUFyZWFCb3VuZHM7Ci0g
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zaXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIzNzMxZTdiMDM3NzEwNWQwZjkyYmZjYzdlZDEzNDUwOWVkNWU4ZWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ2ci9WUlN0YWdlUGFyYW1ldGVycy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1XZWJWUiwKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBWUlN0YWdlUGFyYW1ldGVycyB7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBzaXR0aW5nVG9TdGFuZGluZ1RyYW5z
Zm9ybTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzaXplWDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgc2l6ZVo7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmNjc1ODAxNGFi
NzI2N2IzZGM4MWUyZWYzZGEyMThlZTdkNzMwZjJkLi44YzY3NDRlZWYxZTU2MjMzYzdmYWVhYmRm
ZjFhZjE4MmUxYzE1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDEwLDE0ICs0MTAsNiBAQCBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVy
ZVZpZXcuY3BwCiBNb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuY3BwCiAKLU1vZHVs
ZXMvd2VidnIvTmF2aWdhdG9yV2ViVlIuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxheS5jcHAK
LU1vZHVsZXMvd2VidnIvVlJEaXNwbGF5RXZlbnQuY3BwCi1Nb2R1bGVzL3dlYnZyL1ZSRXllUGFy
YW1ldGVycy5jcHAKLU1vZHVsZXMvd2VidnIvVlJGcmFtZURhdGEuY3BwCi1Nb2R1bGVzL3dlYnZy
L1ZSUG9zZS5jcHAKLU1vZHVsZXMvd2VidnIvVlJTdGFnZVBhcmFtZXRlcnMuY3BwCi0KIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApA
QCAtMjA2OCwxMSArMjA2MCw2IEBAIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAogcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCiAKLXBsYXRmb3JtL3ZyL1ZSTWFuYWdlci5jcHAKLXBsYXRm
b3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSLmNwcAotcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2Vy
T3BlblZSLmNwcAotCiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAogcGx1Z2lucy9ET01NaW1lVHlw
ZUFycmF5LmNwcAogcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBAIC0yODIwLDcgKzI4MDcsNiBAQCBK
U0RPTVdpbmRvd0ZldGNoLmNwcAogSlNET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBKU0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCi1K
U0RPTVdpbmRvd1dlYlZSLmNwcAogSlNEYXRhVHJhbnNmZXIuY3BwCiBKU0RhdGFUcmFuc2Zlckl0
ZW0uY3BwCiBKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtMzExNCw3ICszMTAwLDYgQEAg
SlNOYXZpZ2F0b3JTaGFyZS5jcHAKIEpTU2hhcmVEYXRhLmNwcAogSlNOYXZpZ2F0b3JTZXJ2aWNl
V29ya2VyLmNwcAogSlNOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwCi1KU05hdmlnYXRvcldlYlZSLmNw
cAogSlNOb2RlLmNwcAogSlNOb2RlRmlsdGVyLmNwcAogSlNOb2RlSXRlcmF0b3IuY3BwCkBAIC0z
NDUxLDE3ICszNDM2LDYgQEAgSlNVSUV2ZW50LmNwcAogSlNVSUV2ZW50SW5pdC5jcHAKIEpTVVJM
U2VhcmNoUGFyYW1zLmNwcAogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwCi1KU1ZS
RGlzcGxheS5jcHAKLUpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcAotSlNWUkRpc3BsYXlFdmVu
dC5jcHAKLUpTVlJEaXNwbGF5RXZlbnRSZWFzb24uY3BwCi1KU1ZSRXllLmNwcAotSlNWUkV5ZVBh
cmFtZXRlcnMuY3BwCi1KU1ZSRmllbGRPZlZpZXcuY3BwCi1KU1ZSRnJhbWVEYXRhLmNwcAotSlNW
UkxheWVySW5pdC5jcHAKLUpTVlJQb3NlLmNwcAotSlNWUlN0YWdlUGFyYW1ldGVycy5jcHAKIEpT
VmFsaWRpdHlTdGF0ZS5jcHAKIEpTVmlkZW9Db25maWd1cmF0aW9uLmNwcAogSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5jcHAKQEAgLTM1MzksMTEgKzM1MTMsOCBAQCBKU1hTTFRQcm9jZXNzb3IuY3Bw
CiBKU0dhbWVwYWQuY3BwCiBKU0dhbWVwYWRCdXR0b24uY3BwCiBKU0dhbWVwYWRFdmVudC5jcHAK
LUpTR2FtZXBhZFdlYlZSLmNwcAogSlNOYXZpZ2F0b3JHYW1lcGFkLmNwcAogCi1Nb2R1bGVzL3dl
YnZyL0dhbWVwYWRXZWJWUi5jcHAKLQogI2VuZGlmCiAKICNpZiBFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGMzODZmNzMyNWQ2MWQzNjM2NDkzMzQwYjY1MmY0YTJmMTM5ZjVlMmMu
LjUzZGI4MmNiYmVlMWVkZTU5NjZkZjYxNDE1ZDg5OThmMTE4MmY1NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NDksOSAr
NDc0OSw2IEBACiAJCUUxODA4MTE3MTZGQ0Y5Q0IwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE4MDgxMTUxNkZDRjlDQjAwQjgwRDA3IC8qIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTE4MjU2OTAw
RUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlLmggKi87IH07CiAJCUUxODUzNjg0MUY0RTQ4MTQwMEZFMDkx
QiAvKiBXZWJBcmNoaXZlUmVzb3VyY2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg1MzY4MTFGNEU0NzI3MDBG
RTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5oICovOyB9
OwotCQlFMTg4MjM2NDIwMzFGNTcxMDBCNDJERjMgLyogVlJNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg4MjM2MzIwMzFGNTVEMDBCNDJE
RjMgLyogVlJNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJRTE4ODIzNjUyMDMxRjU3RjAwQjQyREYzIC8qIFZSUGxhdGZvcm1EaXNwbGF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg4MjM2
MDIwMzFGNTVBMDBCNDJERjMgLyogVlJQbGF0Zm9ybURpc3BsYXkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMTg4MjM2NjIwMzFGNTk0MDBCNDJE
RjMgLyogVlJQbGF0Zm9ybU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxODgyMzYxMjAzMUY1NUIwMEI0MkRGMyAvKiBWUlBsYXRmb3JtTWFu
YWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUxOEMzNTQ0MUY3MTk3MEMwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJj
ZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxOEMzNTQxMUY3MTk2Q0QwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJj
ZUhhbmRsZXIuaCAqLzsgfTsKIAkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdy
YXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MTk3MjcxNjE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUx
IC8qIENyeXB0b0tleVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNjgzOCw2MyArNjgzNSw2IEBACiAJCTJEQUYzNDNBMUVBN0UwRjEwMDM4
MkNEMyAvKiBDb25zdGFudFByb3BlcnR5TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnN0YW50UHJvcGVydHlNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREFGMzQzQjFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1h
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdGFudFByb3BlcnR5TWFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDVBNzI2MUVCRUU0N0QwMDlCQTU5
NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb21wb3NpdGlvblVuZGVybGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNBRDFGNTc0N0EzMDBEMUEzNjUgLyogRE9NV2luZG93V2ViVlIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERPTVdpbmRvd1dlYlZSLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMkRERTFDQUUxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVwYWRXZWJWUi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHYW1lcGFkV2ViVlIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNBRjFGNTc0N0EzMDBEMUEzNjUgLyogR2Ft
ZXBhZFdlYlZSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRXZWJW
Ui5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCMDFGNTc0N0EzMDBEMUEz
NjUgLyogR2FtZXBhZFdlYlZSLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHYW1lcGFkV2Vi
VlIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNCMTFGNTc0N0EzMDBE
MUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmF2aWdhdG9yV2ViVlIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNCMjFGNTc0N0EzMDBEMUEzNjUgLyogTmF2aWdhdG9yV2ViVlIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yV2ViVlIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjMxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZS
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JXZWJWUi5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0I0MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3Bs
YXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlJEaXNwbGF5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjUxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkRpc3Bs
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjYxRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRGlzcGxheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQjgxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDQjkxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkExRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlz
cGxheUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSRGlz
cGxheUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkIxRjU3
NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZSRGlzcGxheUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTJEREUxQ0JDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVlJEaXNwbGF5RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNCRDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJEaXNwbGF5RXZlbnRSZWFzb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQkUxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRGlzcGxheUV2ZW50UmVhc29uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkRp
c3BsYXlFdmVudFJlYXNvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUx
Q0JGMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWUkV5ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNDMDFG
NTc0N0EzMDBEMUEzNjUgLyogVlJFeWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZSRXll
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzExRjU3NDdBMzAwRDFB
MzY1IC8qIFZSRXllUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWUkV5ZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyRERFMUNDMjFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0ZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZSRXllUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyRERFMUNDMzFGNTc0N0EzMDBEMUEzNjUgLyogVlJFeWVQYXJhbWV0
ZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkV5ZVBhcmFtZXRlcnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNDNTFGNTc0N0EzMDBEMUEzNjUgLyogVlJG
aWVsZE9mVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUkZpZWxkT2ZW
aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0M2MUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkZpZWxkT2ZWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkZpZWxk
T2ZWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQzcxRjU3NDdB
MzAwRDFBMzY1IC8qIFZSRnJhbWVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZSRnJhbWVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MkRERTFDQzgxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRnJhbWVEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZSRnJhbWVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTJEREUxQ0M5MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkZyYW1lRGF0YS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVlJGcmFtZURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNDQTFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlJMYXllckluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0IxRjU3NDdBMzAwRDFBMzY1IC8qIFZSTGF5ZXJJbml0Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWUkxheWVySW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTJEREUxQ0NDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlJQb3NlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0QxRjU3NDdBMzAwRDFBMzY1IC8qIFZSUG9zZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUlBvc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDQ0UxRjU3NDdBMzAwRDFBMzY1IC8qIFZSUG9zZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVlJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMkRERTFDQ0YxRjU3NDdBMzAwRDFBMzY1IC8qIFZSU3RhZ2VQYXJhbWV0ZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSU3RhZ2VQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRDAxRjU3NDdBMzAwRDFB
MzY1IC8qIFZSU3RhZ2VQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZSU3RhZ2VQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJE
REUxQ0QxMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVlJTdGFnZVBhcmFtZXRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyRERFMUNERDFGNTc0QUFCMDBEMUEzNjUgLyogSlNWUkRpc3BsYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRpc3BsYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNERTFGNTc0QUFCMDBEMUEzNjUgLyogSlNW
UkRpc3BsYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUkRpc3BsYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDREYxRjU3NEFEMTAwRDFBMzY1
IC8qIEpTVlJGaWVsZE9mVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1ZSRmllbGRPZlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RERFMUNFMDFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJGaWVsZE9mVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRERFMUNFNTFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlDYXBh
YmlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRp
c3BsYXlDYXBhYmlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERF
MUNFNjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRTcxRjU3NEJGRjAwRDFBMzY1IC8qIEpT
VlJEaXNwbGF5RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNWUkRpc3BsYXlFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUx
Q0U4MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMkRERTFDRTkxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRS
ZWFzb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkRpc3Bs
YXlFdmVudFJlYXNvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VB
MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50UmVhc29uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJEaXNwbGF5RXZlbnRSZWFzb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRUIxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWUkV5ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VDMUY1NzRCRkYwMEQxQTM2NSAvKiBK
U1ZSRXllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJFeWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRERTFDRUQxRjU3NEJGRjAwRDFBMzY1IC8qIEpT
VlJFeWVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTVlJFeWVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRE
RTFDRUUxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlJFeWVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTJEREUxQ0VGMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRnJhbWVEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVlJGcmFtZURhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNGMDFGNTc0QkZGMDBEMUEz
NjUgLyogSlNWUkZyYW1lRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1ZSRnJhbWVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0YxMUY1
NzRCRkYwMEQxQTM2NSAvKiBKU1ZSTGF5ZXJJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTVlJMYXllckluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRERFMUNGMjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkxheWVySW5pdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZSTGF5ZXJJbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0YzMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSUG9zZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZSUG9zZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEREUxQ0Y0MUY1NzRCRkYwMEQxQTM2NSAvKiBK
U1ZSUG9zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZSUG9zZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRERFMUNGNTFGNTc0QkZGMDBEMUEzNjUgLyog
SlNWUlN0YWdlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1ZSU3RhZ2VQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkRERTFDRjYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWUlN0YWdlUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyREY1MTJDQjFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VSYW5nZVdp
dGhUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjUxMkND
MUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA1MCwxMCArMTQ5OTAsNiBAQAogCQlF
MTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dvcmtlckdsb2JhbFNjb3Bl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4NTM2ODExRjRFNDcy
NzAwRkUwOTFCIC8qIFdlYkFyY2hpdmVSZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTg1MzY4MjFGNEU0NzI3MDBGRTA5MUIg
LyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxODgyMzYwMjAzMUY1NUEwMEI0MkRGMyAv
KiBWUlBsYXRmb3JtRGlzcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
UlBsYXRmb3JtRGlzcGxheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTg4MjM2
MTIwMzFGNTVCMDBCNDJERjMgLyogVlJQbGF0Zm9ybU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVlJQbGF0Zm9ybU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTE4ODIzNjIyMDMxRjU1QzAwQjQyREYzIC8qIFZSTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUk1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlFMTg4MjM2MzIwMzFGNTVEMDBCNDJERjMgLyogVlJNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZSTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThDMzU0MTFGNzE5NkNEMDBGRjYzMkQgLyogV2Vi
QXJjaGl2ZVJlc291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFy
Y2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMThDMzU0MjFGNzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNlV2Vi
UmVzb3VyY2VIYW5kbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291
cmNlV2ViUmVzb3VyY2VIYW5kbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTQxLDcgKzE2ODc3LDYgQEAKIAkJCQlG
REExNUU3QjEyQjAzRTA0MDAzQTU4M0EgLyogV2ViQXVkaW8gKi8sCiAJCQkJNTdEODQ2MkYxRkVB
RkIwNTAwQ0EzNjgyIC8qIFdlYkF1dGhOICovLAogCQkJCTVEQTVFMEY5MTAyQjk1MDQwMDA4OENG
OSAvKiBXZWJTb2NrZXRzICovLAotCQkJCTJEREUxQ0RDMUY1NzRBNTYwMEQxQTM2NSAvKiBXZWJW
UiAqLywKIAkJCQlCQzk4NTQ0MzBDRDNEOUQwMDAwNjlCQzEgLyogV2luZG93ICovLAogCQkJCUE4
M0I3OTIyMENDQjAwRjAwMDBCMDgyNSAvKiBYTUwgKi8sCiAJCQkJQTgzQjc5MEMwQ0NBRkY4MzAw
MEIwODI1IC8qIFhQYXRoICovLApAQCAtMTc4ODQsNzcgKzE3ODE5LDYgQEAKIAkJCXBhdGggPSAi
Z2VzdHVyZS1yZWNvZ25pemVycyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyogd2VidnIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTJEREUxQ0FEMUY1NzQ3QTMwMEQxQTM2NSAvKiBE
T01XaW5kb3dXZWJWUi5pZGwgKi8sCi0JCQkJMkRERTFDQUUxRjU3NDdBMzAwRDFBMzY1IC8qIEdh
bWVwYWRXZWJWUi5jcHAgKi8sCi0JCQkJMkRERTFDQUYxRjU3NDdBMzAwRDFBMzY1IC8qIEdhbWVw
YWRXZWJWUi5oICovLAotCQkJCTJEREUxQ0IwMUY1NzQ3QTMwMEQxQTM2NSAvKiBHYW1lcGFkV2Vi
VlIuaWRsICovLAotCQkJCTJEREUxQ0IxMUY1NzQ3QTMwMEQxQTM2NSAvKiBOYXZpZ2F0b3JXZWJW
Ui5jcHAgKi8sCi0JCQkJMkRERTFDQjIxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZS
LmggKi8sCi0JCQkJMkRERTFDQjMxRjU3NDdBMzAwRDFBMzY1IC8qIE5hdmlnYXRvcldlYlZSLmlk
bCAqLywKLQkJCQkyRERFMUNCNDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5LmNwcCAqLywK
LQkJCQkyRERFMUNCNTFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5LmggKi8sCi0JCQkJMkRE
RTFDQjYxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheS5pZGwgKi8sCi0JCQkJMkRERTFDQjgx
RjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUNhcGFiaWxpdGllcy5oICovLAotCQkJCTJEREUx
Q0I5MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaWRsICovLAotCQkJ
CTJEREUxQ0JBMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkRpc3BsYXlFdmVudC5jcHAgKi8sCi0JCQkJ
MkRERTFDQkIxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmggKi8sCi0JCQkJMkRE
RTFDQkMxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRGlzcGxheUV2ZW50LmlkbCAqLywKLQkJCQkyRERF
MUNCRDFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24uaCAqLywKLQkJCQky
RERFMUNCRTFGNTc0N0EzMDBEMUEzNjUgLyogVlJEaXNwbGF5RXZlbnRSZWFzb24uaWRsICovLAot
CQkJCTJEREUxQ0JGMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5oICovLAotCQkJCTJEREUxQ0Mw
MUY1NzQ3QTMwMEQxQTM2NSAvKiBWUkV5ZS5pZGwgKi8sCi0JCQkJMkRERTFDQzExRjU3NDdBMzAw
RDFBMzY1IC8qIFZSRXllUGFyYW1ldGVycy5jcHAgKi8sCi0JCQkJMkRERTFDQzIxRjU3NDdBMzAw
RDFBMzY1IC8qIFZSRXllUGFyYW1ldGVycy5oICovLAotCQkJCTJEREUxQ0MzMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkV5ZVBhcmFtZXRlcnMuaWRsICovLAotCQkJCTJEREUxQ0M1MUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUkZpZWxkT2ZWaWV3LmggKi8sCi0JCQkJMkRERTFDQzYxRjU3NDdBMzAwRDFBMzY1
IC8qIFZSRmllbGRPZlZpZXcuaWRsICovLAotCQkJCTJEREUxQ0M3MUY1NzQ3QTMwMEQxQTM2NSAv
KiBWUkZyYW1lRGF0YS5jcHAgKi8sCi0JCQkJMkRERTFDQzgxRjU3NDdBMzAwRDFBMzY1IC8qIFZS
RnJhbWVEYXRhLmggKi8sCi0JCQkJMkRERTFDQzkxRjU3NDdBMzAwRDFBMzY1IC8qIFZSRnJhbWVE
YXRhLmlkbCAqLywKLQkJCQkyRERFMUNDQTFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQu
aCAqLywKLQkJCQkyRERFMUNDQjFGNTc0N0EzMDBEMUEzNjUgLyogVlJMYXllckluaXQuaWRsICov
LAotCQkJCTJEREUxQ0NDMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuY3BwICovLAotCQkJCTJE
REUxQ0NEMUY1NzQ3QTMwMEQxQTM2NSAvKiBWUlBvc2UuaCAqLywKLQkJCQkyRERFMUNDRTFGNTc0
N0EzMDBEMUEzNjUgLyogVlJQb3NlLmlkbCAqLywKLQkJCQkyRERFMUNDRjFGNTc0N0EzMDBEMUEz
NjUgLyogVlJTdGFnZVBhcmFtZXRlcnMuY3BwICovLAotCQkJCTJEREUxQ0QwMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5oICovLAotCQkJCTJEREUxQ0QxMUY1NzQ3QTMwMEQx
QTM2NSAvKiBWUlN0YWdlUGFyYW1ldGVycy5pZGwgKi8sCi0JCQkpOwotCQkJcGF0aCA9IHdlYnZy
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJMkRERTFDREMxRjU3NEE1NjAw
RDFBMzY1IC8qIFdlYlZSICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9
ICgKLQkJCQkyRERFMUNERDFGNTc0QUFCMDBEMUEzNjUgLyogSlNWUkRpc3BsYXkuY3BwICovLAot
CQkJCTJEREUxQ0RFMUY1NzRBQUIwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheS5oICovLAotCQkJCTJE
REUxQ0U1MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5jcHAgKi8s
Ci0JCQkJMkRERTFDRTYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmggKi8sCi0JCQkJMkRERTFDRTcxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnQu
Y3BwICovLAotCQkJCTJEREUxQ0U4MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50
LmggKi8sCi0JCQkJMkRERTFDRTkxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRS
ZWFzb24uY3BwICovLAotCQkJCTJEREUxQ0VBMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxh
eUV2ZW50UmVhc29uLmggKi8sCi0JCQkJMkRERTFDRUIxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJF
eWUuY3BwICovLAotCQkJCTJEREUxQ0VDMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllLmggKi8s
Ci0JCQkJMkRERTFDRUQxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJFeWVQYXJhbWV0ZXJzLmNwcCAq
LywKLQkJCQkyRERFMUNFRTFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkV5ZVBhcmFtZXRlcnMuaCAq
LywKLQkJCQkyRERFMUNERjFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmNwcCAq
LywKLQkJCQkyRERFMUNFMDFGNTc0QUQxMDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmggKi8s
Ci0JCQkJMkRERTFDRUYxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJGcmFtZURhdGEuY3BwICovLAot
CQkJCTJEREUxQ0YwMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRnJhbWVEYXRhLmggKi8sCi0JCQkJ
MkRERTFDRjExRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJMYXllckluaXQuY3BwICovLAotCQkJCTJE
REUxQ0YyMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSTGF5ZXJJbml0LmggKi8sCi0JCQkJMkRERTFD
RjMxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJQb3NlLmNwcCAqLywKLQkJCQkyRERFMUNGNDFGNTc0
QkZGMDBEMUEzNjUgLyogSlNWUlBvc2UuaCAqLywKLQkJCQkyRERFMUNGNTFGNTc0QkZGMDBEMUEz
NjUgLyogSlNWUlN0YWdlUGFyYW1ldGVycy5jcHAgKi8sCi0JCQkJMkRERTFDRjYxRjU3NEJGRjAw
RDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCAqLywKLQkJCSk7Ci0JCQluYW1lID0gV2Vi
VlI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQkyRTQzNDYzMTBGNTQ2QTY4
MDBCMEYxQkEgLyogd29ya2VycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yMjM5Nyw3ICsyMjI2MSw2IEBACiAJCQkJOTk2RTU5REExREYwMEQ0NTAwNjYx
MkI5IC8qIHdlYmRyaXZlciAqLywKIAkJCQlEMDBGNTkzRTIxNkVDQzQzMDAwRDcxREIgLyogd2Vi
Z3B1ICovLAogCQkJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovLAot
CQkJCTJEREUxQ0FCMUY1NzQ3NTkwMEQxQTM2NSAvKiB3ZWJ2ciAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gTW9kdWxlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjkxMSwxOSArMjY3
NzQsNiBAQAogCQkJcGF0aCA9IGFsZ29yaXRobXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OwotCQlFMTg4MjM1RjIwMzFGNTBGMDBCNDJERjMgLyogdnIgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUUxODgyMzYyMjAzMUY1NUMwMEI0MkRG
MyAvKiBWUk1hbmFnZXIuY3BwICovLAotCQkJCUUxODgyMzYzMjAzMUY1NUQwMEI0MkRGMyAvKiBW
Uk1hbmFnZXIuaCAqLywKLQkJCQk4RTYyMEU3RTIwRUU1RkUyMDA3QkM1RUYgLyogVlJQbGF0Zm9y
bURpc3BsYXkuY3BwICovLAotCQkJCUUxODgyMzYwMjAzMUY1NUEwMEI0MkRGMyAvKiBWUlBsYXRm
b3JtRGlzcGxheS5oICovLAotCQkJCThFNjIwRTgwMjBFRTVGRkMwMDdCQzVFRiAvKiBWUlBsYXRm
b3JtRGlzcGxheUNsaWVudC5oICovLAotCQkJCUUxODgyMzYxMjAzMUY1NUIwMEI0MkRGMyAvKiBW
UlBsYXRmb3JtTWFuYWdlci5oICovLAotCQkJKTsKLQkJCXBhdGggPSB2cjsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUUxOURBMjlEMTgxOTk1Q0UwMDA4OEJDOCAvKiBrZXlz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTMyOTc1LDEw
ICszMjgyNSw2IEBACiAJCQkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5r
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkE4MDAwMTg5NzM0MTIwMERDRTlENiAvKiBW
aXNpdGVkTGlua1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNCNjBDRDYzNDRFMDBG
QURBNzUgLyogVm9pZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTg4MjM2NDIwMzFG
NTcxMDBCNDJERjMgLyogVlJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTg4MjM2NTIw
MzFGNTdGMDBCNDJERjMgLyogVlJQbGF0Zm9ybURpc3BsYXkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CThFNjIwRTgxMjBFRTYwMjQwMDdCQzVFRiAvKiBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRTE4ODIzNjYyMDMxRjU5NDAwQjQyREYzIC8qIFZSUGxhdGZvcm1N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTIwNTA3QTE4QTQ1ODZCMDA4MDY0N0UgLyog
VlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwMzE4Q0ZCMkRGMDBDNjRCRUYgLyog
VlRUUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwNjE4Q0ZCMkRGMDBDNjRCRUYg
LyogVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggMjI4YzhlOTE3MTc3ZGYxOWZh
NTQyOGY3NWJlOWNiNWU0ZmE5ZTYyNy4uMTIwM2QwNzQxOTY3MDY0ZDMzZjNjYzZiODgxMzFkMWUw
ZThmMDhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtMjIyLDEzICsyMjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oVGV4dFRyYWNrQ3VlKSBcCiAgICAgbWFjcm8oVW5kb0l0ZW0pIFwKICAgICBtYWNybyhV
bmRvTWFuYWdlcikgXAotICAgIG1hY3JvKFZSRGlzcGxheSkgXAotICAgIG1hY3JvKFZSRGlzcGxh
eUNhcGFiaWxpdGllcykgXAotICAgIG1hY3JvKFZSRGlzcGxheUV2ZW50KSBcCi0gICAgbWFjcm8o
VlJFeWVQYXJhbWV0ZXJzKSBcCi0gICAgbWFjcm8oVlJGaWVsZE9mVmlldykgXAotICAgIG1hY3Jv
KFZSRnJhbWVEYXRhKSBcCi0gICAgbWFjcm8oVlJTdGFnZVBhcmFtZXRlcnMpIFwKICAgICBtYWNy
byhWaXN1YWxWaWV3cG9ydCkgXAogICAgIG1hY3JvKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFwK
ICAgICBtYWNybyhXZWJHTFZlcnRleEFycmF5T2JqZWN0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCmluZGV4IDcyYzZjODJjNmE2NzJiNDY4NjM2NTY5OWZkYWRhMGU5OWM3YTE5MDAuLjE1N2Yz
MzFjMWJhNzNjMTBkNWQzMzQ5NmFkMjVmZTY1M2E3YzUxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCkBAIC04Miw3ICs4Miw2IEBAIEdhbWVwYWRFdmVudCBjb25kaXRpb25hbD1HQU1FUEFE
CiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVk
aWFFbmNyeXB0ZWRFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhS2V5TWVz
c2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQotVlJEaXNwbGF5RXZlbnQKIFBv
aW50ZXJFdmVudCBjb25kaXRpb25hbD1QT0lOVEVSX0VWRU5UUwogR1BVVW5jYXB0dXJlZEVycm9y
RXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCBjb25k
aXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgppbmRleCBkNDliMWIwOWJkOTg0OTNhNGYxY2JkZDkyZDRlMTM5NDNkNDQ1
NjIzLi44MWU3Y2M5ZjBiNzY1MDU2MmFhYmZlZmUwNWE1YTNhZDFiYmJiOGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ4LDcgKzQ4LDYgQEAgU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKIFRleHRUcmFj
ayBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVP
X1RSQUNLCiBUZXh0VHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCi1WUkRpc3BsYXkK
IFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBWaXN1YWxWaWV3cG9ydAog
V2ViQW5pbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uIGIv
U291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgppbmRleCAxYTVjMTg5NDhlYzgxMTA5ZjNmNmVk
Nzg2ZDcwZThmZTRkMDIwZDNlLi5iYjI2NzQ0NGYxMWY1MTZhYzhiNmVjMzdhMjM3MDQyYmFhYmU0
MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24KQEAgLTc3MCwyMiArNzcwLDYgQEAKICAgICAgICAgICAg
ICJlbWFpbCI6ICJ3ZWItZXZhbmdlbGlzdEBhcHBsZS5jb20iCiAgICAgICAgIH0KICAgICB9LAot
ICAgIHsKLSAgICAgICAgIm5hbWUiOiAiV2ViVlIiLAotICAgICAgICAic3RhdHVzIjogewotICAg
ICAgICAgICAgInN0YXR1cyI6ICJJbiBEZXZlbG9wbWVudCIsCi0gICAgICAgICAgICAiZW5hYmxl
ZC1ieS1kZWZhdWx0IjogZmFsc2UKLSAgICAgICAgfSwKLSAgICAgICAgInVybCI6ICJodHRwczov
L3czYy5naXRodWIuaW8vd2VidnIvc3BlYy8xLjEvIiwKLSAgICAgICAgImtleXdvcmRzIjogWyJX
ZWJWUiwgVlIiXSwKLSAgICAgICAgImNhdGVnb3J5IjogImh0bWwiLAotICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiQSBKYXZhU2NyaXB0IEFQSSBwcm92aWRpbmcgYWNjZXNzIHRvIFZSIGRldmljZXMg
dG8gYWxsb3cgZGV2ZWxvcGVycyB0byBidWlsZCBjb21mb3J0YWJsZSBWUiBleHBlcmllbmNlcy4i
LAotICAgICAgICAiY29udGFjdCI6IHsKLSAgICAgICAgICAgICJuYW1lIjogIlNlcmdpbyBWaWxs
YXIgU2VuaW4iLAotICAgICAgICAgICAgInR3aXR0ZXIiOiAiQHN2aWxsYXJzZW5pbiIsCi0gICAg
ICAgICAgICAiZW1haWwiOiAic3ZpbGxhckBpZ2FsaWEuY29tIgotICAgICAgICB9Ci0gICAgfSwK
ICAgICB7CiAgICAgICAgICJuYW1lIjogIldvcmtsZXRzIExldmVsIDEiLAogICAgICAgICAic3Rh
dHVzIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApp
bmRleCA2MjEyMTBhYTA1M2VhNTFmOTkyODA4OWFhZDNiM2Y4YTk0NmJkZDc2Li4yYWI3ZjUxNTkw
YjUyMTk4OTcxMTc1ODQ0ZTQ4MGYxNjc0MGFiMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM3LDkgKzEzNyw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9p
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBpbnNwZWN0
b3JBZGRpdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JBZGRpdGlvbnNF
bmFibGVkOyB9CiAKLSAgICB2b2lkIHNldFdlYlZSRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X3dlYlZSRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQotICAgIGJvb2wgd2ViVlJFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJWUkVuYWJsZWQ7IH0KLQogICAgIHZvaWQgc2V0QWNjZXNzaWJpbGl0
eU9iamVjdE1vZGVsRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2FjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGFjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlPYmplY3RNb2Rl
bEVuYWJsZWQ7IH0KIApAQCAtNDMyLDcgKzQyOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
V2ViU29ja2V0RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZmV0Y2hBUElLZWVwQWxpdmVF
bmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX3dlYlZSRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2FjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
cmlhUmVmbGVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2l0cERlYnVnTW9kZSB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY3ZTY1YjE4OWUxODExM2I4MDk3MDAwMjVhMTYzZmIz
MGY0NGVkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUk1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IElnYWxpYSwgUy5M
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
VlJNYW5hZ2VyLmgiCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotI2luY2x1ZGUg
IlZSUGxhdGZvcm1NYW5hZ2VyLmgiCi0KLSNpZiBVU0UoT1BFTlZSKQotI2luY2x1ZGUgIlZSUGxh
dGZvcm1NYW5hZ2VyT3BlblZSLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1W
Uk1hbmFnZXImIFZSTWFuYWdlcjo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VlJNYW5hZ2VyPiBpbnN0YW5jZTsKLSAgICByZXR1cm4gaW5zdGFuY2U7Ci19Ci0KLVZS
TWFuYWdlcjo6VlJNYW5hZ2VyKCkKLXsKLSNpZiBVU0UoT1BFTlZSKQotICAgIG1fcGxhdGZvcm1N
YW5hZ2VyID0gVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmNyZWF0ZSgpOwotI2VuZGlmCi19Ci0K
LVZSTWFuYWdlcjo6flZSTWFuYWdlcigpCi17Ci0gICAgbV9wbGF0Zm9ybU1hbmFnZXIgPSBudWxs
cHRyOwotfQotCi1PcHRpb25hbDxWUk1hbmFnZXI6OlZSRGlzcGxheXNWZWN0b3I+IFZSTWFuYWdl
cjo6Z2V0VlJEaXNwbGF5cygpCi17Ci0gICAgaWYgKCFtX3BsYXRmb3JtTWFuYWdlcikKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGF1dG8gZGlzcGxheXMgPSBtX3BsYXRmb3Jt
TWFuYWdlci0+Z2V0VlJEaXNwbGF5cygpOwotICAgIFZSRGlzcGxheXNIYXNoTWFwIG5ld0Rpc3Bs
YXlzOwotICAgIGZvciAoYXV0byYgZGlzcGxheSA6IGRpc3BsYXlzKSB7Ci0gICAgICAgIEFTU0VS
VChkaXNwbGF5KTsKLSAgICAgICAgbmV3RGlzcGxheXMuYWRkKGRpc3BsYXktPmdldERpc3BsYXlJ
bmZvKCkuZGlzcGxheUlkZW50aWZpZXIoKSwgZGlzcGxheSk7Ci0KLSAgICAgICAgVlJQbGF0Zm9y
bURpc3BsYXlJbmZvIGluZm8gPSBkaXNwbGF5LT5nZXREaXNwbGF5SW5mbygpOwotICAgICAgICBh
dXRvIGl0ZXJhdG9yID0gbV9kaXNwbGF5cy5maW5kKGluZm8uZGlzcGxheUlkZW50aWZpZXIoKSk7
Ci0gICAgICAgIGlmIChpdGVyYXRvciA9PSBtX2Rpc3BsYXlzLmVuZCgpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgZGlzcGxheS0+dXBkYXRlRGlzcGxheUluZm8oKTsKLSAgICAg
ICAgVlJQbGF0Zm9ybURpc3BsYXlJbmZvIG5ld0luZm8gPSBkaXNwbGF5LT5nZXREaXNwbGF5SW5m
bygpOwotICAgICAgICBpZiAoaW5mby5pc0Nvbm5lY3RlZCgpICE9IG5ld0luZm8uaXNDb25uZWN0
ZWQoKSkKLSAgICAgICAgICAgIGRpc3BsYXktPm5vdGlmeVZSUGxhdGZvcm1EaXNwbGF5RXZlbnQo
bmV3SW5mby5pc0Nvbm5lY3RlZCgpID8gVlJQbGF0Zm9ybURpc3BsYXk6OkV2ZW50OjpDb25uZWN0
ZWQgOiBWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6OkRpc2Nvbm5lY3RlZCk7Ci0gICAgICAgIGlm
IChpbmZvLmlzTW91bnRlZCgpICE9IG5ld0luZm8uaXNNb3VudGVkKCkpCi0gICAgICAgICAgICBk
aXNwbGF5LT5ub3RpZnlWUlBsYXRmb3JtRGlzcGxheUV2ZW50KG5ld0luZm8uaXNNb3VudGVkKCkg
PyBWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6Ok1vdW50ZWQgOiBWUlBsYXRmb3JtRGlzcGxheTo6
RXZlbnQ6OlVubW91bnRlZCk7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvJiBpdGVyIDogbV9kaXNw
bGF5cykgewotICAgICAgICBBU1NFUlQoaXRlci52YWx1ZSk7Ci0gICAgICAgIGlmICghbmV3RGlz
cGxheXMuY29udGFpbnMoaXRlci5rZXkpKQotICAgICAgICAgICAgaXRlci52YWx1ZS0+bm90aWZ5
VlJQbGF0Zm9ybURpc3BsYXlFdmVudChWUlBsYXRmb3JtRGlzcGxheTo6RXZlbnQ6OkRpc2Nvbm5l
Y3RlZCk7Ci0gICAgfQotCi0gICAgbV9kaXNwbGF5cyA9IFdURk1vdmUobmV3RGlzcGxheXMpOwot
ICAgIHJldHVybiBkaXNwbGF5czsKLX0KLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdnIvVlJNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkZjNiOWU5MmQ1YzdiYzU2ZTFiNzI0ZTY2YjRiN2Q5MzhiZDBmM2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdnIvVlJNYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3LTIwMTggSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBWUlBsYXRmb3Jt
RGlzcGxheTsKLWNsYXNzIFZSUGxhdGZvcm1NYW5hZ2VyOwotCi1jbGFzcyBWUk1hbmFnZXIgZmlu
YWwgewotICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFZSTWFuYWdlcj47Ci1w
dWJsaWM6Ci0gICAgdXNpbmcgVlJEaXNwbGF5c1ZlY3RvciA9IFZlY3RvcjxXZWFrUHRyPFZSUGxh
dGZvcm1EaXNwbGF5Pj47Ci0KLSAgICB+VlJNYW5hZ2VyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgVlJNYW5hZ2VyJiBzaW5nbGV0b24oKTsKLQotICAgIE9wdGlvbmFsPFZSRGlzcGxh
eXNWZWN0b3I+IGdldFZSRGlzcGxheXMoKTsKLQotcHJpdmF0ZToKLSAgICBWUk1hbmFnZXIoKTsK
LQotICAgIHVzaW5nIFZSRGlzcGxheXNIYXNoTWFwID0gSGFzaE1hcDx1aW50MzJfdCwgV2Vha1B0
cjxWUlBsYXRmb3JtRGlzcGxheT4+OwotICAgIFZSRGlzcGxheXNIYXNoTWFwIG1fZGlzcGxheXM7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1NYW5hZ2VyPiBtX3BsYXRmb3JtTWFuYWdl
cjsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDczMGE3MzRlOTJmMDk3MDQ1MmMwYjBkMTgxMzlmOTIxM2VmNTJjYWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNw
bGF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBWUlBsYXRmb3JtRGlzcGxheTo6
c2V0Q2xpZW50KFZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNTRVJU
KCFjbGllbnQgfHwgIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKLX0KLQotdm9p
ZCBWUlBsYXRmb3JtRGlzcGxheTo6bm90aWZ5VlJQbGF0Zm9ybURpc3BsYXlFdmVudChFdmVudCBl
dmVudCkKLXsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzd2l0
Y2ggKGV2ZW50KSB7Ci0gICAgY2FzZSBFdmVudDo6Q29ubmVjdGVkOgotICAgICAgICBtX2NsaWVu
dC0+cGxhdGZvcm1EaXNwbGF5Q29ubmVjdGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RXZlbnQ6OkRpc2Nvbm5lY3RlZDoKLSAgICAgICAgbV9jbGllbnQtPnBsYXRmb3JtRGlzcGxheURp
c2Nvbm5lY3RlZCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEV2ZW50OjpNb3VudGVkOgot
ICAgICAgICBtX2NsaWVudC0+cGxhdGZvcm1EaXNwbGF5TW91bnRlZCgpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEV2ZW50OjpVbm1vdW50ZWQ6Ci0gICAgICAgIG1fY2xpZW50LT5wbGF0Zm9y
bURpc3BsYXlVbm1vdW50ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURp
c3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkMjRjMmJhZTFiNjE4MzhkZmY3NWZhNTQx
NTY5MjJhNzVmNzE4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEln
YWxpYSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkZsb2F0UG9pbnQzRC5oIgotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCi0j
aW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXlDbGllbnQuaCIKLQotI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdHlwZWRlZiB1bnNpZ25lZCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ3M7Ci0KLWVu
dW0gVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWcgewotICAgIFZSRGlzcGxheUNhcGFiaWxpdHlGbGFn
Tm9uZSA9IDAsCi0gICAgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQb3NpdGlvbiA9IDEgPDwgMSwK
LSAgICBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ09yaWVudGF0aW9uID0gMSA8PCAyLAotICAgIFZS
RGlzcGxheUNhcGFiaWxpdHlGbGFnRXh0ZXJuYWxEaXNwbGF5ID0gMSA8PCAzLAotICAgIFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnUHJlc2VudCA9IDEgPDwgNAotfTsKLQotLyogVGhlIHB1cnBvc2Ug
b2YgdGhpcyBjbGFzcyBpcyB0byBlbmNhcHN1bGF0ZSBhbGwgdGhlIGluZm8gYWJvdXQgdGhlIGRp
c3BsYXkgaW4gYSBzaW5nbGUgY2xhc3MvZGF0YQotICogc3RydWN0dXJlLiBUaGlzIHdheSB3ZSB3
b3VsZG4ndCBoYXZlIHRvIHJlcGxpY2F0ZSBhbGwgdGhlIEFQSSBjYWxscyBvZiBWUkRpc3BsYXkg
aW4KLSAqIFZSUGxhdGZvcm1EaXNwbGF5LiBBbHNvIHRoZSBjbGllbnQgb2YgdGhpcyBBUEkgd291
bGQgb25seSBoYXZlIHRvIGlzc3VlIGEgc2luZ2xlIGNhbGwgdG8gZ2V0IGFsbAotICogdGhlIGlu
Zm8gZnJvbSB0aGUgZGlzcGxheS4gTm90ZSB0aGF0IGl0J3MgZmFpcmx5IHVubGlrZWx5IHRoYXQg
YSBWUiBhcHBsaWNhdGlvbiB3b3VsZCBvbmx5Ci0gKiByZXF1aXJlIGp1c3QgYSBmZXcgcGllY2Vz
IG9mIGluZm9ybWF0aW9uIGZyb20gdGhlIGRldmljZS4KLSovCi1jbGFzcyBWUlBsYXRmb3JtRGlz
cGxheUluZm8gewotcHVibGljOgotICAgIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlzcGxheU5hbWU7IH0KLSAgICB2b2lkIHNldERpc3BsYXlOYW1lKFN0cmlu
ZyYmIGRpc3BsYXlOYW1lKSB7IG1fZGlzcGxheU5hbWUgPSBXVEZNb3ZlKGRpc3BsYXlOYW1lKTsg
fQotCi0gICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb25uZWN0ZWQ7
IH0KLSAgICB2b2lkIHNldElzQ29ubmVjdGVkKGJvb2wgaXNDb25uZWN0ZWQpIHsgbV9pc0Nvbm5l
Y3RlZCA9IGlzQ29ubmVjdGVkOyB9Ci0KLSAgICBib29sIGlzTW91bnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNNb3VudGVkOyB9Ci0gICAgdm9pZCBzZXRJc01vdW50ZWQoYm9vbCBpc01vdW50ZWQp
IHsgbV9pc01vdW50ZWQgPSBpc01vdW50ZWQ7IH0KLQotICAgIGNvbnN0IFZSRGlzcGxheUNhcGFi
aWxpdHlGbGFncyYgY2FwYWJpbGl0eUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXR5
RmxhZ3M7IH0KLSAgICB2b2lkIHNldENhcGFiaWxpdHlGbGFncyhjb25zdCBWUkRpc3BsYXlDYXBh
YmlsaXR5RmxhZ3MmIGZsYWdzKSB7IG1fY2FwYWJpbGl0eUZsYWdzID0gZmxhZ3M7IH0KLQotICAg
IHVpbnQzMl90IGRpc3BsYXlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5SWRl
bnRpZmllcjsgfQotICAgIHZvaWQgc2V0RGlzcGxheUlkZW50aWZpZXIodWludDMyX3QgZGlzcGxh
eUlkZW50aWZpZXIpIHsgbV9kaXNwbGF5SWRlbnRpZmllciA9IGRpc3BsYXlJZGVudGlmaWVyOyB9
Ci0KLSAgICBlbnVtIEV5ZSB7IEV5ZUxlZnQgPSAwLCBFeWVSaWdodCwgTnVtRXllcyB9OwotICAg
IGNvbnN0IEZsb2F0UG9pbnQzRCYgZXllVHJhbnNsYXRpb24oRXllIGV5ZSkgY29uc3QgeyByZXR1
cm4gbV9leWVUcmFuc2xhdGlvbltleWVdOyB9Ci0gICAgdm9pZCBzZXRFeWVUcmFuc2xhdGlvbihF
eWUgZXllLCBjb25zdCBGbG9hdFBvaW50M0QmIHRyYW5zbGF0aW9uKSB7IG1fZXllVHJhbnNsYXRp
b25bZXllXSA9IHRyYW5zbGF0aW9uOyB9Ci0KLSAgICBzdHJ1Y3QgRmllbGRPZlZpZXcgewotICAg
ICAgICBkb3VibGUgdXBEZWdyZWVzOwotICAgICAgICBkb3VibGUgZG93bkRlZ3JlZXM7Ci0gICAg
ICAgIGRvdWJsZSBsZWZ0RGVncmVlczsKLSAgICAgICAgZG91YmxlIHJpZ2h0RGVncmVlczsKLSAg
ICB9OwotICAgIGNvbnN0IEZpZWxkT2ZWaWV3JiBleWVGaWVsZE9mVmlldyhFeWUgZXllKSBjb25z
dCB7IHJldHVybiBtX2V5ZUZpZWxkT2ZWaWV3W2V5ZV07IH0KLSAgICB2b2lkIHNldEV5ZUZpZWxk
T2ZWaWV3KEV5ZSBleWUsIGNvbnN0IEZpZWxkT2ZWaWV3JiBmaWVsZE9mVmlldykgeyBtX2V5ZUZp
ZWxkT2ZWaWV3W2V5ZV0gPSBmaWVsZE9mVmlldzsgfQotCi0gICAgc3RydWN0IFJlbmRlclNpemUg
ewotICAgICAgICB1bnNpZ25lZCB3aWR0aDsKLSAgICAgICAgdW5zaWduZWQgaGVpZ2h0OwotICAg
IH07Ci0gICAgY29uc3QgUmVuZGVyU2l6ZSYgcmVuZGVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVuZGVyU2l6ZTsgfQotICAgIHZvaWQgc2V0UmVuZGVyU2l6ZShjb25zdCBSZW5kZXJTaXplJiBy
ZW5kZXJTaXplKSB7IG1fcmVuZGVyU2l6ZSA9IHJlbmRlclNpemU7IH0KLQotICAgIHZvaWQgc2V0
UGxheUFyZWFCb3VuZHMoY29uc3QgRmxvYXRTaXplJiBwbGF5QXJlYUJvdW5kcykgeyBtX3BsYXlB
cmVhQm91bmRzID0gcGxheUFyZWFCb3VuZHM7IH0KLSAgICBjb25zdCBPcHRpb25hbDxGbG9hdFNp
emU+JiBwbGF5QXJlYUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheUFyZWFCb3VuZHM7IH0K
LQotICAgIHZvaWQgc2V0U2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSkgeyBtX3NpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtID0g
dHJhbnNmb3JtOyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VHJhbnNmb3JtYXRpb25NYXRyaXg+JiBz
aXR0aW5nVG9TdGFuZGluZ1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l0dGluZ1RvU3Rh
bmRpbmdUcmFuc2Zvcm07IH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV9kaXNwbGF5TmFtZTsK
LSAgICBib29sIG1faXNDb25uZWN0ZWQ7Ci0gICAgYm9vbCBtX2lzTW91bnRlZDsKLSAgICBWUkRp
c3BsYXlDYXBhYmlsaXR5RmxhZ3MgbV9jYXBhYmlsaXR5RmxhZ3M7Ci0gICAgdWludDMyX3QgbV9k
aXNwbGF5SWRlbnRpZmllcjsKLQotICAgIEZsb2F0UG9pbnQzRCBtX2V5ZVRyYW5zbGF0aW9uW0V5
ZTo6TnVtRXllc107Ci0KLSAgICBSZW5kZXJTaXplIG1fcmVuZGVyU2l6ZTsKLSAgICBGaWVsZE9m
VmlldyBtX2V5ZUZpZWxkT2ZWaWV3W0V5ZTo6TnVtRXllc107Ci0KLSAgICBPcHRpb25hbDxGbG9h
dFNpemU+IG1fcGxheUFyZWFCb3VuZHM7Ci0gICAgT3B0aW9uYWw8VHJhbnNmb3JtYXRpb25NYXRy
aXg+IG1fc2l0dGluZ1RvU3RhbmRpbmdUcmFuc2Zvcm07Ci19OwotCi1zdHJ1Y3QgVlJQbGF0Zm9y
bVRyYWNraW5nSW5mbyB7Ci0gICAgc3RydWN0IFF1YXRlcm5pb24gewotICAgICAgICBRdWF0ZXJu
aW9uKCkKLSAgICAgICAgICAgIDogeCgwKSwgeSgwKSwgeigwKSwgdygxKSB7IH0KLQotICAgICAg
ICBRdWF0ZXJuaW9uKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpCi0gICAgICAg
ICAgICA6IHgoeCksIHkoeSksIHooeiksIHcodykgeyB9Ci0KLSAgICAgICAgUXVhdGVybmlvbiYg
Y29uanVnYXRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgeCAqPSAtMTsKLSAgICAgICAgICAg
IHkgKj0gLTE7Ci0gICAgICAgICAgICB6ICo9IC0xOwotICAgICAgICAgICAgcmV0dXJuICp0aGlz
OwotICAgICAgICB9Ci0KLSAgICAgICAgUXVhdGVybmlvbiYgb3BlcmF0b3IqKGZsb2F0IGZhY3Rv
cikKLSAgICAgICAgewotICAgICAgICAgICAgeCAqPSBmYWN0b3I7Ci0gICAgICAgICAgICB5ICo9
IGZhY3RvcjsKLSAgICAgICAgICAgIHogKj0gZmFjdG9yOwotICAgICAgICAgICAgdyAqPSBmYWN0
b3I7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgZmxvYXQg
eCwgeSwgeiwgdzsKLSAgICB9OwotCi0gICAgc3RydWN0IEZsb2F0MyB7Ci0gICAgICAgIEZsb2F0
MyhmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKQotICAgICAgICAgICAgOiBkYXRhIHsgYSwgYiwg
YyB9IHsgfQotCi0gICAgICAgIGZsb2F0IGRhdGFbM107Ci0gICAgfTsKLQotICAgIHZvaWQgY2xl
YXIoKQotICAgIHsKLSAgICAgICAgdGltZXN0YW1wID0gMDsKLSAgICAgICAgcG9zaXRpb24gPSBX
VEY6Om51bGxvcHQ7Ci0gICAgICAgIG9yaWVudGF0aW9uID0gV1RGOjpudWxsb3B0OwotICAgICAg
ICBhbmd1bGFyQWNjZWxlcmF0aW9uID0gV1RGOjpudWxsb3B0OwotICAgICAgICBhbmd1bGFyVmVs
b2NpdHkgPSBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIGxpbmVhckFjY2VsZXJhdGlvbiA9IFdURjo6
bnVsbG9wdDsKLSAgICAgICAgbGluZWFyVmVsb2NpdHkgPSBXVEY6Om51bGxvcHQ7Ci0gICAgfQot
Ci0gICAgT3B0aW9uYWw8UXVhdGVybmlvbj4gb3JpZW50YXRpb247Ci0gICAgT3B0aW9uYWw8Rmxv
YXRQb2ludDNEPiBwb3NpdGlvbjsKLSAgICBPcHRpb25hbDxGbG9hdDM+IGFuZ3VsYXJBY2NlbGVy
YXRpb247Ci0gICAgT3B0aW9uYWw8RmxvYXQzPiBhbmd1bGFyVmVsb2NpdHk7Ci0gICAgT3B0aW9u
YWw8RmxvYXQzPiBsaW5lYXJBY2NlbGVyYXRpb247Ci0gICAgT3B0aW9uYWw8RmxvYXQzPiBsaW5l
YXJWZWxvY2l0eTsKLSAgICBkb3VibGUgdGltZXN0YW1wIHsgMCB9OwotfTsKLQotY2xhc3MgVlJQ
bGF0Zm9ybURpc3BsYXkgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIFZSUGxhdGZvcm1EaXNwbGF5SW5mbyBnZXREaXNwbGF5
SW5mbygpID0gMDsKLSAgICB2aXJ0dWFsIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gZ2V0VHJhY2tp
bmdJbmZvKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5SW5mbygpID0gMDsK
LSAgICB2aXJ0dWFsIH5WUlBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKLQotICAgIHZvaWQg
c2V0Q2xpZW50KFZSUGxhdGZvcm1EaXNwbGF5Q2xpZW50Kik7Ci0KLSAgICBlbnVtIGNsYXNzIEV2
ZW50IHsKLSAgICAgICAgQ29ubmVjdGVkLAotICAgICAgICBEaXNjb25uZWN0ZWQsCi0gICAgICAg
IE1vdW50ZWQsCi0gICAgICAgIFVubW91bnRlZCwKLSAgICB9OwotCi0gICAgdm9pZCBub3RpZnlW
UlBsYXRmb3JtRGlzcGxheUV2ZW50KEV2ZW50KTsKLQotcHJpdmF0ZToKLSAgICBWUlBsYXRmb3Jt
RGlzcGxheUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci19OwotCi19OyAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL1ZSUGxhdGZv
cm1EaXNwbGF5Q2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1YTE4OWRj
ODNlYTY4MzMwOGYzYThiMWQxMWY2MzhiN2M3YmYwMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0
Zm9ybURpc3BsYXlDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSUGxhdGZvcm1E
aXNwbGF5Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5WUlBsYXRmb3JtRGlzcGxheUNs
aWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtRGlzcGxheUNvbm5lY3RlZCgp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybURpc3BsYXlEaXNjb25uZWN0ZWQoKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1EaXNwbGF5TW91bnRlZCgpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybURpc3BsYXlVbm1vdW50ZWQoKSB7IH0KLX07Ci0KLX07IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBs
YXRmb3JtTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybU1h
bmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhiMjRlZDBiNjVmZTI5MTQ1
Nzc4ZDFhMzdiZDQ3ZGVmNmZhZWI1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtTWFuYWdl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJWUlBsYXRmb3JtRGlzcGxheS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIFZSRGlzcGxheTsKLQotY2xhc3MgVlJQbGF0Zm9ybU1hbmFnZXIgewotcHVibGljOgot
ICAgIHZpcnR1YWwgVmVjdG9yPFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+PiBnZXRWUkRpc3Bs
YXlzKCkgPSAwOwotICAgIHZpcnR1YWwgflZSUGxhdGZvcm1NYW5hZ2VyKCkgPSBkZWZhdWx0Owot
fTsKLQotfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTY1ODMwMjc2N2Q5YTExN2UwZTgyYjk2ODM1
ZjlmZWJhNDRhN2IxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9w
ZW5WUi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmgiCi0KLSNpZiBV
U0UoT1BFTlZSKQotCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXVpbnQzMl90IFZSUGxhdGZvcm1EaXNwbGF5T3BlblZSOjpzX2Rp
c3BsYXlJZGVudGlmaWVyID0gMDsKLQotVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OlZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSKHZyOjpJVlJTeXN0ZW0qIHN5c3RlbSwgdnI6OklWUkNoYXBlcm9uZSog
Y2hhcGVyb25lLCB2cjo6SVZSQ29tcG9zaXRvciogY29tcG9zaXRvcikKLSAgICA6IG1fc3lzdGVt
KHN5c3RlbSkKLSAgICAsIG1fY2hhcGVyb25lKGNoYXBlcm9uZSkKLSAgICAsIG1fY29tcG9zaXRv
cihjb21wb3NpdG9yKQotewotICAgIG1fZGlzcGxheUluZm8uc2V0RGlzcGxheUlkZW50aWZpZXIo
KytzX2Rpc3BsYXlJZGVudGlmaWVyKTsKLSAgICBtX2Rpc3BsYXlJbmZvLnNldElzQ29ubmVjdGVk
KG1fc3lzdGVtLT5Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodnI6OmtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kKSk7Ci0KLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJPcGVuVlIgSE1EIik7Ci0gICAgY2hhciBITUROYW1l
WzEyOF07Ci0gICAgaWYgKGF1dG8gbGVuZ3RoID0gbV9zeXN0ZW0tPkdldFN0cmluZ1RyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSh2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQsIHZyOjpQcm9wX01h
bnVmYWN0dXJlck5hbWVfU3RyaW5nLCBITUROYW1lLCAxMjgpKSB7Ci0gICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCIgKCIpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChITUROYW1l
LCBsZW5ndGgpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnKScpOwotICAgIH0KLSAg
ICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRJc01vdW50ZWQoZmFsc2UpOwotICAgIC8vIEZJWE1FOiBX
ZSdyZSBhc3N1bWluZyBhbiBIVEMgVml2ZSBITUQgaGVyZS4gR2V0IHRoaXMgaW5mbyBmcm9tIE9w
ZW5WUj8uCi0gICAgbV9kaXNwbGF5SW5mby5zZXRDYXBhYmlsaXR5RmxhZ3MoVlJEaXNwbGF5Q2Fw
YWJpbGl0eUZsYWdOb25lIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQb3NpdGlvbiB8IFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnT3JpZW50YXRpb24gfCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ0V4
dGVybmFsRGlzcGxheSB8IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnUHJlc2VudCk7Ci0KLSAgICBt
X2NvbXBvc2l0b3ItPlNldFRyYWNraW5nU3BhY2UodnI6OlRyYWNraW5nVW5pdmVyc2VTZWF0ZWQp
OwotCi0gICAgdXBkYXRlRXllUGFyYW1ldGVycygpOwotICAgIHVwZGF0ZVN0YWdlUGFyYW1ldGVy
cygpOwotfQotCi1WUlBsYXRmb3JtRGlzcGxheUluZm86OkZpZWxkT2ZWaWV3IFZSUGxhdGZvcm1E
aXNwbGF5T3BlblZSOjpjb21wdXRlRmllbGRPZlZpZXcodnI6OkhtZF9FeWUgZXllKQotewotICAg
IGZsb2F0IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbTsKLSAgICAvLyBPcGVuVlIgcmV0dXJucyB0
aGUgdGFuZ2VudHMgb2YgdGhlIGhhbGYtYW5nbGVzIGZyb20gdGhlIGNlbnRlciB2aWV3IGF4aXMu
Ci0gICAgbV9zeXN0ZW0tPkdldFByb2plY3Rpb25SYXcoc3RhdGljX2Nhc3Q8dnI6OkhtZF9FeWU+
KGV5ZSksICZsZWZ0LCAmcmlnaHQsICZ0b3AsICZib3R0b20pOwotICAgIHJldHVybiB7IC1yYWQy
ZGVnKGF0YW5mKHRvcCkpLCByYWQyZGVnKGF0YW5mKGJvdHRvbSkpLCAtcmFkMmRlZyhhdGFuZihs
ZWZ0KSksIHJhZDJkZWcoYXRhbmYocmlnaHQpKSB9OwotfQotCi12b2lkIFZSUGxhdGZvcm1EaXNw
bGF5T3BlblZSOjp1cGRhdGVFeWVQYXJhbWV0ZXJzKCkKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGV5
ZSA9IDA7IGV5ZSA8IFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6TnVtRXllczsgKytleWUpIHsKLSAg
ICAgICAgYXV0byBwbGF0Zm9ybUV5ZSA9IHN0YXRpY19jYXN0PFZSUGxhdGZvcm1EaXNwbGF5SW5m
bzo6RXllPihleWUpOwotICAgICAgICBtX2Rpc3BsYXlJbmZvLnNldEV5ZUZpZWxkT2ZWaWV3KHBs
YXRmb3JtRXllLCBjb21wdXRlRmllbGRPZlZpZXcoc3RhdGljX2Nhc3Q8dnI6OkhtZF9FeWU+KGV5
ZSkpKTsKLQotICAgICAgICB2cjo6SG1kTWF0cml4MzRfdCBleWVUb0hlYWQgPSBtX3N5c3RlbS0+
R2V0RXllVG9IZWFkVHJhbnNmb3JtKHN0YXRpY19jYXN0PHZyOjpIbWRfRXllPihleWUpKTsKLSAg
ICAgICAgbV9kaXNwbGF5SW5mby5zZXRFeWVUcmFuc2xhdGlvbihwbGF0Zm9ybUV5ZSwgeyBleWVU
b0hlYWQubVswXVszXSwgZXllVG9IZWFkLm1bMV1bM10sIGV5ZVRvSGVhZC5tWzJdWzNdIH0pOwot
ICAgIH0KLQotICAgIHVpbnQzMl90IHdpZHRoOwotICAgIHVpbnQzMl90IGhlaWdodDsKLSAgICBt
X3N5c3RlbS0+R2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKCZ3aWR0aCwgJmhlaWdodCk7
Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRSZW5kZXJTaXplKHsgd2lkdGgsIGhlaWdodCB9KTsKLX0K
LQotdm9pZCBWUlBsYXRmb3JtRGlzcGxheU9wZW5WUjo6dXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCkK
LXsKLSAgICBmbG9hdCBwbGF5QXJlYVdpZHRoID0gMTsKLSAgICBmbG9hdCBwbGF5QXJlYURlcHRo
ID0gMTsKLSAgICBpZiAoIW1fY2hhcGVyb25lLT5HZXRQbGF5QXJlYVNpemUoJnBsYXlBcmVhV2lk
dGgsICZwbGF5QXJlYURlcHRoKSkgewotICAgICAgICAvLyBGYWxsYmFjayB0byBzZW5zaWJsZSB2
YWx1ZXMsIDFteDFtIHBsYXkgYXJlYSBhbmQgMC43NW0gaGlnaCBzZWF0ZWQgcG9zaXRpb24uIFdl
IGRvIGFzCi0gICAgICAgIC8vIEZpcmVmb3ggZG9lcy4KLSAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbWF0cml4OwotICAgICAgICBtYXRyaXguc2V0TTQyKDAuNzUpOwotICAgICAgICBtX2Rp
c3BsYXlJbmZvLnNldFNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3JtKFdURk1vdmUobWF0cml4KSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdnI6OkhtZE1hdHJpeDM0X3QgdHJhbnNmb3JtTWF0cml4
ID0gbV9zeXN0ZW0tPkdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQ
b3NlKCk7Ci0gICAgICAgIGF1dG8gbWF0cml4ID0gIFRyYW5zZm9ybWF0aW9uTWF0cml4KHRyYW5z
Zm9ybU1hdHJpeC5tWzBdWzBdLCB0cmFuc2Zvcm1NYXRyaXgubVsxXVswXSwgdHJhbnNmb3JtTWF0
cml4Lm1bMl1bMF0sIDAsCi0gICAgICAgICAgICB0cmFuc2Zvcm1NYXRyaXgubVswXVsxXSwgdHJh
bnNmb3JtTWF0cml4Lm1bMV1bMV0sIHRyYW5zZm9ybU1hdHJpeC5tWzJdWzFdLCAwLAotICAgICAg
ICAgICAgdHJhbnNmb3JtTWF0cml4Lm1bMF1bMl0sIHRyYW5zZm9ybU1hdHJpeC5tWzFdWzJdLCB0
cmFuc2Zvcm1NYXRyaXgubVsyXVsyXSwgMCwKLSAgICAgICAgICAgIHRyYW5zZm9ybU1hdHJpeC5t
WzBdWzNdLCB0cmFuc2Zvcm1NYXRyaXgubVsxXVszXSwgdHJhbnNmb3JtTWF0cml4Lm1bMl1bM10s
IDEpOwotICAgICAgICBtX2Rpc3BsYXlJbmZvLnNldFNpdHRpbmdUb1N0YW5kaW5nVHJhbnNmb3Jt
KFdURk1vdmUobWF0cml4KSk7Ci0gICAgfQotICAgIG1fZGlzcGxheUluZm8uc2V0UGxheUFyZWFC
b3VuZHMoRmxvYXRTaXplKHBsYXlBcmVhV2lkdGgsIHBsYXlBcmVhRGVwdGgpKTsKLX0KLQotLy8g
RklYTUU6IHdlIG1pZ2h0IHdhbnQgdG8gZ2VuZXJhbGl6ZSB0aGlzIGZ1bmN0aW9uIGZvciBvdGhl
ciBiYWNrZW5kcy4KLXN0YXRpYyBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpRdWF0ZXJuaW9uIHJv
dGF0aW9uTWF0cml4VG9RdWF0ZXJuaW9uKGNvbnN0IGZsb2F0ICgmbWF0cml4KVszXVs0XSkKLXsK
LSAgICAvLyBTZWUgaHR0cHM6Ly9kM2N3M2RkMnczMngyYi5jbG91ZGZyb250Lm5ldC93cC1jb250
ZW50L3VwbG9hZHMvMjAxNS8wMS9tYXRyaXgtdG8tcXVhdC5wZGYuCi0gICAgVlJQbGF0Zm9ybVRy
YWNraW5nSW5mbzo6UXVhdGVybmlvbiBxdWF0ZXJuaW9uOwotICAgIGZsb2F0IHRyYWNlOwotICAg
IGlmIChtYXRyaXhbMl1bMl0gPCAwKSB7Ci0gICAgICAgIGlmIChtYXRyaXhbMF1bMF0gPiBtYXRy
aXhbMV1bMV0pIHsKLSAgICAgICAgICAgIHRyYWNlID0gMSArIG1hdHJpeFswXVswXSAtIG1hdHJp
eFsxXVsxXSAtIG1hdHJpeFsyXVsyXTsKLSAgICAgICAgICAgIHF1YXRlcm5pb24gPSB7IHRyYWNl
LCBtYXRyaXhbMF1bMV0rbWF0cml4WzFdWzBdLCBtYXRyaXhbMl1bMF0rbWF0cml4WzBdWzJdLCBt
YXRyaXhbMV1bMl0gLSBtYXRyaXhbMl1bMV0gfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHRyYWNlID0gMSAtIG1hdHJpeFswXVswXSArIG1hdHJpeFsxXVsxXSAtIG1hdHJpeFsyXVsy
XTsKLSAgICAgICAgICAgIHF1YXRlcm5pb24gPSB7IG1hdHJpeFswXVsxXSttYXRyaXhbMV1bMF0s
IHRyYWNlLCBtYXRyaXhbMV1bMl0rbWF0cml4WzJdWzFdLCBtYXRyaXhbMl1bMF0gLSBtYXRyaXhb
MF1bMl0gfTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChtYXRyaXhbMF1b
MF0gPCAtbWF0cml4WzFdWzFdKSB7Ci0gICAgICAgICAgICB0cmFjZSA9IDEgLSBtYXRyaXhbMF1b
MF0gLSBtYXRyaXhbMV1bMV0gKyBtYXRyaXhbMl1bMl07Ci0gICAgICAgICAgICBxdWF0ZXJuaW9u
ID0geyBtYXRyaXhbMl1bMF0rbWF0cml4WzBdWzJdLCBtYXRyaXhbMV1bMl0rbWF0cml4WzJdWzFd
LCB0cmFjZSAsIG1hdHJpeFswXVsxXSAtIG1hdHJpeFsxXVswXSB9OwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgdHJhY2UgPSAxICsgbWF0cml4WzBdWzBdICsgbWF0cml4WzFdWzFdICsg
bWF0cml4WzJdWzJdOwotICAgICAgICAgICAgcXVhdGVybmlvbiA9IHsgbWF0cml4WzFdWzJdIC0g
bWF0cml4WzJdWzFdLCBtYXRyaXhbMl1bMF0gLSBtYXRyaXhbMF1bMl0sIG1hdHJpeFswXVsxXSAt
IG1hdHJpeFsxXVswXSwgdHJhY2UgfTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcXVh
dGVybmlvbiAqICgwLjUgLyBzcXJ0KHRyYWNlKSk7Ci19Ci0KLVZSUGxhdGZvcm1UcmFja2luZ0lu
Zm8gVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6OmdldFRyYWNraW5nSW5mbygpCi17Ci0gICAgdnI6
OlRyYWNrZWREZXZpY2VQb3NlX3QgcG9zZXNbdnI6OmtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnRd
OwotCi0gICAgbV9jb21wb3NpdG9yLT5XYWl0R2V0UG9zZXMobnVsbHB0ciwgMCwgcG9zZXMsIHZy
OjprX3VuTWF4VHJhY2tlZERldmljZUNvdW50KTsKLQotICAgIG1fdHJhY2tpbmdJbmZvLmNsZWFy
KCk7Ci0KLSAgICB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyB0aW1pbmc7Ci0gICAgdGltaW5n
Lm1fblNpemUgPSBzaXplb2YodnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcpOwotICAgIG1fY29t
cG9zaXRvci0+R2V0RnJhbWVUaW1pbmcoJnRpbWluZyk7Ci0gICAgbV90cmFja2luZ0luZm8udGlt
ZXN0YW1wID0gdGltaW5nLm1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwotCi0gICAgaWYgKCFwb3Nl
c1t2cjo6a191blRyYWNrZWREZXZpY2VJbmRleF9IbWRdLmJEZXZpY2VJc0Nvbm5lY3RlZAotICAg
ICAgICB8fCAhcG9zZXNbdnI6OmtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kXS5iUG9zZUlzVmFs
aWQKLSAgICAgICAgfHwgcG9zZXNbdnI6OmtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kXS5lVHJh
Y2tpbmdSZXN1bHQgIT0gdnI6OlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0spIHsKLSAgICAgICAg
Ly8gRklYTUU6IEluaXQgc29tZSBkYXRhIG1heWJlPz8/LgotICAgICAgICByZXR1cm4gbV90cmFj
a2luZ0luZm87Ci0gICAgfQotCi0gICAgY29uc3QgYXV0byYgSE1EUG9zZSA9IHBvc2VzW3ZyOjpr
X3VuVHJhY2tlZERldmljZUluZGV4X0htZF07Ci0gICAgY29uc3QgYXV0byYgdHJhbnNmb3JtID0g
SE1EUG9zZS5tRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOwotICAgIG1fdHJhY2tpbmdJbmZvLm9y
aWVudGF0aW9uID0gcm90YXRpb25NYXRyaXhUb1F1YXRlcm5pb24odHJhbnNmb3JtLm0pOwotICAg
IG1fdHJhY2tpbmdJbmZvLm9yaWVudGF0aW9uLT5jb25qdWdhdGUoKTsKLSAgICBtX3RyYWNraW5n
SW5mby5wb3NpdGlvbiA9IEZsb2F0UG9pbnQzRCh0cmFuc2Zvcm0ubVswXVszXSwgdHJhbnNmb3Jt
Lm1bMV1bM10sIHRyYW5zZm9ybS5tWzJdWzNdKTsKLSAgICBtX3RyYWNraW5nSW5mby5hbmd1bGFy
VmVsb2NpdHkgPSBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9hdDMoSE1EUG9zZS52QW5ndWxh
clZlbG9jaXR5LnZbMF0sIEhNRFBvc2UudkFuZ3VsYXJWZWxvY2l0eS52WzFdLCBITURQb3NlLnZB
bmd1bGFyVmVsb2NpdHkudlsyXSk7Ci0gICAgbV90cmFja2luZ0luZm8ubGluZWFyVmVsb2NpdHkg
PSBWUlBsYXRmb3JtVHJhY2tpbmdJbmZvOjpGbG9hdDMoSE1EUG9zZS52VmVsb2NpdHkudlswXSwg
SE1EUG9zZS52VmVsb2NpdHkudlsxXSwgSE1EUG9zZS52VmVsb2NpdHkudlsyXSk7Ci0KLSAgICBy
ZXR1cm4gbV90cmFja2luZ0luZm87Ci19Ci0KLXZvaWQgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6
OnVwZGF0ZURpc3BsYXlJbmZvKCkKLXsKLSAgICBpZiAoIXZyOjpWUl9Jc0htZFByZXNlbnQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgdnI6OlZSRXZlbnRfdCBldmVudDsKLSAgICB3aGlsZSAo
bV9zeXN0ZW0gJiYgbV9zeXN0ZW0tPlBvbGxOZXh0RXZlbnQoJmV2ZW50LCBzaXplb2YoZXZlbnQp
KSkgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LmV2ZW50VHlwZSkgewotICAgICAgICBjYXNlIHZy
OjpWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkOgotICAgICAgICBj
YXNlIHZyOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZDoKLSAgICAg
ICAgICAgIGlmIChldmVudC50cmFja2VkRGV2aWNlSW5kZXggPT0gdnI6OmtfdW5UcmFja2VkRGV2
aWNlSW5kZXhfSG1kKQotICAgICAgICAgICAgICAgIG1fZGlzcGxheUluZm8uc2V0SXNNb3VudGVk
KGV2ZW50LmV2ZW50VHlwZSA9PSB2cjo6VlJFdmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0
aW9uU3RhcnRlZCA/IHRydWUgOiBmYWxzZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSB2cjo6RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQ6Ci0g
ICAgICAgIGNhc2UgdnI6OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3Rp
dmF0ZWQ6Ci0gICAgICAgICAgICBpZiAoZXZlbnQudHJhY2tlZERldmljZUluZGV4ID09IHZyOjpr
X3VuVHJhY2tlZERldmljZUluZGV4X0htZCkKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlJbmZv
LnNldElzQ29ubmVjdGVkKGV2ZW50LmV2ZW50VHlwZSA9PSB2cjo6VlJFdmVudF9UcmFja2VkRGV2
aWNlQWN0aXZhdGVkID8gdHJ1ZSA6IGZhbHNlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIHZyOjpFVlJFdmVudFR5cGU6OlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdDoKLSAg
ICAgICAgY2FzZSB2cjo6RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1F1aXQ6Ci0gICAgICAgIGNhc2Ug
dnI6OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9Qcm9jZXNzUXVpdDoKLSAgICAgICAgY2FzZSB2cjo6
RVZSRXZlbnRUeXBlOjpWUkV2ZW50X1F1aXRBY2tub3dsZWRnZWQ6Ci0gICAgICAgIGNhc2UgdnI6
OkVWUkV2ZW50VHlwZTo6VlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0OgotICAgICAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB3ZSBub3RpZnkgdGhlIHBsYXRmb3JtIG1hbmFnZXIgYWJvdXQg
dGhpcyBhbmQgY2FsbCBWUl9TaHV0ZG93bigpLgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLX07IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBVU0UoT1BFTlZSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjcxYmQ5ZjBkNTg5Y2MyZjgzOWIwNjdjMjNlYzhjYjUxODEw
NjhkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBVU0UoT1BFTlZSKQotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXkuaCIKLQotI2lu
Y2x1ZGUgPG9wZW52ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSIDogcHVibGljIFZSUGxhdGZvcm1EaXNwbGF5IHsKLSAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBWUlBsYXRmb3JtRGlzcGxh
eU9wZW5WUih2cjo6SVZSU3lzdGVtKiwgdnI6OklWUkNoYXBlcm9uZSosIHZyOjpJVlJDb21wb3Np
dG9yKik7Ci0KLSAgICB+VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIoKSA9IGRlZmF1bHQ7Ci0gICAg
VlJQbGF0Zm9ybURpc3BsYXlJbmZvIGdldERpc3BsYXlJbmZvKCkgb3ZlcnJpZGUgeyByZXR1cm4g
bV9kaXNwbGF5SW5mbzsgfQotICAgIFZSUGxhdGZvcm1UcmFja2luZ0luZm8gZ2V0VHJhY2tpbmdJ
bmZvKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1cGRhdGVEaXNwbGF5SW5mbygpIG92ZXJyaWRlOwot
Ci1wcml2YXRlOgotICAgIFZSUGxhdGZvcm1EaXNwbGF5SW5mbzo6RmllbGRPZlZpZXcgY29tcHV0
ZUZpZWxkT2ZWaWV3KHZyOjpIbWRfRXllKTsKLSAgICB2b2lkIHVwZGF0ZUV5ZVBhcmFtZXRlcnMo
KTsKLSAgICB2b2lkIHVwZGF0ZVN0YWdlUGFyYW1ldGVycygpOwotCi0gICAgc3RhdGljIHVpbnQz
Ml90IHNfZGlzcGxheUlkZW50aWZpZXI7Ci0KLSAgICB2cjo6SVZSU3lzdGVtKiBtX3N5c3RlbTsK
LSAgICB2cjo6SVZSQ2hhcGVyb25lKiBtX2NoYXBlcm9uZTsKLSAgICB2cjo6SVZSQ29tcG9zaXRv
ciogbV9jb21wb3NpdG9yOwotCi0gICAgVlJQbGF0Zm9ybURpc3BsYXlJbmZvIG1fZGlzcGxheUlu
Zm87Ci0gICAgVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyBtX3RyYWNraW5nSW5mbzsKLX07Ci0KLX07
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoT1BFTlZSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFu
YWdlck9wZW5WUi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3Y2Y3MTM3ZTMz
YWE1NWJmN2U1ODVlZTE2NGU2NzNkM2FhZWVjNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZS
UGxhdGZvcm1NYW5hZ2VyT3BlblZSLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuIEFsbCByaWdodCByZXNlcnZl
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWUlBsYXRmb3JtTWFuYWdlck9w
ZW5WUi5oIgotCi0jaW5jbHVkZSAiVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuaCIKLQotI2lmIFVT
RShPUEVOVlIpCi0KLSNpbmNsdWRlICJKU1ZSRGlzcGxheS5oIgotI2luY2x1ZGUgIlZSRGlzcGxh
eS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0ZDo6dW5pcXVlX3B0cjxWUlBsYXRmb3Jt
TWFuYWdlck9wZW5WUj4gVlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI6OmNyZWF0ZSgpCi17Ci0gICAg
aWYgKCF2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlI+KCk7Ci19
Ci0KLVZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSOjp+VlJQbGF0Zm9ybU1hbmFnZXJPcGVuVlIoKQot
ewotICAgIHZyOjpWUl9TaHV0ZG93bigpOwotfQotCi1ib29sIFZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSOjppbml0T3BlblZSKCkKLXsKLSAgICB2cjo6SG1kRXJyb3IgZXJyb3I7Ci0gICAgbV9zeXN0
ZW0gPSB2cjo6VlJfSW5pdCgmZXJyb3IsIHZyOjpWUkFwcGxpY2F0aW9uX1NjZW5lKTsKLSAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQot
Ci1WZWN0b3I8V2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4+IFZSUGxhdGZvcm1NYW5hZ2VyT3Bl
blZSOjpnZXRWUkRpc3BsYXlzKCkKLXsKLSAgICAvLyBRdWlja2x5IGNoZWNrIGZvciBITURzLiBN
dWNoIGZhc3RlciB0aGFuIGluaXRpYWxpemluZyB0aGUgd2hvbGUgT3BlblZSIEFQSS4KLSAgICBp
ZiAoIXZyOjpWUl9Jc0htZFByZXNlbnQoKSkgewotICAgICAgICBtX3N5c3RlbSA9IG51bGxwdHI7
Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgaWYgKCFtX3N5c3RlbSAmJiAhaW5p
dE9wZW5WUigpKSB7Ci0gICAgICAgIG1fc3lzdGVtID0gbnVsbHB0cjsKLSAgICAgICAgdnI6OlZS
X1NodXRkb3duKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgdnI6OkhtZEVy
cm9yIGVycm9yOwotICAgIHZyOjpJVlJDaGFwZXJvbmUqIGNoYXBlcm9uZSA9IHN0YXRpY19jYXN0
PHZyOjpJVlJDaGFwZXJvbmUqPih2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSh2cjo6SVZSQ2hh
cGVyb25lX1ZlcnNpb24sICZlcnJvcikpOwotICAgIGlmIChlcnJvciB8fCAhY2hhcGVyb25lKQot
ICAgICAgICByZXR1cm4geyB9OwotCi0gICAgdnI6OklWUkNvbXBvc2l0b3IqIGNvbXBvc2l0b3Ig
PSBzdGF0aWNfY2FzdDx2cjo6SVZSQ29tcG9zaXRvcio+KHZyOjpWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKHZyOjpJVlJDb21wb3NpdG9yX1ZlcnNpb24sICZlcnJvcikpOwotICAgIGlmIChlcnJvciB8
fCAhY29tcG9zaXRvcikKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3RvcjxXZWFrUHRy
PFZSUGxhdGZvcm1EaXNwbGF5Pj4gZGlzcGxheXM7Ci0gICAgaWYgKCFtX2Rpc3BsYXkpCi0gICAg
ICAgIG1fZGlzcGxheSA9IG1ha2VVbmlxdWU8VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI+KG1fc3lz
dGVtLCBjaGFwZXJvbmUsIGNvbXBvc2l0b3IpOwotICAgIGRpc3BsYXlzLmFwcGVuZChtYWtlV2Vh
a1B0cigqbV9kaXNwbGF5KSk7Ci0gICAgcmV0dXJuIGRpc3BsYXlzOwotfQotCi19OyAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKE9QRU5WUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5WUi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5hZ2VyT3BlblZS
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNzgyM2JjN2I5NWVkNDBkY2VjZGYw
ZjU3MzNlMTZkODQ0NWFhNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1NYW5h
Z2VyT3BlblZSLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2lmIFVTRShPUEVOVlIpCi0KLSNpbmNsdWRlICJWUlBsYXRmb3JtTWFuYWdlci5o
IgotCi0jaW5jbHVkZSA8b3BlbnZyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI7Ci0KLWNsYXNzIFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZS
IDogcHVibGljIFZSUGxhdGZvcm1NYW5hZ2VyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1NYW5hZ2Vy
T3BlblZSPiBjcmVhdGUoKTsKLSAgICBleHBsaWNpdCBWUlBsYXRmb3JtTWFuYWdlck9wZW5WUigp
ID0gZGVmYXVsdDsKLQotICAgIFZlY3RvcjxXZWFrUHRyPFZSUGxhdGZvcm1EaXNwbGF5Pj4gZ2V0
VlJEaXNwbGF5cygpIG92ZXJyaWRlOwotCi0gICAgflZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSKCk7
Ci1wcml2YXRlOgotICAgIGJvb2wgaW5pdE9wZW5WUigpOwotCi0gICAgdnI6OklWUlN5c3RlbSog
bV9zeXN0ZW0geyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZSUGxhdGZvcm1EaXNw
bGF5T3BlblZSPiBtX2Rpc3BsYXk7Ci19OwotCi19OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gVVNFKE9QRU5WUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IGJiMDhmNWM2NWI1MTcyYjE3NmQzM2VlNTQxODJiZjA1ZmUyNmYzNDMu
LmQ1ZDY3ZmE2OWY3NDczOGY1MWNlNmM3NDdmYjk2YTM1NjY0OWY5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTIwLDcgKzEyMCw2IEBAIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNpZiBF
TkFCTEUoV0VCR0wyKQogICAgICwgbV93ZWJHTDJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR0wyRW5hYmxlZCgpKQogI2VuZGlmCi0gICAgLCBtX3dl
YlZSRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlZS
RW5hYmxlZCgpKQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3NldFNjcmVlbkNh
cHR1cmVFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Ny
ZWVuQ2FwdHVyZUVuYWJsZWQoKSkKICNlbmRpZgpAQCAtMjI0LDcgKzIyMyw2IEBAIHZvaWQgSW50
ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogI2lm
IEVOQUJMRShXRUJHTDIpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRXZWJHTDJFbmFibGVkKG1fd2ViR0wyRW5hYmxlZCk7CiAjZW5kaWYKLSAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlZSRW5hYmxlZChtX3dl
YlZSRW5hYmxlZCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNjcmVlbkNhcHR1cmVFbmFibGVkKG1fc2V0
U2NyZWVuQ2FwdHVyZUVuYWJsZWQpOwogI2VuZGlmCkBAIC04MTYsMTEgKzgxNCw2IEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0V2ViR1BVRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYK
IH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRXZWJWUkVuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2Vi
VlJFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNjcmVl
bkNhcHR1cmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA2NzNkNzkw
OTQyMDk1ZTQwYjMyMTJkYThlMjk3YmNhNjJmMTAyZDI1Li4zMTZjMzg4MzhmOWZmNTkyODA4NDM4
MmU1ZTQxMTQyMDQwNTM0NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaApAQCAtMTI5LDcgKzEyOSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRJ
bmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHTDJF
bmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFdlYkdQVUVuYWJsZWQoYm9vbCk7Ci0g
ICAgc3RhdGljIHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNl
dFBpY3R1cmVJblBpY3R1cmVBUElFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFNj
cmVlbkNhcHR1cmVFbmFibGVkKGJvb2wpOwogCkBAIC0yMjAsNyArMjE5LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gUnVudGltZSBlbmFibGVkIHNldHRpbmdzLgogICAgICAgICBib29sIG1faW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV93ZWJHTDJFbmFibGVkOwotICAg
ICAgICBib29sIG1fd2ViVlJFbmFibGVkOwogICAgICAgICBib29sIG1fc2V0U2NyZWVuQ2FwdHVy
ZUVuYWJsZWQ7CiAgICAgICAgIAogICAgICAgICBib29sIG1fc2hvdWxkTW9ja0JvbGRTeXN0ZW1G
b250Rm9yQWNjZXNzaWJpbGl0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCmluZGV4IDQ1OWU5NzQxMWI3MGQ4YTc0MDI0N2I2YTU3NDQ2Y2ZlZmQ1OWQ4M2Yu
LmE5ZDQ3MWQ4ZjMyZWJiYjA0NjJiNDUwOGZjMTBmZWVlOThjMDU5NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtOTYsNyArOTYsNiBAQCBlbnVt
IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9Owog
ICAgIHZvaWQgc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAg
ICB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFdl
YkdQVUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICB2b2lkIHNldFdlYlZSRW5hYmxlZChi
b29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0U2NyZWVuQ2FwdHVyZUVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCmluZGV4IGI0MjEwOThlZTgxYzIzZDBiMTExYmRlZTZjY2NlNGY0MmVmN2UwMmMuLmYz
ZTUxOTgxYTdlYTFlNjNiMmVlNTNmOGRhYmZjNWIyZDY2MzEwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTM3NiwxNSArMTM3Niw2IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKICAgd2Vi
Y29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKIAotV2ViVlJFbmFibGVkOgotICB0
eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNf
RU5BQkxFRAotICBodW1hblJlYWRhYmxlTmFtZTogIldlYlZSIgotICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJXZWJWUiBNb2R1bGUgc3VwcG9ydCIKLSAgd2ViY29yZUJpbmRpbmc6IFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMKLSAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAotICBjb25kaXRpb246
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQotCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9TRVJWRVJfVElNSU5HX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggOTA0ZTM3OWFjZDg4MTUxMTkzZmMyODViNWExZTRj
NTZjZDRkMmE0ZC4uYzcyYTg5MjA0Njc1YzJkNmI1YzEzOTMzNTgwYjAxODE2MzdlMjNiNiAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UKQEAgLTkxLDcgKzkxLDYgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUo
VVNFX1dQRV9SRU5ERVJFUiAiV2hldGhlciB0byBlbmFibGUgV1BFIHJlbmRlcmluZyIgUFVCTElD
IE8KICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4gQ2hhbmdpbmcg
dGhlc2Ugb3B0aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5IGFyZSBpbnRl
bmRlZCBmb3IgdXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCiBXRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfQU5HTEVfV0VCR0wgIldoZXRoZXIgdG8gdXNlIEFOR0xFIGFzIFdlYkdMIGJhY2tl
bmQuIiBQUklWQVRFIE9GRikKLVdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOVlIgIldoZXRo
ZXIgdG8gdXNlIE9wZW5WUiBhcyBXZWJWUiBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiAKICMgRklY
TUU6IENhbiB3ZSB1c2UgY2Fpcm8tZ2xlc3YyIHRvIGF2b2lkIHRoaXMgY29uZmxpY3Q/CiBXRUJL
SVRfT1BUSU9OX0NPTkZMSUNUKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX0dM
RVMyKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCAxNDlhNTkyYzg5MWU4YjM3NWY0NDFjMTdmYjQy
MTA5OWUzYzQ3N2RjLi41ZjA5NjNjYzFhMzI1NWIzMWM2YTJmMTg2YzA3ZmYzMjA0YTA0MWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtNzUsNyArNzUsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRklO
RShVU0VfV09GRjIgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdlYiBGb250
cy4iCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV1BFX1FUX0FQSSAiV2hldGhlciB0byBl
bmFibGUgc3VwcG9ydCBmb3IgdGhlIFF0NS9RTUwgcGx1Z2luIiBQVUJMSUMgT0ZGKQogCiAjIFBy
aXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgV1BFIHBvcnQuCi1XRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIgYXMgV2ViVlIgYmFja2VuZC4i
IFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9IT0xFUFVO
Q0ggIldoZXRoZXIgdG8gZW5hYmxlIEdTdHJlYW1lciBob2xlcHVuY2giIFBSSVZBVEUgT0ZGKQog
V0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0VYVEVSTkFMX0hPTEVQVU5DSCAiV2hldGhlciB0byBl
bmFibGUgZXh0ZXJuYWwgaG9sZXB1bmNoIiBQUklWQVRFIE9GRikKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVhMzVkZWE4
YzA1MzhlYzE0OTliZjY1MGI1NmVlZTdiZTYzZGViZTMuLmQyNjE3ODA0ZjJiYmQ2ZTIxMWRiNTdj
MjRjZTE2M2FlNmQxMTkyNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMS0yNyAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUg
V2ViVlIgZnJvbSB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA2NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWJ2ci93ZWJ2ci1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogd2VidnIvd2VidnItZGlzYWJsZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWJ2ci93ZWJ2ci1lbmFibGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWJ2ci93ZWJ2ci1lbmFibGVkLmh0bWw6IFJlbW92ZWQuCisKIDIwMjAtMDEtMjMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBub21vZHVsZSBzY3JpcHRzIGFy
ZSBmZXRjaGVkIGluIHNvbWUgY2FzZXMgKHdpdGggZW1wdHkgY2FjaGUgb3IgaW4gbmV3IHRhYikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnZyL3dlYnZyLWRpc2FibGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYnZyL3dlYnZyLWRpc2FibGVkLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ1ZWQ1NDEzY2UxZWMwM2YyY2UyZDJkN2IzYjNiMWNk
Yzg4MTVmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJ2ci93ZWJ2ci1kaXNhYmxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVBBU1MgdW5kZWZpbmVkIGlzIHVuZGVmaW5lZC4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2VidnIvd2VidnItZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYnZyL3dlYnZyLWRpc2FibGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ1NTZhOWM0OGJiODQ0MzYyZWE0YzU4ZTNjMjEyNDUyNjg0NGJmNzIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2VidnIvd2VidnIt
ZGlzYWJsZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHdpbmRvdy50ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRXZWJWUkVuYWJsZWQoZmFsc2UpOwotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHNob3VsZEJlVW5kZWZpbmVkKG5hdmlnYXRvci5nZXRWUkRpc3BsYXlzKTsKLX0KLQotd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnZyL3dlYnZyLWVuYWJsZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2VidnIvd2VidnItZW5hYmxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJlYTM4YmRhZjRjYTZmZWQ5OWJjOWIzNGE1MGQ3Y2RlMzg0NmUz
MjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvd2VidnIvd2VidnItZW5hYmxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw0ICswLDAgQEAKLVBBU1MgZnVuY3Rpb24gZ2V0VlJEaXNwbGF5cygpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IGlzIGRlZmluZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnZyL3dl
YnZyLWVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYnZyL3dlYnZyLWVuYWJsZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjlkNDI1NDk1NjNiYzQ0MDU3M2YxODI5NWJi
Y2E3YmRkMjE5N2NhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJ2ci93ZWJ2ci1lbmFibGVkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJWUkVuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2hvdWxkQmVEZWZpbmVkKG5hdmlnYXRvci5n
ZXRWUkRpc3BsYXlzKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5U
ZXN0LCBmYWxzZSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxv
ZwppbmRleCAxNjU3NDhmNTBmYTVjZjViY2JhMDM5NDZhZjg2YzIxNGU3NDM2YWIyLi5iMGZmZTZk
YmY5YzFhOWY3NTcwYTYyMGQ4YTI1NWRjYmEwM2MzMzE3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cK
KysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMjQgIFNlcmdpbyBWaWxs
YXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFdlYlZSIGZy
b20gdGhlIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgV2ViVlIgYW5kIE9wZW5WUiBidWlsZCBvcHRpb25zIGZvciBHVEsgYW5kIFdQ
RSBwb3J0cy4KKworICAgICAgICAqIFNvdXJjZS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0
aW9uc1dQRS5jbWFrZToKKwogMjAyMC0wMS0yMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFk
QHNvbnkuY29tPgogCiAgICAgICAgIFtPcGVuU1NMXSBBZGQgc3R1YnMgYW5kIGJ1aWxkIGZvciBX
ZWIgQ3J5cHRvCg==
</data>
<flag name="review"
          id="404538"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>