<?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>237195</bug_id>
          
          <creation_ts>2022-02-25 03:14:25 -0800</creation_ts>
          <short_desc>IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile</short_desc>
          <delta_ts>2022-03-03 01:51:26 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237268</see_also>
          <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>
          
          <blocked>237197</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jenner</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845951</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 03:14:25 -0800</bug_when>
    <thetext>IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845958</commentid>
    <comment_count>1</comment_count>
      <attachid>453190</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 03:27:59 -0800</bug_when>
    <thetext>Created attachment 453190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845960</commentid>
    <comment_count>2</comment_count>
      <attachid>453191</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 03:45:49 -0800</bug_when>
    <thetext>Created attachment 453191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845962</commentid>
    <comment_count>3</comment_count>
      <attachid>453192</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 03:54:18 -0800</bug_when>
    <thetext>Created attachment 453192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845963</commentid>
    <comment_count>4</comment_count>
      <attachid>453193</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 03:59:15 -0800</bug_when>
    <thetext>Created attachment 453193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846568</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-28 01:12:02 -0800</bug_when>
    <thetext>Committed r290588 (247866@main): &lt;https://commits.webkit.org/247866@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453193.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846569</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-28 01:13:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89546703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846610</commentid>
    <comment_count>7</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-28 05:32:18 -0800</bug_when>
    <thetext>compile fix in bug 237268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847270</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-03-01 17:53:36 -0800</bug_when>
    <thetext>Reverted r290588 for reason:

Patch r290588 caused ASAN build to fail on macOS

Committed r290714 (247961@trunk): &lt;https://commits.webkit.org/247961@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847344</commentid>
    <comment_count>9</comment_count>
      <attachid>453590</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-02 04:58:29 -0800</bug_when>
    <thetext>Created attachment 453590
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847440</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-02 09:01:00 -0800</bug_when>
    <thetext>Committed r290732 (247979@main): &lt;https://commits.webkit.org/247979@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453590.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847788</commentid>
    <comment_count>11</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-03 01:51:26 -0800</bug_when>
    <thetext>*** Bug 237351 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453190</attachid>
            <date>2022-02-25 03:27:59 -0800</date>
            <delta_ts>2022-02-25 03:41:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237195-20220225132757.patch</filename>
            <type>text/plain</type>
            <size>78260</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0NDRiYmY5ZDgzY2IxNTM2
ODY3NmY1NGM0MzI3NWUzMTYwYmE5MmQuLjRkMmNlYTFkMTU1YjBjYzAyOTVjODQzZjYxNDFjODE3
MDk5ZWYyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM4IEBACisyMDIyLTAyLTI1ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSVBDX1RFU1RJTkdfQVBJ
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaXMgc2xvdyB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJUEMgdGVzdGluZyBB
UEkgbmVlZHMgY29udmVydCBtZXNzYWdlIGRhdGEgYnVmZmVyLCBJUEM6OkRlY29kZXIsIHRvCisg
ICAgICAgIEpTVmFsdWUuIFRoaXMgaXMgYSBydW4tdGltZSBvcGVyYXRpb24uCisgICAgICAgIElQ
QyBtZXNzYWdlIGRlY29kaW5nIGlzIGJhc2VkIG9uIHRlbXBsYXRlcywgZS5nLiBjb21waWxlIHRp
bWUgb3BlcmF0aW9uLgorICAgICAgICBJUEMgZ2VuZXJhdG9yIGdlbmVyYXRlcyBNZXNzYWdlQXJn
dW1lbnREZXNjcmlwdGlvbnMuY3BwIHdoZXJlIHRoZXJlIGlzCisgICAgICAgIGEgYmlnIHN3aXRj
aCBmb3IgY2FzZSBmb3IgZWFjaCBtZXNzYWdlIG5hbWUgKGludGVnZXIpLiBUaGlzIHdvdWxkIGNh
bGwKKyAgICAgICAgdGVtcGxhdGVkIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPEFyZ3VtZW50
cz4sIHdoZXJlIHRoZSBBcmd1bWVudHMKKyAgICAgICAgaXMgdGhlIHR5cGUgdHVwbGUgZnJvbSB0
aGUgbWVzc2FnZS4KKworICAgICAgICBUaGUgYWJvdmUgd291bGQgbWVhbiB0aGF0IE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucyB3b3VsZCBuZWVkIHRvCisgICAgICAgIGluY2x1ZGUgYWxsIHRo
ZSBoZWFkZXJzIGZvciBhbGwgdGhlIG1lc3NhZ2VzIGluIFdlYktpdCBpbiBvcmRlcgorICAgICAg
ICB0byBwb3B1bGF0ZSB0aGUgQXJndW1lbnRzIHR1cGxlIGZvciBwYXJ0aWN1bGFyIG1lc3NhZ2Uu
CisgICAgICAgIFRoaXMgd291bGQgY2F1c2UgTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zIGJl
IHNsb3cgYmVjYXVzZToKKyAgICAgICAgMSkgSXQgd291bGQgY29uc3VtZSBtdWNoIG1lbW9yeSAo
NS02Z2IpIGFuZCBkbyBhIGxvdCBvZiB3b3JrCisgICAgICAgIDIpIEl0IHdvdWxkIG5lZWQgYWxs
IHRoZSBoZWFkZXJzIGluIFNvdXJjZS9XZWJLaXQgcmVsYXRlZCB0byBtZXNzYWdlIHBhcmFtZXRl
ciB0eXBlcworICAgICAgICAzKSBJdCB3b3VsZCByZS1jb21waWxlIE1lc3NhZ2VBcmd1bWVudERl
c2NyaXB0aW9ucyBlYWNoIHRpbWUgc21hbGwgY2hhbmdlCisgICAgICAgICAgIHRvIGFueSBvZiB0
aGUgaGVhZGVycyB3ZXJlIHRvdWNoZWQuCisKKyAgICAgICAgU3dpdGNoIHRoaXMgc28gdGhhdCB0
aGUgYmlnIHN3aXRjaCBjYWxscyBkZWNsYXJlZCBidXQgbm90IGRlZmluZWQKKyAgICAgICAgdGVt
cGxhdGUganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lPiBmb3IgZWFjaCBNZXNz
YWdlTmFtZSBjYXNlIGluIHRoZSBzd2l0Y2guCisgICAgICAgIEluc3RhbnRpYXRlIHRoZSB0ZW1w
bGF0ZSBmb3IgZWFjaCBtZXNzYWdlIGluIHRoZSBtZXNzYWdlIHJlY2VpdmVyIC5jcHAgZmlsZQor
ICAgICAgICB0aGF0IGVhY2ggbWVzc2FnZSByZWNlaXZlciBoYXMuIFRoaXMgZmlsZSBhbHJlYWR5
IGhhcyB0byBpbmNsdWRlIGFsbCB0aGUKKyAgICAgICAgaGVhZGVycyB1c2VkIGZvciB0aGF0IHBh
cnRpY3VsYXIgbWVzc2FnZSByZWNlaXZlci4KKworICAgICAgICBBZnRlciB0aGlzIGNoYW5nZSBN
ZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIG9ubHkgaW5jbHVkZXMgdGhlIG1lc3NhZ2UK
KyAgICAgICAgZGVmaW5pdGlvbiBoZWFkZXJzLCBkb2VzIG5vdCB1c2UgbXVjaCBtb3JlIHRoYW4g
c3RhbmRhcmQgMWdiIG9mIG1lbW9yeQorICAgICAgICB3aGlsZSBjb21waWxpbmcgYW5kIGlzIHJl
bGF0aXZlbHkgZmFzdCB0byBjb21waWxlLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIG5lZWRl
ZCBmb3IgZnVydGhlciBpbXByb3ZlIHRoZSBKUyB0ZXN0aW5nIEFQSSBpbXBsZW1lbnRhdGlvbiwK
KyAgICAgICAgYWRkaW5nIG5ldyBvcGVyYXRpb25zIChzZW5kcykgdGhhdCBlbXBsb3kgdGhlIHNh
bWUgc3RyYXRlZ3k6IHN3aXRjaCBvbiB0aGUKKyAgICAgICAgbWVzc2FnZSB0eXBlLCB0aGVuIGNh
bGwgYSB0ZW1wbGF0ZSB0aGF0IHVzZXMgdGhlIGFyZ3VtZW50cyB0eXBlIG9mIHRoZSBtZXNzYWdl
CisgICAgICAgIHRvIHdvcmsgZ2VuZXJpY2FsbHkgdG8gbWFrZSB0aGUgbWVzc2FnZSBhY3Rpb24g
aGFwcGVuLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlZ2VuZXJhdGVzIHRoZSBjaGVja2VkLWlu
IHRlc3QgY29udGVudCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJldmlldworICAgICAgICB3aGF0IGtp
bmQgb2YgY2hhbmdlcyB0aGUgcmVhbCBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGFu
ZCBNZXNzYWdlUmVjZWl2ZXIuY3BwcworICAgICAgICBnZXQuCisKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvSlNJUENCaW5kaW5nLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHk6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJh
dGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbik6CisgICAgICAgIChnZW5lcmF0ZV9tZXNz
YWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yQXJndW1lbnRzKToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvclJl
cGx5QXJndW1lbnRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENW
UGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQ
aXhlbEJ1ZmZlcj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJl
Y2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMPik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1h
Z2VEYXRhX1NlbmRJbWFnZURhdGE+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPik6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1l
c3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50
Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9h
ZFNvbWV0aGluZ0Vsc2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNp
c2lvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1By
ZWZlcmVuY2VzRGlkQ2hhbmdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxv
YXQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmRJbnRzPik6CisgICAgICAgIChJUEM6OmpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9D
cmVhdGVQbHVnaW4+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lucz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1RlbXBsYXRlVGVzdD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXll
cklEPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KToKKyAgICAgICAgKElQQzo6
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0RlcHJlY2F0ZWRPcGVyYXRpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRh
bE9wZXJhdGlvbj4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2Vt
YXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZT4pOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbUJ1ZmZlcl9TZW5kU3RyZWFtQnVmZmVyPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRT
dHJpbmc+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1f
U2VuZE1hY2hTZW5kUmlnaHQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodD4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHA6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX0xvYWRVUkw+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KToKKyAgICAgICAgKElQQzo6
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhDb25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19U
ZXN0U3luY2hyb25vdXNNZXNzYWdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9u
b3VzTWVzc2FnZT4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0
QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4pOgorICAgICAgICAoSVBDOjpqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19U
b3VjaEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50Pik6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0xvYWRTb21ldGhpbmdFbHNlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xp
Y3lEZWNpc2lvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZT4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19QcmVmZXJlbmNlc0RpZENoYW5nZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kRG91YmxlQW5k
RmxvYXQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZEludHM+KToKKyAgICAgICAgKElQQzo6anNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
Q3JlYXRlUGx1Z2luPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydD4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRl
cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAg
ICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfVGVtcGxhdGVUZXN0Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRD4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNh
dGVkT3BlcmF0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4p
OgorCiAyMDIyLTAyLTIzICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjkwMTc1KTogVGV4dHVyZSB1cGxvYWQgZnJvbSB2aWRlbyBh
bmQgdXNlciBtZWRpYSBpcyBzbG93ZXIgdGhhbiBleHBlY3RlZCBmb3Igbm9uLUdQVVAgV2ViR0wK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKaW5kZXggZWQxNjQ0MmNi
OTY2ZjAzNDRiYjEwYzFmM2U5MDZiYjhiZTZjZWQ2My4uZjgwN2FlYjdmZDUzNDgxNDFlYzBlNGFm
MWRlM2M4YTlkODkyMDc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
SlNJUENCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5k
aW5nLmgKQEAgLTE1Niw2ICsxNTYsMTcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gcHV0SlNWYWx1ZUZvckRlY29kZUFyZ3VtZW50SW5BcnJheTw+KGdsb2JhbE9iamVjdCwg
ZGVjb2RlciwgYXJyYXksIDAsIGR1bW15QXJndW1lbnRzKTsKIH0KIAorLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBzcGVjaWFsaXplZCBieSBlYWNoIG1lc3NhZ2UgaW4gdGhlaXIgb3duIGdlbmVyYXRl
ZCBmaWxlLgorLy8gRWFjaCBpbXBsZW1lbnRhdGlvbiB3aWxsIGp1c3QgY2FsbCBhYm92ZSBganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHMoKWAuIFRoaXMgd2F5IHRoZSBiaW5kaW5ncyBpbXBsZW1l
bnRhdGlvbgorLy8gY2FuOgorLy8gMSkgZ2VuZXJhdGUgYSBiaWcgc3dpdGNoIGhhbmRpbmcgZWFj
aCBtZXNzYWdlIHdpdGggY2FsbHMgdG8ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlIGFuZCBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseQorLy8gMikgcmF0aGVyIHRoZSB0ZW1wbGF0ZSBzcGVj
aWFsaXphdGlvbnMgaW4gb3RoZXIgZmlsZXMgd2lsbCBhY3R1YWxseSBpbXBsZW1lbnQgdGhlIGZ1
bmN0aW9uLgorLy8gSWYgdGhlIGJpZyBzd2l0Y2ggd291bGQgbmVlZCBjYWxsIGBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50cygpYCBkaXJlY3RseSwgaXQgd291bGQgbmVlZCB0byB1bmRlcnN0YW5k
IGFsbCB0aGUgYXJndW1lbnRzCisvLyBhbGwgdGhlIG1lc3NhZ2VzIGhhdmUuCit0ZW1wbGF0ZTxN
ZXNzYWdlTmFtZT4KK3N0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOwordGVtcGxhdGU8
TWVzc2FnZU5hbWU+CitzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlUmVwbHkoSlNDOjpKU0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDUz
YzNkOTYwZDNiYTdjYmQ4ZGFmOGNiMDVhNmIyNTI1ZDU1YmZkYzQuLjc1NGM3YzBlMGZjMTlkYWJh
M2NhOWUwZmE0NTY0ZTYxMDE3NmFhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMTA3MCw2ICsxMDcwLDEwIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hh
bmRsZXIocmVjZWl2ZXIpOgogICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNf
ZnJvbV9jb25kaXRpb25zKGhlYWRlcl9jb25kaXRpb25zKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xu
JykKIAorICAgIHJlc3VsdC5hcHBlbmQoJyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykK
KyAgICByZXN1bHQuYXBwZW5kKCcjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiXG4nKQorICAgIHJl
c3VsdC5hcHBlbmQoIiNlbmRpZlxuXG4iKQorCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdl
cyA9IFtdCiAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CiAgICAgICAgIGlm
IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmli
dXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5D
X0FUVFJJQlVURSkpOgpAQCAtMTE5MSw2ICsxMTk1LDMzIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdl
X2hhbmRsZXIocmVjZWl2ZXIpOgogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG59IC8vIG5hbWVzcGFj
ZSBXZWJLaXRcbicpCiAKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAgcmVzdWx0LmFwcGVu
ZCgnI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG5cbicpCisgICAgcmVzdWx0LmFwcGVuZCgn
bmFtZXNwYWNlIElQQyB7XG5cbicpCisgICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24gPSBO
b25lCisgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgIGlmIHBy
ZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9uICE9IG1lc3NhZ2UuY29uZGl0aW9uOgorICAgICAgICAg
ICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CisgICAgICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2VuZGlmXG4nKQorICAgICAgICAgICAgaWYgbWVzc2FnZS5jb25kaXRpb246Cisg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRp
b24pCisgICAgICAgICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29u
ZGl0aW9uCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6JXNfJXM+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rlcilcbicg
JSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtc
bicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnQXJndW1lbnRzJykpCisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ31cbicpCisgICAgICAgIGhhc19yZXBseSA9IG1lc3NhZ2UucmVwbHlf
cGFyYW1ldGVycyBpcyBub3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJP
Tk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
KQorICAgICAgICBpZiBub3QgaGFzX3JlcGx5OgorICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OiVzXyVzPihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OiVzOjolczo6JXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7XG4nICUgKHJl
Y2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSwgJ1JlcGx5QXJndW1lbnRzJykpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ31cbicpCisgICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbn1c
blxuJykKKyAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcblxuJykKKwogICAgIGlmIHJlY2VpdmVy
LmNvbmRpdGlvbjoKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4jZW5kaWYgLy8gJXNcbicgJSBy
ZWNlaXZlci5jb25kaXRpb24pCiAKQEAgLTEzMDgsNyArMTMzOSw3IEBAIGRlZiBnZW5lcmF0ZV9t
ZXNzYWdlX25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmV0dXJuICcnLmpv
aW4ocmVzdWx0KQogCiAKLWRlZiBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9u
KHJlc3VsdCwgcmVjZWl2ZXJzLCBmdW5jdGlvbl9uYW1lLCBhcmd1bWVudF90eXBlLCBwcmVkaWNh
dGU9bGFtYmRhIG1lc3NhZ2U6IFRydWUpOgorZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNp
b25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsIGZ1bmN0aW9uX25hbWUsIGRlY29kZXJfZnVu
Y3Rpb25fbmFtZSwgYXJndW1lbnRfdHlwZSwgcHJlZGljYXRlPWxhbWJkYSBtZXNzYWdlOiBUcnVl
KToKICAgICByZXN1bHQuYXBwZW5kKCdzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4gJXMoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZXNzYWdlTmFtZSBuYW1lLCBEZWNvZGVy
JiBkZWNvZGVyKVxuJyAlIGZ1bmN0aW9uX25hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykK
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQpAQCAtMTMyOCw3ICsx
MzU5LDcgQEAgZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0
LCByZWNlaXZlcnMsIGZ1bmN0aW9uX25hbWUsIGFyZ3UKICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAgICAgICBw
cmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUgKHJlY2Vp
dmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6JXM6OiVzOjol
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5u
YW1lLCBhcmd1bWVudF90eXBlKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAg
cmV0dXJuICVzPE1lc3NhZ2VOYW1lOjolc18lcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicg
JSAoZGVjb2Rlcl9mdW5jdGlvbl9uYW1lLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQog
ICAgICAgICBpZiBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNlbmRpZlxuJykKICAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgpAQCAt
MTQxMiw3ICsxNDQzLDYgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRp
b25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEKICAgICAgICAgaGVhZGVy
X2NvbmRpdGlvbnMgPSB7CiAgICAgICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmls
ZW5hbWUocmVjZWl2ZXIpOiBbTm9uZV0KICAgICAgICAgfQotICAgICAgICBjb2xsZWN0X2hlYWRl
cl9jb25kaXRpb25zX2Zvcl9yZWNlaXZlcihyZWNlaXZlciwgaGVhZGVyX2NvbmRpdGlvbnMpCiAg
ICAgICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNfZnJvbV9jb25kaXRpb25z
KGhlYWRlcl9jb25kaXRpb25zKQogICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcbicpCkBAIC0xNDI0LDExICsxNDU0LDExIEBA
IGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0aW9u
KHJlY2VpdmVycywgcmVjZWl2ZXJfaGVhCiAgICAgcmVzdWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpXG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAotICAgIGdlbmVy
YXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1Zh
bHVlRm9yQXJndW1lbnRzJywgJ0FyZ3VtZW50cycpCisgICAgZ2VuZXJhdGVfanNfdmFsdWVfY29u
dmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JBcmd1bWVudHMn
LCAnanNWYWx1ZUZvckRlY29kZWRNZXNzYWdlJywgJ0FyZ3VtZW50cycpCiAKICAgICByZXN1bHQu
YXBwZW5kKCdcbicpCiAKLSAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9u
KHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvclJlcGx5QXJndW1lbnRzJywgJ1JlcGx5QXJn
dW1lbnRzJywgbGFtYmRhIG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3Qg
Tm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKKyAgICBnZW5lcmF0ZV9q
c192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZv
clJlcGx5QXJndW1lbnRzJywgJ2pzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5JywgJ1JlcGx5
QXJndW1lbnRzJywgbGFtYmRhIG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBu
b3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUp
IG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKIAogICAgIHJlc3Vs
dC5hcHBlbmQoJ1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSlcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKaW5kZXgg
NTJlM2M3NjM4MzkwYTNjZWYzZGM2NzIzMThjMjBjOTY0ZThlYzA1Zi4uNzA1MDY3NmRjOGEzNDRm
NjVmZGZhNTZlMzE0MmZiYmRlY2UyZjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRp
b25zLmNwcApAQCAtMjgsMTEwICsyOCwxOSBAQAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
IHx8ICFMT0dfRElTQUJMRUQKIAogI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgotI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgotI2lmIEVOQUJM
RShURVNUX0ZFQVRVUkUpCi0jaW5jbHVkZSAiVGVzdFR3b1N0YXRlRW51bS5oIgotI2VuZGlmCiAj
aW5jbHVkZSAiVGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxvcHRpb25h
bD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpZiAoRU5BQkxFKFdFQktJVDIp
ICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkp
Ci0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0j
aWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJ
TkcpCi0jaW5jbHVkZSAiRHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0j
aW5jbHVkZSAiR2VzdHVyZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5j
bHVkZSAiTWFjaFBvcnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUg
IlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpZiAoRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09U
SEVSX01FU1NBR0VfQ09ORElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNU
RURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCi0j
aW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgotI2VuZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0xheWVyLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9h
cmRFdmVudC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+Ci0jaW5j
bHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjZW5kaWYKICNpZiAoRU5B
QkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYg
TUFTVEVSX0FORCkpCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCi0jaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRV
UkVfRk9SX1RFU1RJTkcpCi0jaW5jbHVkZSAiRHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFU
Rk9STShNQUMpCi0jaW5jbHVkZSAiR2VzdHVyZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9S
TShNQUMpCi0jaW5jbHVkZSAiTWFjaFBvcnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5o
IgogI2luY2x1ZGUgIlRlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IgotI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9O
ICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKSB8fCAoRU5BQkxFKFRPVUNIX0VWRU5U
UykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09O
RElUSU9OKSkKLSNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCi0jZW5kaWYKLSNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8V2Vi
Q29yZS9LZXlib2FyZEV2ZW50Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRh
dGEuaD4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaWYg
UExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KLSNlbmRpZgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNlbmRp
ZgotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKICNlbmRpZgogI2luY2x1ZGUgIlRlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXMu
aCIKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotI2VuZGlmCi0jaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRhLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIlRlc3RXaXRoU3RyZWFtTWVzc2FnZXMuaCIKLSNpZiBQTEFURk9STShDT0NP
QSkKLSNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNlbmRpZgogI2luY2x1ZGUg
IlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VzLmgiCi0jaWYgVVNFKEFWRk9VTkRBVElPTikK
LSNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+Ci0jZW5kaWYKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2Ug
SVBDIHsKIApAQCAtMTQxLDE3NiArNTAsMTc2IEBAIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVl
PiBqc1ZhbHVlRm9yQXJndW1lbnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiB7
CiAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0QXN5bmNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0
aE5vQXJndW1lbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3Vt
ZW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhNdWx0aXBsZUFyZ3VtZW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VX
aXRoTXVsdGlwbGVBcmd1bWVudHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRl
c3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5j
TWVzc2FnZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdFN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3VwZXJjbGFzczo6VGVzdFN5bmNocm9ub3VzTWVzc2FnZTo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMOgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cl9Mb2FkU29tZXRoaW5nOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29t
ZXRoaW5nPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VD
SF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNT
QUdFX0NPTkRJVElPTikpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9Ub3VjaEV2ZW50OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NP
TkRJVElPTikpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9B
ZGRFdmVudDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmdFbHNlOgot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9DbG9zZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpDbG9zZTo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfUHJlZmVyZW5jZXNEaWRDaGFuZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UHJlZmVy
ZW5jZXNEaWRDaGFuZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9QcmVmZXJlbmNlc0RpZENoYW5nZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3Vi
bGVBbmRGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91
YmxlQW5kRmxvYXQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kSW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpT
ZW5kSW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1NlbmRJbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXI6OkNyZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3Jp
cHRBbGVydDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2Ny
aXB0QWxlcnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6Okdl
dFBsdWdpbnM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0
dHJpYnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpUZXN0UGFyYW1ldGVyQXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfVGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlbXBsYXRl
VGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX1RlbXBsYXRlVGVzdD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpTZXRWaWRlb0xheWVySUQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZXRWaWRlb0xheWVySUQ+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcjo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJh
dGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9w
ZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFU
VVJFX0ZPUl9URVNUSU5HKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfRXhwZXJpbWVudGFsT3BlcmF0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICNlbmRpZgogI2VuZGlmCiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RF
Ul9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6
TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFVSTD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2Fk
U29tZXRoaW5nOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRT
KSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05E
SVRJT04pKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3Vj
aEV2ZW50OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudD4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVT
VEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudDoKLSAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXM6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlOgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZToK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRD
aGFuZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNE
aWRDaGFuZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmREb3VibGVBbmRGbG9hdDoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5k
SW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmRJbnRzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3Jl
YXRlUGx1Z2luOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6Q3JlYXRlUGx1Z2luOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFT
Y3JpcHRBbGVydDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
b3V0QXR0cmlidXRlczo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lucz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBs
ZUF0dHJpYnV0ZXM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0
cmlidXRlcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVt
cGxhdGVUZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19UZW1wbGF0ZVRlc3Q+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OlNldFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6SW50ZXJwcmV0S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50PihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbjoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OkRlcHJlY2F0ZWRPcGVyYXRpb246OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoRkVBVFVSRV9GT1Jf
VEVTVElORykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRXhw
ZXJpbWVudGFsT3BlcmF0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhwZXJpbWVudGFsT3BlcmF0
aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19FeHBlcmltZW50YWxPcGVyYXRpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoSWZNZXNzYWdlX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJM
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRV
Ukw+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpTZW5kU2Vt
YXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3Jl
X1NlbmRTZW1hcGhvcmU+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZToKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6
UmVjZWl2ZVNlbWFwaG9yZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFNlbWFwaG9yZV9SZWNlaXZlU2VtYXBob3JlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFnZURhdGE6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJ
bWFnZURhdGE6OlNlbmRJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRh
OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoSW1hZ2VEYXRhOjpSZWNlaXZlSW1hZ2VEYXRhOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0
cmluZzoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aFN0cmVhbTo6U2VuZFN0cmluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6
ZWQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZD4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2Vu
ZE1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhT
dHJlYW06OlJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3RyZWFtX1JlY2VpdmVNYWNoU2VuZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNl
aXZlTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRS
ZWNlaXZlTWFjaFNlbmRSaWdodD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJlYW1CdWZmZXI6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdHJlYW1CdWZmZXI6OlNlbmRTdHJlYW1CdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1CdWZmZXJfU2VuZFN0cmVhbUJ1ZmZlcj4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcjoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aENWUGl4
ZWxCdWZmZXI6OlNlbmRDVlBpeGVsQnVmZmVyOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJf
UmVjZWl2ZUNWUGl4ZWxCdWZmZXI6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpSZWNlaXZlQ1ZQaXhlbEJ1
ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZm
ZXJfUmVjZWl2ZUNWUGl4ZWxCdWZmZXI+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMywyOSArMjMyLDI5IEBAIHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yUmVwbHlBcmd1bWVudHMoSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAgICAgc3dpdGNoIChuYW1lKSB7CiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2U6OlJlcGx5QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVs
dGlwbGVBcmd1bWVudHM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRp
cGxlQXJndW1lbnRzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6
VGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJl
cGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhD
b25uZWN0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xh
c3M6OlRlc3RTeW5jTWVzc2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5
bmNocm9ub3VzTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2U6
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lm
IChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9P
UiAmJiBNQVNURVJfQU5EKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6Okdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0
ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIp
ICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkp
CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVz
dE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1l
c3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMzg0MWZhZjMxNzU2
MWNjMmNiM2E0Mjg1YWYzNjUzZmY0YzIyN2M1NC4uMmQyMGZiN2RkOWVhZTdjNThlMzcyN2Y4OGM1
MWJlNzNhMDgwNzYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJ
UENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdp
dGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTc1LDMgKzc5LDIzIEBAIGJvb2wgVGVz
dFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiBVU0UoQVZGT1VOREFU
SU9OKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfU2VuZENWUGl4
ZWxCdWZmZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6U2VuZENWUGl4ZWxCdWZmZXI6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhDVlBp
eGVsQnVmZmVyX1JlY2VpdmVDVlBpeGVsQnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlJlY2VpdmVDVlBp
eGVsQnVmZmVyOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYK
KworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVy
LmNwcAppbmRleCBhYWM2YmIzNWM4ZTE4Yjk3NmJhMTY4ODUxYWY0ZmY1MjM5Y2E1OTYwLi5lMDM5
YmJlNWJmYTBiMmVhZGFlMWRkZWMwNzlhOGU0OTIzNzE1YjZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2Vp
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
SWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogdm9pZCBUZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC01OCwzICs2
MiwyNSBAQCB2b2lkIFRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCisj
aWYgUExBVEZPUk0oQ09DT0EpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVl
PiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdl
X0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdl
RGF0YU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAyNDU0YjNkYWU2
OGQwZDQ0ZTA3NTM3ZmEzZWI4MjUzMDZlN2E0ODRlLi41ZTUyM2NjODY4YzkwMjA5NTMyYzFmYTMz
MWE4OGE4Y2E5ODYyNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2Vp
dmVyLmNwcApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGF0YS5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB2b2lkIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTY2LDMgKzcw
LDIxIEBAIGJvb2wgVGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YT4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURh
dGE6OlNlbmRJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YT4o
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJ
bWFnZURhdGE6OlJlY2VpdmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNl
aXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggYzg5ZjQ3Nzg5MTZhOTQ1OWI3ZThlYTdkMTM4
NTAxZDBjODVlOTZkZC4uNWQwNmNjNjA2NWE3NzFmOWM1YmVmM2ExMjY3ZjU3NTUwZTU2ZDg0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExl
Z2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC01OSw2ICs1OSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5j
bHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAog
bmFtZXNwYWNlIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXIgewpAQCAtMTY4LDQgKzE3MiwxMjQgQEAg
Ym9vbCBUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZlU3luY1Rlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJNZXNzYWdlKElQQzo6Q28KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNpZiBF
TkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6Okxv
YWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0xvYWRTb21ldGhpbmc+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZF
TlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9D
T05ESVRJT04pKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rv
dWNoRXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAo
TkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04p
KQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQorI2VuZGlmCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZT4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cjo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KKyNlbmRpZgordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Rp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNs
b3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUHJlZmVyZW5jZXNEaWRDaGFuZ2U+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
U2VuZERvdWJsZUFuZEZsb2F0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRp
b25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kSW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6U2VuZEludHM6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNy
ZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4o
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcjo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
OjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9U
ZXN0UGFyYW1ldGVyQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVzdFBhcmFtZXRlckF0dHJp
YnV0ZXM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4g
c3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZW1wbGF0ZVRlc3Q+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OlRlbXBsYXRlVGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJ
RD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9CisjaWYgUExBVEZPUk0oTUFDKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpJbnRlcnByZXRLZXlF
dmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYg
RU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEZXByZWNh
dGVkT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5k
aWYKKyNpZiBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElORykKK3RlbXBsYXRlPD4gc3RkOjpvcHRp
b25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworfQorI2VuZGlmCisKK30KKworI2VuZGlmCisKKwogI2VuZGlmIC8vIChFTkFCTEUoV0VC
S0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJf
QU5EKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXgg
NTM2MzgyMzhjM2EzNmM0NDRjNDlmOTJlYmNkYzFhMDY5YzM5ZjYyZC4uMzA3YzU1YzFmYjg1Yjk4
ZTg2M2ZiYzgzMTQ1MmI2MTRkZGZhYzE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1l
c3NhZ2VSZWNlaXZlci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiSVBDU2VtYXBo
b3JlLmgiCiAjaW5jbHVkZSAiVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oIgogCisjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIpCkBAIC02MywzICs2NywyMSBAQCBib29sIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVz
cGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1NlbmRT
ZW1hcGhvcmU+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU2VtYXBob3JlOjpTZW5kU2VtYXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1Jl
Y2VpdmVTZW1hcGhvcmU+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpSZWNlaXZlU2VtYXBob3JlOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMThhZGQ4YTZmYjYwN2I3
NjhhMzcwMzk4NjMzMDUwNGMyNzg2MmZjOC4uY2E2YmUxZjUzMzcxNzljZjBlZTM2ODI4ODlmOWE4
Mjk2ZDk0MGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNl
aXZlci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlci5oIgogI2luY2x1ZGUgIlRlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKIAorI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhTdHJlYW1CdWZmZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQpAQCAtNDcsMyArNTEsMTcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQor
CituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1
ZmZlcl9TZW5kU3RyZWFtQnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6U2VuZFN0cmVhbUJ1ZmZlcjo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorCit9CisKKyNlbmRpZgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDY3ODU0ZjgwOWZlNmYyYzI1
NDIyYzgyMjA1NDNhMThjMGZlMGI2NDYuLjY1ZDk1NDZmOWUyOTBkZWQxNjA3ZGI0YjMyYmI2MTY4
Yzc4MGY5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0z
NCw2ICszNCwxMCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
KyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoU3RyZWFtOjpkaWRS
ZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC02NCwzICs2OCwzNSBAQCB2b2lkIFRl
c3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNv
bm5lY3Rpb25CYXNlJiBjbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nU3luY2hy
b25pemVkOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjaWYgUExBVEZP
Uk0oQ09DT0EpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRNYWNoU2Vu
ZFJpZ2h0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN0cmVhbTo6U2VuZE1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fUmVjZWl2
ZU1hY2hTZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpSZWNlaXZlTWFjaFNlbmRSaWdodDo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbV9TZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kQW5kUmVjZWl2ZU1h
Y2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRp
ZgorCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNl
aXZlci5jcHAKaW5kZXggNDRhNjZkOTdlZDdhNDFlNzE2YTJiZjk4ZWQzNTU0MWU1NzA1OTE3OC4u
M2E5NDExYzlmOGVmYzI5MTc5NTYzYTJjMDUzNTVmMWRkYzZhY2NjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN1cGVyY2xhc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzYsNiArMzYsMTAgQEAKICNp
bmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5k
aWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRoU3VwZXJjbGFz
cyB7CkBAIC0yMDksMyArMjEzLDY3IEBAIGJvb2wgVGVzdFdpdGhTdXBlcmNsYXNzOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFt
ZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xv
YWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoU3VwZXJjbGFzczo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworfQorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9u
YWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01l
c3NhZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4g
c3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNs
YXNzOjpUZXN0QXN5bmNNZXNzYWdlOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhO
b0FyZ3VtZW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
UmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0
aE5vQXJndW1lbnRzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFy
Z3VtZW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRz
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVB
cmd1bWVudHM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50
czo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rp
b24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbj4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNz
OjpUZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0U3luY01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNNZXNzYWdlOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0
U3luY01lc3NhZ2U6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVz
c2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNocm9u
b3VzTWVzc2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisK
K30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCAxOWFlOWIwYzJkNGEyODNhMjRiNWNhZTgzZmQyODgwMTExMDkwNjM1
Li40ZTg4MjM2YmNiMmQ0OTIxM2M5ZDJiNjAzNmViMTI2MzZlNTUzNTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01l
c3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01OSw2ICs1OSwx
MCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5k
aW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RX
aXRob3V0QXR0cmlidXRlcyB7CkBAIC0xNjgsNCArMTcyLDEyNCBAQCBib29sIFRlc3RXaXRob3V0
QXR0cmlidXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19Mb2FkVVJMPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRVUkw6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpMb2FkU29tZXRoaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9CisjZW5kaWYKKyNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNT
QUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK3RlbXBsYXRl
PD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2Vu
ZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJ
T04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpBZGRFdmVudDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0xvYWRTb21ldGhpbmdFbHNlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKK3RlbXBsYXRlPD4gc3Rk
OjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0Nsb3NlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Q
cmVmZXJlbmNlc0RpZENoYW5nZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6
OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZEludHM+KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6U2VuZEludHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdp
bj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpDcmVhdGVQbHVnaW46OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1
bkphdmFTY3JpcHRBbGVydD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpbnM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luczo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0
cmlidXRlczo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11
bHRpcGxlQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0
cmlidXRlczo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVl
PiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0UGFyYW1ldGVy
QXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0PihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXM6OlRlbXBsYXRlVGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXll
cklEPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlNldFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworfQorI2lmIFBMQVRGT1JNKE1BQykKK3RlbXBsYXRlPD4gc3RkOjpvcHRp
b25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXM6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19JbnRlcnByZXRLZXlFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnByZXRLZXlFdmVu
dDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5B
QkxFKERFUFJFQ0FURURfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGVwcmVjYXRlZE9w
ZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisj
aWYgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJTkcpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhw
ZXJpbWVudGFsT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9
CisjZW5kaWYKKworfQorCisjZW5kaWYKKworCiAjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAm
JiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453191</attachid>
            <date>2022-02-25 03:45:49 -0800</date>
            <delta_ts>2022-02-25 03:54:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237195-20220225134547.patch</filename>
            <type>text/plain</type>
            <size>78587</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0NDRiYmY5ZDgzY2IxNTM2
ODY3NmY1NGM0MzI3NWUzMTYwYmE5MmQuLmM1OWM2NDNmNzg3NmFlNzgyMjBhNmIwZDc3ZmI5YjJi
M2M5M2Q2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDIyLTAyLTI1ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSVBDX1RFU1RJTkdfQVBJ
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaXMgc2xvdyB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJUEMgdGVzdGluZyBB
UEkgbmVlZHMgY29udmVydCBtZXNzYWdlIGRhdGEgYnVmZmVyLCBJUEM6OkRlY29kZXIsIHRvCisg
ICAgICAgIEpTVmFsdWUuIFRoaXMgaXMgYSBydW4tdGltZSBvcGVyYXRpb24uCisgICAgICAgIElQ
QyBtZXNzYWdlIGRlY29kaW5nIGlzIGJhc2VkIG9uIHRlbXBsYXRlcywgYSBjb21waWxlIHRpbWUg
b3BlcmF0aW9uLgorICAgICAgICBJUEMgZ2VuZXJhdG9yIGdlbmVyYXRlcyBNZXNzYWdlQXJndW1l
bnREZXNjcmlwdGlvbnMuY3BwIHdpdGgKKyAgICAgICAgYSBiaWcgc3dpdGNoLiBUaGUgc3dpdGNo
IGhhcyBhIGNhc2UgZm9yIGVhY2ggbWVzc2FnZSBuYW1lLiBUaGUgY2FzZSB3b3VsZAorICAgICAg
ICBjYWxsIHRlbXBsYXRlZCBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxBcmd1bWVudHM+LCB3
aGVyZSB0aGUgQXJndW1lbnRzCisgICAgICAgIGlzIHRoZSB0eXBlIHR1cGxlIGZvciB0aGUgbWVz
c2FnZSBhcmd1bWVudHMuCisKKyAgICAgICAgVGhlIGFib3ZlIHdvdWxkIG1lYW4gdGhhdCBNZXNz
YWdlQXJndW1lbnREZXNjcmlwdGlvbnMgd291bGQgbmVlZCB0bworICAgICAgICBpbmNsdWRlIGFs
bCB0aGUgaGVhZGVycyBmb3IgYWxsIHRoZSBtZXNzYWdlcyBpbiBXZWJLaXQgaW4gb3JkZXIKKyAg
ICAgICAgdG8gcG9wdWxhdGUgdGhlIEFyZ3VtZW50cyB0dXBsZSBmb3IgcGFydGljdWxhciBtZXNz
YWdlLgorICAgICAgICBUaGlzIHdvdWxkIGNhdXNlIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9u
cyB0byBiZSBzbG93IHRvIGNvbXBpbGUgYmVjYXVzZQorICAgICAgICBpdCB3b3VsZCBuZWVkIGFs
bCB0aGUgaGVhZGVycyBpbiBTb3VyY2UvV2ViS2l0IHJlbGF0ZWQgdG8gbWVzc2FnZSBwYXJhbWV0
ZXIgdHlwZXMuCisKKyAgICAgICAgVGhpcyB3b3VsZCBzaG93IHVwIGFzIHNsb3cgY29tcGlsZXMg
dGhhdCB3b3VsZCBjb25zdW1lIG11Y2ggbWVtb3J5ICg1LTZnYikgYW5kIGRvIGEKKyAgICAgICAg
bG90IG9mIHdvcmsuCisKKyAgICAgICAgSXQgd291bGQgYWxzbyBoYXZlIHRvIGNvbXBpbGUgdGhl
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucyBlYWNoIHRpbWUKKyAgICAgICAgYW55IG9mIHRo
ZSBoZWFkZXJzIHdlcmUgdG91Y2hlZC4KKworICAgICAgICBDaGFuZ2UgdGhpcyBzbyB0aGF0IHRo
ZSBiaWcgc3dpdGNoIGNhbGxzIGEgZGVjbGFyZWQgYnV0IG5vdCBkZWZpbmVkCisgICAgICAgIHRl
bXBsYXRlIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZT4gZm9yIGVhY2ggTWVz
c2FnZU5hbWUgY2FzZSBpbiB0aGUKKyAgICAgICAgc3dpdGNoLgorCisgICAgICAgIEluc3RhbnRp
YXRlIHRoZSB0ZW1wbGF0ZSBmb3IgZWFjaCBtZXNzYWdlIGluIHRoZSAqTWVzc2FnZVJlY2VpdmVy
LmNwcCBmaWxlCisgICAgICAgIHRoYXQgZWFjaCBtZXNzYWdlIHJlY2VpdmVyIGhhcy4gVGhpcyBm
aWxlIGFscmVhZHkgaGFzIHRvIGluY2x1ZGUgYWxsIHRoZQorICAgICAgICBoZWFkZXJzIHVzZWQg
Zm9yIHRoYXQgcGFydGljdWxhciBtZXNzYWdlIHJlY2VpdmVyLiBUaGVzZSBmaWxlcyBhcmUgc21h
bGwgYW5kIGNvbXBpbGUKKyAgICAgICAgZmFzdC4KKworICAgICAgICBBZnRlciB0aGlzIGNoYW5n
ZSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIG9ubHkgaW5jbHVkZXMgdGhlIG1lc3Nh
Z2UKKyAgICAgICAgZGVmaW5pdGlvbiBoZWFkZXJzLCBkb2VzIG5vdCB1c2UgbXVjaCBtb3JlIHRo
YW4gdGhlIHN0YW5kYXJkIDFnYisgb2YgbWVtb3J5CisgICAgICAgIHdoaWxlIGNvbXBpbGluZyBh
bmQgaXMgcmVsYXRpdmVseSBmYXN0IHRvIGNvbXBpbGUuIEFsc28gaWYgYW55IG9mIHRoZSBkZXBl
bmRlbnQKKyAgICAgICAgaGVhZGVycyBhcmUgdG91Y2hlZCwgb25seSB0aGUgY29ycmVzcG9uZGlu
ZyBzbWFsbCAqTWVzc2FnZVJlY2VpdmVyLmNwcCBmaWxlcyBhcmUgY29tcGlsZWQuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgaXMgbmVlZGVkIGZvciBmdXJ0aGVyIGltcHJvdmUgdGhlIEpTIHRlc3Rp
bmcgQVBJIGltcGxlbWVudGF0aW9uLgorICAgICAgICBBZGRpbmcgbmV3IG9wZXJhdGlvbnMgdGhh
dCBlbXBsb3kgdGhlIHNhbWUgc3RyYXRlZ3ksIGVnLiBzd2l0Y2ggYW5kIGEgY29tcGxleAorICAg
ICAgICB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLCB3b3VsZCBwb3NzaWJseSBqdXN0IG1ha2UgdGhl
IG1hdHRlciB3b3JzZS4gTmV3IG9wZXJhdGlvbnMKKyAgICAgICAgdGhhdCBhcmUgbmVlZGVkIGFy
ZSBtZXNzYWdlIHNlbmRzLCB3aGljaCB1c2UgdGVtcGxhdGVzIHNpbWlsYXJseSB0byB0aGUgbWVz
c2FnZQorICAgICAgICBkZWNvZGUgY2FzZSB0aGF0IGlzIGltcGxlbWVudCBoZXJlLgorCisgICAg
ICAgIFRoaXMgY2hhbmdlIHJlZ2VuZXJhdGVzIHRoZSBjaGVja2VkLWluIHRlc3QgY29udGVudCB0
aGF0IGNhbiBiZSB1c2VkIHRvIHJldmlldworICAgICAgICB3aGF0IGtpbmQgb2YgY2hhbmdlcyB0
aGUgcmVhbCBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGFuZCBNZXNzYWdlUmVjZWl2
ZXIuY3BwcworICAgICAgICBnZXQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSlNJUENCaW5k
aW5nLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChn
ZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfanNfdmFsdWVfY29u
dmVyc2lvbl9mdW5jdGlvbik6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rl
c2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yQXJndW1lbnRzKToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvclJlcGx5QXJndW1lbnRzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4pOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aElmTWVzc2FnZV9Mb2FkVVJMPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFn
ZURhdGE+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2Fk
U29tZXRoaW5nPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50Pik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9BZGRFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfQ2xvc2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hh
bmdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1NlbmRJbnRzPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KToK
KyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2lucz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBs
YXRlVGVzdD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RlcHJlY2F0ZWRP
cGVyYXRpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJl
Y2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlPik6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVf
UmVjZWl2ZVNlbWFwaG9yZT4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5k
U3RyZWFtQnVmZmVyPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmln
aHQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRB
bmRSZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6Ompz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xv
YWRVUkw+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VX
aXRoTm9Bcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0
aXBsZUFyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhD
b25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25u
ZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNN
ZXNzYWdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3Nh
Z2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw+KToKKyAgICAgICAgKElQ
Qzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFNvbWV0aGluZz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50Pik6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhp
bmdFbHNlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0Rp
ZENoYW5nZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfU2VuZEludHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19HZXRQbHVnaW5zPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAo
SVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0
Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRl
cnByZXRLZXlFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgorCiAyMDIyLTAyLTIz
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjkwMTc1KTogVGV4dHVyZSB1cGxvYWQgZnJvbSB2aWRlbyBhbmQgdXNlciBtZWRpYSBp
cyBzbG93ZXIgdGhhbiBleHBlY3RlZCBmb3Igbm9uLUdQVVAgV2ViR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKaW5kZXggZWQxNjQ0MmNiOTY2ZjAzNDRiYjEwYzFm
M2U5MDZiYjhiZTZjZWQ2My4uZjgwN2FlYjdmZDUzNDgxNDFlYzBlNGFmMWRlM2M4YTlkODkyMDc5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKQEAgLTE1Niw2
ICsxNTYsMTcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gcHV0SlNWYWx1
ZUZvckRlY29kZUFyZ3VtZW50SW5BcnJheTw+KGdsb2JhbE9iamVjdCwgZGVjb2RlciwgYXJyYXks
IDAsIGR1bW15QXJndW1lbnRzKTsKIH0KIAorLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBzcGVjaWFs
aXplZCBieSBlYWNoIG1lc3NhZ2UgaW4gdGhlaXIgb3duIGdlbmVyYXRlZCBmaWxlLgorLy8gRWFj
aCBpbXBsZW1lbnRhdGlvbiB3aWxsIGp1c3QgY2FsbCBhYm92ZSBganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHMoKWAuIFRoaXMgd2F5IHRoZSBiaW5kaW5ncyBpbXBsZW1lbnRhdGlvbgorLy8gY2Fu
OgorLy8gMSkgZ2VuZXJhdGUgYSBiaWcgc3dpdGNoIGhhbmRpbmcgZWFjaCBtZXNzYWdlIHdpdGgg
Y2FsbHMgdG8ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlIGFuZCBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2VSZXBseQorLy8gMikgcmF0aGVyIHRoZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgaW4g
b3RoZXIgZmlsZXMgd2lsbCBhY3R1YWxseSBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9uLgorLy8gSWYg
dGhlIGJpZyBzd2l0Y2ggd291bGQgbmVlZCBjYWxsIGBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
cygpYCBkaXJlY3RseSwgaXQgd291bGQgbmVlZCB0byB1bmRlcnN0YW5kIGFsbCB0aGUgYXJndW1l
bnRzCisvLyBhbGwgdGhlIG1lc3NhZ2VzIGhhdmUuCit0ZW1wbGF0ZTxNZXNzYWdlTmFtZT4KK3N0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOwordGVtcGxhdGU8TWVzc2FnZU5hbWU+Citz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHko
SlNDOjpKU0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDUzYzNkOTYwZDNiYTdjYmQ4
ZGFmOGNiMDVhNmIyNTI1ZDU1YmZkYzQuLjc1NGM3YzBlMGZjMTlkYWJhM2NhOWUwZmE0NTY0ZTYx
MDE3NmFhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAt
MTA3MCw2ICsxMDcwLDEwIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIp
OgogICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNfZnJvbV9jb25kaXRpb25z
KGhlYWRlcl9jb25kaXRpb25zKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAorICAgIHJlc3Vs
dC5hcHBlbmQoJyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKKyAgICByZXN1bHQuYXBw
ZW5kKCcjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoIiNl
bmRpZlxuXG4iKQorCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtdCiAgICAgZm9y
IG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CiAgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlf
cGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VT
X0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgpA
QCAtMTE5MSw2ICsxMTk1LDMzIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2
ZXIpOgogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG59IC8vIG5hbWVzcGFjZSBXZWJLaXRcbicpCiAK
KyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpXG5cbicpCisgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIElQQyB7
XG5cbicpCisgICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24gPSBOb25lCisgICAgZm9yIG1l
c3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgIGlmIHByZXZpb3VzX21lc3NhZ2Vf
Y29uZGl0aW9uICE9IG1lc3NhZ2UuY29uZGl0aW9uOgorICAgICAgICAgICAgaWYgcHJldmlvdXNf
bWVzc2FnZV9jb25kaXRpb246CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlm
XG4nKQorICAgICAgICAgICAgaWYgbWVzc2FnZS5jb25kaXRpb246CisgICAgICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCisgICAgICAgICAg
ICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6JXNfJXM+KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFt
ZSwgbWVzc2FnZS5uYW1lKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKKyAgICAgICAg
cmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIu
bmFtZSwgbWVzc2FnZS5uYW1lLCAnQXJndW1lbnRzJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQo
J31cbicpCisgICAgICAgIGhhc19yZXBseSA9IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBu
b3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUp
IG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKQorICAgICAgICBpZiBu
b3QgaGFzX3JlcGx5OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OiVzXyVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3Nh
Z2UubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OiVz
Ojolczo6JXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1l
c3NhZ2UubmFtZSwgJ1JlcGx5QXJndW1lbnRzJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31c
bicpCisgICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyNlbmRpZlxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbn1cblxuJykKKyAgICByZXN1
bHQuYXBwZW5kKCcjZW5kaWZcblxuJykKKwogICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnXG4jZW5kaWYgLy8gJXNcbicgJSByZWNlaXZlci5jb25kaXRp
b24pCiAKQEAgLTEzMDgsNyArMTMzOSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2lt
cGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQogCiAK
LWRlZiBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2
ZXJzLCBmdW5jdGlvbl9uYW1lLCBhcmd1bWVudF90eXBlLCBwcmVkaWNhdGU9bGFtYmRhIG1lc3Nh
Z2U6IFRydWUpOgorZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVz
dWx0LCByZWNlaXZlcnMsIGZ1bmN0aW9uX25hbWUsIGRlY29kZXJfZnVuY3Rpb25fbmFtZSwgYXJn
dW1lbnRfdHlwZSwgcHJlZGljYXRlPWxhbWJkYSBtZXNzYWdlOiBUcnVlKToKICAgICByZXN1bHQu
YXBwZW5kKCdzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4gJXMoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBNZXNzYWdlTmFtZSBuYW1lLCBEZWNvZGVyJiBkZWNvZGVyKVxuJyAl
IGZ1bmN0aW9uX25hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQpAQCAtMTMyOCw3ICsxMzU5LDcgQEAgZGVmIGdl
bmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsIGZ1
bmN0aW9uX25hbWUsIGFyZ3UKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAgICAgICBwcmV2aW91c19tZXNzYWdl
X2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3Nh
Z2UubmFtZSkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCBhcmd1bWVudF90
eXBlKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuICVzPE1lc3Nh
Z2VOYW1lOjolc18lcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAoZGVjb2Rlcl9mdW5j
dGlvbl9uYW1lLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQogICAgICAgICBpZiBwcmV2
aW91c19tZXNzYWdlX2NvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRp
ZlxuJykKICAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgpAQCAtMTQxMiw3ICsxNDQzLDYg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRp
b24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEKICAgICAgICAgaGVhZGVyX2NvbmRpdGlvbnMgPSB7
CiAgICAgICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIp
OiBbTm9uZV0KICAgICAgICAgfQotICAgICAgICBjb2xsZWN0X2hlYWRlcl9jb25kaXRpb25zX2Zv
cl9yZWNlaXZlcihyZWNlaXZlciwgaGVhZGVyX2NvbmRpdGlvbnMpCiAgICAgICAgIHJlc3VsdCAr
PSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNfZnJvbV9jb25kaXRpb25zKGhlYWRlcl9jb25kaXRp
b25zKQogICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcjZW5kaWZcbicpCkBAIC0xNDI0LDExICsxNDU0LDExIEBAIGRlZiBnZW5lcmF0ZV9t
ZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycywgcmVj
ZWl2ZXJfaGVhCiAgICAgcmVzdWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAotICAgIGdlbmVyYXRlX2pzX3ZhbHVlX2Nv
bnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9yQXJndW1lbnRz
JywgJ0FyZ3VtZW50cycpCisgICAgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlv
bihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JBcmd1bWVudHMnLCAnanNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlJywgJ0FyZ3VtZW50cycpCiAKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAK
LSAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2
ZXJzLCAnanNWYWx1ZUZvclJlcGx5QXJndW1lbnRzJywgJ1JlcGx5QXJndW1lbnRzJywgbGFtYmRh
IG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZSBhbmQgKG1lc3Nh
Z2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKKyAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJz
aW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvclJlcGx5QXJndW1lbnRz
JywgJ2pzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5JywgJ1JlcGx5QXJndW1lbnRzJywgbGFt
YmRhIG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZSBhbmQgKG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFz
X2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKaW5kZXggNTJlM2M3NjM4MzkwYTNj
ZWYzZGM2NzIzMThjMjBjOTY0ZThlYzA1Zi4uNzA1MDY3NmRjOGEzNDRmNjVmZGZhNTZlMzE0MmZi
YmRlY2UyZjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcApAQCAtMjgs
MTEwICsyOCwxOSBAQAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpIHx8ICFMT0dfRElTQUJM
RUQKIAogI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJz
LmgiCi0jaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci0jaW5jbHVkZSAiVGVzdFR3b1N0YXRlRW51bS5oIgotI2VuZGlmCiAjaW5jbHVkZSAiVGVzdFdp
dGhTdXBlcmNsYXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxvcHRpb25hbD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCi0jaW5jbHVkZSAiQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaWYgRU5BQkxFKERFUFJF
Q0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJTkcpCi0jaW5jbHVkZSAi
RHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAiR2VzdHVy
ZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAiTWFjaFBvcnQu
aCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgot
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpZiAoRU5BQkxFKFRPVUNIX0VWRU5U
UykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09O
RElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05E
SVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCi0jaW5jbHVkZSAiV2ViVG91
Y2hFdmVudC5oIgotI2VuZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+Ci0j
aWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgotI2Vu
ZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+Ci0jaW5jbHVkZSA8dXRpbGl0eT4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIpICYm
IChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCi0j
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaWYg
RU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJTkcp
Ci0jaW5jbHVkZSAiRHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5j
bHVkZSAiR2VzdHVyZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVk
ZSAiTWFjaFBvcnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlRl
c3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2lmIChFTkFCTEUo
VE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJf
TUVTU0FHRV9DT05ESVRJT04pKSB8fCAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9N
RVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSNpbmNs
dWRlICJXZWJUb3VjaEV2ZW50LmgiCi0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
TGF5ZXIuaD4KLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2
ZW50Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KLSNpbmNsdWRl
IDx1dGlsaXR5PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQot
I2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNlbmRpZgotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNl
bmRpZgogI2luY2x1ZGUgIlRlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXMuaCIKLSNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotI2VuZGlmCi0jaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiVGVzdFdpdGhT
ZW1hcGhvcmVNZXNzYWdlcy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRhLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIlRl
c3RXaXRoU3RyZWFtTWVzc2FnZXMuaCIKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlIDx3
dGYvTWFjaFNlbmRSaWdodC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0jaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIgogI2luY2x1ZGUgIlRlc3RX
aXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNlbmRpZgogI2luY2x1ZGUgIlRlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlck1lc3NhZ2VzLmgiCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSNpbmNsdWRlIDxXZWJD
b3JlL0NWVXRpbGl0aWVzLmg+Ci0jZW5kaWYKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKIApAQCAtMTQx
LDE3NiArNTAsMTc2IEBAIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yQXJn
dW1lbnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiB7CiAgICAgc3dpdGNoIChu
YW1lKSB7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdXBlcmNsYXNzOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lm
IEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdl
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOgot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFy
Z3VtZW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1
bWVudHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VX
aXRoQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jTWVzc2FnZTo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNz
YWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVz
dFN5bmNocm9ub3VzTWVzc2FnZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8
fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRVUkw6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2Fk
VVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAg
ICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5n
OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChO
RVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikp
CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50
OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50PihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURf
TUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVudDoKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmdFbHNlOgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEaWRSZWNl
aXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9EaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9D
bG9zZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpDbG9zZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUHJlZmVy
ZW5jZXNEaWRDaGFuZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UHJlZmVyZW5jZXNEaWRDaGFuZ2U6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Q
cmVmZXJlbmNlc0RpZENoYW5nZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3VibGVBbmRGbG9hdDoKLSAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9TZW5kSW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kSW50czo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmRJbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNyZWF0ZVBs
dWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0NyZWF0ZVBsdWdpbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydDoKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxlcnQ+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9HZXRQbHVnaW5zOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpbnM6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVn
aW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcjo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0
UGFyYW1ldGVyQXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
VGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlbXBsYXRlVGVzdDo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBsYXRlVGVz
dD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZXRW
aWRlb0xheWVySUQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9TZXRWaWRlb0xheWVySUQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkludGVy
cHJldEtleUV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJhdGlvbjoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJhdGlvbj4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFUVVJFX0ZPUl9URVNUSU5H
KQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRXhwZXJpbWVu
dGFsT3BlcmF0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbjo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4
cGVyaW1lbnRhbE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2Vu
ZGlmCiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwg
TUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFVSTDo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFVSTD4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
b3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01F
U1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50OgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09O
RElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudDoKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6
OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19BZGRFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGlu
Z0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0xvYWRTb21ldGhpbmdFbHNlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAg
ICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xp
Y3lEZWNpc2lvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZToKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19DbG9zZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFuZ2U6Ci0gICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFuZ2U+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX1NlbmREb3VibGVBbmRGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmREb3VibGVB
bmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50czoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXM6OlNlbmRJbnRzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19TZW5kSW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
b3V0QXR0cmlidXRlczo6Q3JlYXRlUGx1Z2luOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkph
dmFTY3JpcHRBbGVydDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRBbGVydDo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVuSmF2
YVNjcmlwdEFsZXJ0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6
R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfR2V0UGx1Z2lucz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlcz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfVGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVtcGxhdGVUZXN0OjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0
ZVRlc3Q+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNl
dFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpEaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6SW50ZXJwcmV0
S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0ludGVycHJldEtleUV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbjoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkRlcHJlY2F0ZWRPcGVyYXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElORykKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRXhwZXJpbWVudGFsT3BlcmF0
aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhwZXJpbWVudGFsT3BlcmF0aW9uOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19FeHBlcmltZW50YWxP
cGVyYXRpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xv
YWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aElmTWVzc2FnZV9Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNlbWFw
aG9yZV9TZW5kU2VtYXBob3JlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpTZW5kU2VtYXBob3JlOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1NlbmRTZW1hcGhvcmU+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
ZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6UmVjZWl2ZVNlbWFwaG9y
ZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9SZWNl
aXZlU2VtYXBob3JlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFnZURhdGE6Ci0gICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURhdGE6OlNlbmRJ
bWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURh
dGFfU2VuZEltYWdlRGF0YT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSW1hZ2VEYXRh
OjpSZWNlaXZlSW1hZ2VEYXRhOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAg
ICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZzoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVh
bTo6U2VuZFN0cmluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbV9TZW5kU3RyaW5nPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06
OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZD4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN0cmVhbV9TZW5kTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZE1hY2hTZW5kUmlnaHQ6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hT
ZW5kUmlnaHQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6Ci0gICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlJlY2VpdmVN
YWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Ry
ZWFtX1JlY2VpdmVNYWNoU2VuZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdo
dDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN0cmVhbTo6U2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRS
aWdodD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJlYW1CdWZmZXI6Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW1CdWZm
ZXI6OlNlbmRTdHJlYW1CdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdHJlYW1CdWZmZXJfU2VuZFN0cmVhbUJ1ZmZlcj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
Q1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlNlbmRD
VlBpeGVsQnVmZmVyOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQ
aXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVjZWl2ZUNWUGl4ZWxC
dWZmZXI6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpSZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVjZWl2ZUNWUGl4
ZWxCdWZmZXI+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBkZWZhdWx0Ogog
ICAgICAgICBicmVhazsKQEAgLTMyMywyOSArMjMyLDI5IEBAIHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yUmVwbHlBcmd1bWVudHMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgc3dpdGNoIChuYW1lKSB7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZToKLSAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2U6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVw
bHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVz
dEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBs
eTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9B
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOjpS
ZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jTWVz
c2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2Fn
ZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2U6OlJlcGx5QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hy
b25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIChFTkFCTEUoV0VCS0lU
MikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5E
KSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0TXVsdGlw
bGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19H
ZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmli
dXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OlJlcGx5QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19U
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1
ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMzg0MWZhZjMxNzU2MWNjMmNiM2E0Mjg1YWYz
NjUzZmY0YzIyN2M1NC4uMmQyMGZiN2RkOWVhZTdjNThlMzcyN2Y4OGM1MWJlNzNhMDgwNzYzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENW
UGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApA
QCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhDVlBpeGVsQnVmZmVy
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKQEAgLTc1LDMgKzc5LDIzIEBAIGJvb2wgVGVzdFdpdGhDVlBpeGVsQnVm
ZmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQ
SSkKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfU2VuZENWUGl4ZWxCdWZmZXI+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlcjo6U2VuZENWUGl4ZWxCdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyX1JlY2Vp
dmVDVlBpeGVsQnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlJlY2VpdmVDVlBpeGVsQnVmZmVyOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCBhYWM2
YmIzNWM4ZTE4Yjk3NmJhMTY4ODUxYWY0ZmY1MjM5Y2E1OTYwLi5lMDM5YmJlNWJmYTBiMmVhZGFl
MWRkZWMwNzlhOGU0OTIzNzE1YjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2Fn
ZVJlY2VpdmVyLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRl
ICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBU
ZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC01OCwzICs2MiwyNSBAQCB2b2lkIFRl
c3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCisjaWYgUExBVEZPUk0oQ09D
T0EpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNz
YWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5k
aWYKKyNpZiBQTEFURk9STShHVEspCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNz
YWdlX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VSZWNl
aXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1h
Z2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAyNDU0YjNkYWU2OGQwZDQ0ZTA3NTM3ZmEz
ZWI4MjUzMDZlN2E0ODRlLi41ZTUyM2NjODY4YzkwMjA5NTMyYzFmYTMzMWE4OGE4Y2E5ODYyNWVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
SW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzMs
NiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGF0YS5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorI2luY2x1ZGUg
IkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFRl
c3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTY2LDMgKzcwLDIxIEBAIGJvb2wgVGVz
dFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YT4oSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURhdGE6OlNlbmRJbWFnZURh
dGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3Rk
OjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YT4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURhdGE6OlJlY2Vp
dmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKworfQor
CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNl
aXZlci5jcHAKaW5kZXggYzg5ZjQ3Nzg5MTZhOTQ1OWI3ZThlYTdkMTM4NTAxZDBjODVlOTZkZC4u
NWQwNmNjNjA2NWE3NzFmOWM1YmVmM2ExMjY3ZjU3NTUwZTU2ZDg0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVz
c2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01OSw2ICs1OSwx
MCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5k
aW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXIgewpAQCAtMTY4LDQgKzE3MiwxMjQgQEAgYm9vbCBUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZlU3luY1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdl
KElQQzo6Q28KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpT
Qzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRVUkw6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmc+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVE
X01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQ+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0Vf
Q09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpB
ZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFNvbWV0aGlu
Z0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNsb3NlOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfUHJlZmVyZW5jZXNEaWRDaGFuZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlByZWZl
cmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZERvdWJsZUFuZEZs
b2F0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9TZW5kSW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6U2VuZEludHM6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNyZWF0ZVBsdWdpbjo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6
UnVuSmF2YVNjcmlwdEFsZXJ0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9
Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lucz4o
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVw
bHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpSZXBs
eUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0TXVsdGlwbGVB
dHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFyYW1ldGVyQXR0
cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9UZW1wbGF0ZVRlc3Q+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlbXBsYXRlVGVz
dDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRD4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cjo6U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9
CisjaWYgUExBVEZPUk0oTUFDKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0ludGVy
cHJldEtleUV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpJbnRlcnByZXRLZXlFdmVudDo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKERFUFJFQ0FU
RURfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9E
ZXByZWNhdGVkT3BlcmF0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUo
RkVBVFVSRV9GT1JfVEVTVElORykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkV4cGVyaW1lbnRh
bE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlm
CisKK30KKworI2VuZGlmCisKKwogI2VuZGlmIC8vIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RF
RF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNTM2MzgyMzhjM2EzNmM0
NDRjNDlmOTJlYmNkYzFhMDY5YzM5ZjYyZC4uMzA3YzU1YzFmYjg1Yjk4ZTg2M2ZiYzgzMTQ1MmI2
MTRkZGZhYzE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5j
cHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVk
ZSAiVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oIgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogdm9pZCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC02MywzICs2
NywyMSBAQCBib29sIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1NlbmRTZW1hcGhvcmU+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBo
b3JlOjpTZW5kU2VtYXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9
Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhvcmU+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U2VtYXBob3JlOjpSZWNlaXZlU2VtYXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMThhZGQ4YTZmYjYwN2I3NjhhMzcwMzk4NjMzMDUw
NGMyNzg2MmZjOC4uY2E2YmUxZjUzMzcxNzljZjBlZTM2ODI4ODlmOWE4Mjk2ZDk0MGJlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTMw
LDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIgogI2luY2x1
ZGUgIlRlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKIAorI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhTdHJlYW1CdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAt
NDcsMyArNTEsMTcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBD
IHsKKwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5kU3RyZWFt
QnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6U2VuZFN0cmVhbUJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworfQorCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDY3ODU0ZjgwOWZlNmYyYzI1NDIyYzgyMjA1NDNhMThj
MGZlMGI2NDYuLjY1ZDk1NDZmOWUyOTBkZWQxNjA3ZGI0YjMyYmI2MTY4Yzc4MGY5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0zNCw2ICszNCwxMCBAQAog
I2VuZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVz
c2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIpCkBAIC02NCwzICs2OCwzNSBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtOjpk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBj
bwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Ry
ZWFtX1NlbmRTdHJpbmc+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRT
dHJpbmdTeW5jaHJvbml6ZWQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nU3luY2hyb25pemVkOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjaWYgUExBVEZPUk0oQ09DT0EpCit0ZW1w
bGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRNYWNoU2VuZFJpZ2h0PihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6
U2VuZE1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3RyZWFtOjpSZWNlaXZlTWFjaFNlbmRSaWdodDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kQW5kUmVj
ZWl2ZU1hY2hTZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXgg
NDRhNjZkOTdlZDdhNDFlNzE2YTJiZjk4ZWQzNTU0MWU1NzA1OTE3OC4uM2E5NDExYzlmOGVmYzI5
MTc5NTYzYTJjMDUzNTVmMWRkYzZhY2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN1cGVyY2xhc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdXBlcmNsYXNz
TWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDxvcHRpb25h
bD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNl
IE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRoU3VwZXJjbGFzcyB7CkBAIC0yMDksMyAr
MjEzLDY3IEBAIGJvb2wgVGVzdFdpdGhTdXBlcmNsYXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisK
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw+KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFz
czo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2lmIEVO
QUJMRShURVNUX0ZFQVRVUkUpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVl
PiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2U6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNN
ZXNzYWdlOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBs
YXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9B
cmd1bWVudHM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzPihK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1
cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6OlJlcGx5QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpT
Qzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNs
YXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJj
bGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50czo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6
VGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQorI2VuZGlmCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
U3luY01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY01lc3NhZ2U6OlJl
cGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNz
OjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RT
eW5jaHJvbm91c01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNocm9ub3VzTWVzc2FnZTo6UmVw
bHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisKK30KKworI2VuZGlmCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhv
dXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRl
eCAxOWFlOWIwYzJkNGEyODNhMjRiNWNhZTgzZmQyODgwMTExMDkwNjM1Li40ZTg4MjM2YmNiMmQ0
OTIxM2M5ZDJiNjAzNmViMTI2MzZlNTUzNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0
dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01OSw2ICs1OSwxMCBAQAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRob3V0QXR0cmlidXRl
cyB7CkBAIC0xNjgsNCArMTcyLDEyNCBAQCBib29sIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVz
cGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19M
b2FkVVJMPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpMb2Fk
U29tZXRoaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYK
KyNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8
fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VG91Y2hFdmVudDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgKEVOQUJM
RShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhF
Ul9NRVNTQUdFX0NPTkRJVElPTikpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19BZGRFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdF
bHNlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpEaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Nsb3NlPihKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENo
YW5nZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmREb3VibGVBbmRG
bG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZEludHM+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6U2Vu
ZEludHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4g
c3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpbj4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
OjpDcmVhdGVQbHVnaW46OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVy
dD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0dldFBsdWdpbnM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRl
cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVzdE11
bHRpcGxlQXR0cmlidXRlczo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1l
dGVyQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0UGFyYW1ldGVyQXR0cmlidXRlczo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlbXBsYXRl
VGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OlNldFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQorI2lmIFBMQVRGT1JNKE1BQykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRpZENy
ZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRlcnBy
ZXRLZXlFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnByZXRLZXlFdmVudDo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKERFUFJFQ0FURURf
RkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJl
Y2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGVwcmVjYXRlZE9wZXJhdGlvbjo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKEZFQVRV
UkVfRk9SX1RFU1RJTkcpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhwZXJpbWVudGFsT3BlcmF0
aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQor
CisjZW5kaWYKKworCiAjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RF
Ul9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453192</attachid>
            <date>2022-02-25 03:54:18 -0800</date>
            <delta_ts>2022-02-25 03:59:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237195-20220225135416.patch</filename>
            <type>text/plain</type>
            <size>78646</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0NDRiYmY5ZDgzY2IxNTM2
ODY3NmY1NGM0MzI3NWUzMTYwYmE5MmQuLmM1OWM2NDNmNzg3NmFlNzgyMjBhNmIwZDc3ZmI5YjJi
M2M5M2Q2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDIyLTAyLTI1ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSVBDX1RFU1RJTkdfQVBJ
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaXMgc2xvdyB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJUEMgdGVzdGluZyBB
UEkgbmVlZHMgY29udmVydCBtZXNzYWdlIGRhdGEgYnVmZmVyLCBJUEM6OkRlY29kZXIsIHRvCisg
ICAgICAgIEpTVmFsdWUuIFRoaXMgaXMgYSBydW4tdGltZSBvcGVyYXRpb24uCisgICAgICAgIElQ
QyBtZXNzYWdlIGRlY29kaW5nIGlzIGJhc2VkIG9uIHRlbXBsYXRlcywgYSBjb21waWxlIHRpbWUg
b3BlcmF0aW9uLgorICAgICAgICBJUEMgZ2VuZXJhdG9yIGdlbmVyYXRlcyBNZXNzYWdlQXJndW1l
bnREZXNjcmlwdGlvbnMuY3BwIHdpdGgKKyAgICAgICAgYSBiaWcgc3dpdGNoLiBUaGUgc3dpdGNo
IGhhcyBhIGNhc2UgZm9yIGVhY2ggbWVzc2FnZSBuYW1lLiBUaGUgY2FzZSB3b3VsZAorICAgICAg
ICBjYWxsIHRlbXBsYXRlZCBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxBcmd1bWVudHM+LCB3
aGVyZSB0aGUgQXJndW1lbnRzCisgICAgICAgIGlzIHRoZSB0eXBlIHR1cGxlIGZvciB0aGUgbWVz
c2FnZSBhcmd1bWVudHMuCisKKyAgICAgICAgVGhlIGFib3ZlIHdvdWxkIG1lYW4gdGhhdCBNZXNz
YWdlQXJndW1lbnREZXNjcmlwdGlvbnMgd291bGQgbmVlZCB0bworICAgICAgICBpbmNsdWRlIGFs
bCB0aGUgaGVhZGVycyBmb3IgYWxsIHRoZSBtZXNzYWdlcyBpbiBXZWJLaXQgaW4gb3JkZXIKKyAg
ICAgICAgdG8gcG9wdWxhdGUgdGhlIEFyZ3VtZW50cyB0dXBsZSBmb3IgcGFydGljdWxhciBtZXNz
YWdlLgorICAgICAgICBUaGlzIHdvdWxkIGNhdXNlIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9u
cyB0byBiZSBzbG93IHRvIGNvbXBpbGUgYmVjYXVzZQorICAgICAgICBpdCB3b3VsZCBuZWVkIGFs
bCB0aGUgaGVhZGVycyBpbiBTb3VyY2UvV2ViS2l0IHJlbGF0ZWQgdG8gbWVzc2FnZSBwYXJhbWV0
ZXIgdHlwZXMuCisKKyAgICAgICAgVGhpcyB3b3VsZCBzaG93IHVwIGFzIHNsb3cgY29tcGlsZXMg
dGhhdCB3b3VsZCBjb25zdW1lIG11Y2ggbWVtb3J5ICg1LTZnYikgYW5kIGRvIGEKKyAgICAgICAg
bG90IG9mIHdvcmsuCisKKyAgICAgICAgSXQgd291bGQgYWxzbyBoYXZlIHRvIGNvbXBpbGUgdGhl
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucyBlYWNoIHRpbWUKKyAgICAgICAgYW55IG9mIHRo
ZSBoZWFkZXJzIHdlcmUgdG91Y2hlZC4KKworICAgICAgICBDaGFuZ2UgdGhpcyBzbyB0aGF0IHRo
ZSBiaWcgc3dpdGNoIGNhbGxzIGEgZGVjbGFyZWQgYnV0IG5vdCBkZWZpbmVkCisgICAgICAgIHRl
bXBsYXRlIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZT4gZm9yIGVhY2ggTWVz
c2FnZU5hbWUgY2FzZSBpbiB0aGUKKyAgICAgICAgc3dpdGNoLgorCisgICAgICAgIEluc3RhbnRp
YXRlIHRoZSB0ZW1wbGF0ZSBmb3IgZWFjaCBtZXNzYWdlIGluIHRoZSAqTWVzc2FnZVJlY2VpdmVy
LmNwcCBmaWxlCisgICAgICAgIHRoYXQgZWFjaCBtZXNzYWdlIHJlY2VpdmVyIGhhcy4gVGhpcyBm
aWxlIGFscmVhZHkgaGFzIHRvIGluY2x1ZGUgYWxsIHRoZQorICAgICAgICBoZWFkZXJzIHVzZWQg
Zm9yIHRoYXQgcGFydGljdWxhciBtZXNzYWdlIHJlY2VpdmVyLiBUaGVzZSBmaWxlcyBhcmUgc21h
bGwgYW5kIGNvbXBpbGUKKyAgICAgICAgZmFzdC4KKworICAgICAgICBBZnRlciB0aGlzIGNoYW5n
ZSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIG9ubHkgaW5jbHVkZXMgdGhlIG1lc3Nh
Z2UKKyAgICAgICAgZGVmaW5pdGlvbiBoZWFkZXJzLCBkb2VzIG5vdCB1c2UgbXVjaCBtb3JlIHRo
YW4gdGhlIHN0YW5kYXJkIDFnYisgb2YgbWVtb3J5CisgICAgICAgIHdoaWxlIGNvbXBpbGluZyBh
bmQgaXMgcmVsYXRpdmVseSBmYXN0IHRvIGNvbXBpbGUuIEFsc28gaWYgYW55IG9mIHRoZSBkZXBl
bmRlbnQKKyAgICAgICAgaGVhZGVycyBhcmUgdG91Y2hlZCwgb25seSB0aGUgY29ycmVzcG9uZGlu
ZyBzbWFsbCAqTWVzc2FnZVJlY2VpdmVyLmNwcCBmaWxlcyBhcmUgY29tcGlsZWQuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgaXMgbmVlZGVkIGZvciBmdXJ0aGVyIGltcHJvdmUgdGhlIEpTIHRlc3Rp
bmcgQVBJIGltcGxlbWVudGF0aW9uLgorICAgICAgICBBZGRpbmcgbmV3IG9wZXJhdGlvbnMgdGhh
dCBlbXBsb3kgdGhlIHNhbWUgc3RyYXRlZ3ksIGVnLiBzd2l0Y2ggYW5kIGEgY29tcGxleAorICAg
ICAgICB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLCB3b3VsZCBwb3NzaWJseSBqdXN0IG1ha2UgdGhl
IG1hdHRlciB3b3JzZS4gTmV3IG9wZXJhdGlvbnMKKyAgICAgICAgdGhhdCBhcmUgbmVlZGVkIGFy
ZSBtZXNzYWdlIHNlbmRzLCB3aGljaCB1c2UgdGVtcGxhdGVzIHNpbWlsYXJseSB0byB0aGUgbWVz
c2FnZQorICAgICAgICBkZWNvZGUgY2FzZSB0aGF0IGlzIGltcGxlbWVudCBoZXJlLgorCisgICAg
ICAgIFRoaXMgY2hhbmdlIHJlZ2VuZXJhdGVzIHRoZSBjaGVja2VkLWluIHRlc3QgY29udGVudCB0
aGF0IGNhbiBiZSB1c2VkIHRvIHJldmlldworICAgICAgICB3aGF0IGtpbmQgb2YgY2hhbmdlcyB0
aGUgcmVhbCBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGFuZCBNZXNzYWdlUmVjZWl2
ZXIuY3BwcworICAgICAgICBnZXQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSlNJUENCaW5k
aW5nLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChn
ZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfanNfdmFsdWVfY29u
dmVyc2lvbl9mdW5jdGlvbik6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rl
c2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yQXJndW1lbnRzKToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvclJlcGx5QXJndW1lbnRzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4pOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aElmTWVzc2FnZV9Mb2FkVVJMPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFn
ZURhdGE+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2Fk
U29tZXRoaW5nPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50Pik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9BZGRFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfQ2xvc2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hh
bmdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1NlbmRJbnRzPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KToK
KyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2lucz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBs
YXRlVGVzdD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RlcHJlY2F0ZWRP
cGVyYXRpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJl
Y2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlPik6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVf
UmVjZWl2ZVNlbWFwaG9yZT4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5k
U3RyZWFtQnVmZmVyPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmln
aHQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRB
bmRSZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6Ompz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xv
YWRVUkw+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VX
aXRoTm9Bcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0
aXBsZUFyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhD
b25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25u
ZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNN
ZXNzYWdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3Nh
Z2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw+KToKKyAgICAgICAgKElQ
Qzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFNvbWV0aGluZz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50Pik6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhp
bmdFbHNlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0Rp
ZENoYW5nZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfU2VuZEludHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19HZXRQbHVnaW5zPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAo
SVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0
Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRl
cnByZXRLZXlFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgorCiAyMDIyLTAyLTIz
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjkwMTc1KTogVGV4dHVyZSB1cGxvYWQgZnJvbSB2aWRlbyBhbmQgdXNlciBtZWRpYSBp
cyBzbG93ZXIgdGhhbiBleHBlY3RlZCBmb3Igbm9uLUdQVVAgV2ViR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKaW5kZXggZWQxNjQ0MmNiOTY2ZjAzNDRiYjEwYzFm
M2U5MDZiYjhiZTZjZWQ2My4uNzcxZWRkNDUxMWI3ZGNjNTEyODEyOTRlOGM2YWYyZGQ0N2Q4NjE2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKQEAgLTE1Niw2
ICsxNTYsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gcHV0SlNWYWx1
ZUZvckRlY29kZUFyZ3VtZW50SW5BcnJheTw+KGdsb2JhbE9iamVjdCwgZGVjb2RlciwgYXJyYXks
IDAsIGR1bW15QXJndW1lbnRzKTsKIH0KIAorLy8gVGhlIGJpbmRpbmdzIGltcGxlbWVudGF0aW9u
IHdpbGwgY2FsbCB0aGUgZnVuY3Rpb24gdGVtcGxhdGVzIGJlbG93IHRvIGRlY29kZSB0aGUgbWVz
c2FnZXMuCisvLyBUaGVzZSBmdW5jdGlvbiB0ZW1wbGF0ZXMgYXJlIHNwZWNpYWxpemVkIGJ5IGVh
Y2ggbWVzc2FnZSBpbiB0aGVpciBvd24gZ2VuZXJhdGVkIGZpbGUuCisvLyBFYWNoIGltcGxlbWVu
dGF0aW9uIHdpbGwganVzdCBjYWxsIHRoZSBhYm92ZSBganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHMoKWAgZnVuY3Rpb24uCisvLyBUaGlzIGhhcyB0aGUgYmVuZWZpdCB0aGF0IHVwb24gY29tcGls
YXRpb24sIG9ubHkgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIgaW1wbGVtZW50YXRpb24gZmlsZXMgYXJl
IHJlY29tcGlsZWQKKy8vIHdoZW4gdGhlIG1lc3NhZ2UgYXJndW1lbnQgdHlwZXMgY2hhbmdlLgor
Ly8gVGhlIGJpbmRpbmdzIGltcGxlbWVudGF0aW9uLCBlLmcuIHRoZSBjYWxsZXIgb2YganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPD4gZG9lcyBub3QgbmVlZAorLy8gdG8ga25vdyBhbGwgdGhlIG1l
c3NhZ2UgYXJndW1lbnQgdHlwZXMsIGFuZCBuZWVkIHRvIGJlIHJlY29tcGlsZWQgb25seSB3aGVu
IHRoZSBtZXNzYWdlIGl0c2VsZgorLy8gY2hhbmdlcy4KK3RlbXBsYXRlPE1lc3NhZ2VOYW1lPgor
c3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSVBDOjpEZWNvZGVyJik7Cit0ZW1wbGF0ZTxNZXNzYWdlTmFtZT4K
K3N0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBs
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSVBDOjpEZWNvZGVyJik7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNTNjM2Q5NjBkM2JhN2Ni
ZDhkYWY4Y2IwNWE2YjI1MjVkNTViZmRjNC4uNzU0YzdjMGUwZmMxOWRhYmEzY2E5ZTBmYTQ1NjRl
NjEwMTc2YWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0xMDcwLDYgKzEwNzAsMTAgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZl
cik6CiAgICAgcmVzdWx0ICs9IGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlv
bnMoaGVhZGVyX2NvbmRpdGlvbnMpCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCisgICAgcmVz
dWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQorICAgIHJlc3VsdC5h
cHBlbmQoJyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCJcbicpCisgICAgcmVzdWx0LmFwcGVuZCgi
I2VuZGlmXG5cbiIpCisKICAgICBkZWxheWVkX29yX2FzeW5jX21lc3NhZ2VzID0gW10KICAgICBm
b3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKICAgICAgICAgaWYgbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzICE9IE5vbmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05P
VVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6
CkBAIC0xMTkxLDYgKzExOTUsMzMgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNl
aXZlcik6CiAKICAgICByZXN1bHQuYXBwZW5kKCdcbn0gLy8gbmFtZXNwYWNlIFdlYktpdFxuJykK
IAorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKyAgICByZXN1bHQuYXBwZW5kKCcjaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSlcblxuJykKKyAgICByZXN1bHQuYXBwZW5kKCduYW1lc3BhY2UgSVBD
IHtcblxuJykKKyAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUKKyAgICBmb3Ig
bWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKKyAgICAgICAgaWYgcHJldmlvdXNfbWVzc2Fn
ZV9jb25kaXRpb24gIT0gbWVzc2FnZS5jb25kaXRpb246CisgICAgICAgICAgICBpZiBwcmV2aW91
c19tZXNzYWdlX2NvbmRpdGlvbjoKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5k
aWZcbicpCisgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKKyAgICAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKKyAgICAgICAg
ICAgIHByZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9uID0gbWVzc2FnZS5jb25kaXRpb24KKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjolc18lcz4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKVxuJyAlIChyZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUsICdBcmd1bWVudHMnKSkKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnfVxuJykKKyAgICAgICAgaGFzX3JlcGx5ID0gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlz
IG5vdCBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpCisgICAgICAgIGlm
IG5vdCBoYXNfcmVwbHk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICByZXN1bHQuYXBw
ZW5kKCd0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6JXNfJXM+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIubmFtZSwg
bWVzc2FnZS5uYW1lLCAnUmVwbHlBcmd1bWVudHMnKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgn
fVxuJykKKyAgICBpZiBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbjoKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2VuZGlmXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xufVxuXG4nKQorICAgIHJl
c3VsdC5hcHBlbmQoJyNlbmRpZlxuXG4nKQorCiAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgog
ICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiNlbmRpZiAvLyAlc1xuJyAlIHJlY2VpdmVyLmNvbmRp
dGlvbikKIApAQCAtMTMwOCw3ICsxMzM5LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNf
aW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzKToKICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCiAK
IAotZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNl
aXZlcnMsIGZ1bmN0aW9uX25hbWUsIGFyZ3VtZW50X3R5cGUsIHByZWRpY2F0ZT1sYW1iZGEgbWVz
c2FnZTogVHJ1ZSk6CitkZWYgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihy
ZXN1bHQsIHJlY2VpdmVycywgZnVuY3Rpb25fbmFtZSwgZGVjb2Rlcl9mdW5jdGlvbl9uYW1lLCBh
cmd1bWVudF90eXBlLCBwcmVkaWNhdGU9bGFtYmRhIG1lc3NhZ2U6IFRydWUpOgogICAgIHJlc3Vs
dC5hcHBlbmQoJ3N0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiAlcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIE1lc3NhZ2VOYW1lIG5hbWUsIERlY29kZXImIGRlY29kZXIpXG4n
ICUgZnVuY3Rpb25fbmFtZSkKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgIHJlc3VsdC5h
cHBlbmQoJyAgICBzd2l0Y2ggKG5hbWUpIHtcbicpCkBAIC0xMzI4LDcgKzEzNTksNyBAQCBkZWYg
Z2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywg
ZnVuY3Rpb25fbmFtZSwgYXJndQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcj
aWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIHByZXZpb3VzX21lc3Nh
Z2VfY29uZGl0aW9uID0gbWVzc2FnZS5jb25kaXRpb24KICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjolc18lczpcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpO1xuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsIGFyZ3VtZW50
X3R5cGUpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gJXM8TWVz
c2FnZU5hbWU6OiVzXyVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAlIChkZWNvZGVyX2Z1
bmN0aW9uX25hbWUsIHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCiAgICAgICAgIGlmIHBy
ZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9uOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2Vu
ZGlmXG4nKQogICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CkBAIC0xNDEyLDcgKzE0NDMs
NiBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVudF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRh
dGlvbihyZWNlaXZlcnMsIHJlY2VpdmVyX2hlYQogICAgICAgICBoZWFkZXJfY29uZGl0aW9ucyA9
IHsKICAgICAgICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZl
cik6IFtOb25lXQogICAgICAgICB9Ci0gICAgICAgIGNvbGxlY3RfaGVhZGVyX2NvbmRpdGlvbnNf
Zm9yX3JlY2VpdmVyKHJlY2VpdmVyLCBoZWFkZXJfY29uZGl0aW9ucykKICAgICAgICAgcmVzdWx0
ICs9IGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlvbnMoaGVhZGVyX2NvbmRp
dGlvbnMpCiAgICAgICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNlbmRpZlxuJykKQEAgLTE0MjQsMTEgKzE0NTQsMTEgQEAgZGVmIGdlbmVyYXRl
X21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCBy
ZWNlaXZlcl9oZWEKICAgICByZXN1bHQuYXBwZW5kKCcjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQ
SSlcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCi0gICAgZ2VuZXJhdGVfanNfdmFsdWVf
Y29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JBcmd1bWVu
dHMnLCAnQXJndW1lbnRzJykKKyAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0
aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvckFyZ3VtZW50cycsICdqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2UnLCAnQXJndW1lbnRzJykKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
IAotICAgIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNl
aXZlcnMsICdqc1ZhbHVlRm9yUmVwbHlBcmd1bWVudHMnLCAnUmVwbHlBcmd1bWVudHMnLCBsYW1i
ZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCAobWVz
c2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNf
YXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpKQorICAgIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZl
cnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9yUmVwbHlBcmd1bWVu
dHMnLCAnanNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHknLCAnUmVwbHlBcmd1bWVudHMnLCBs
YW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCAo
bWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpKQogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4n
KQogICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxu
JykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcAppbmRleCA1MmUzYzc2MzgzOTBh
M2NlZjNkYzY3MjMxOGMyMGM5NjRlOGVjMDVmLi43MDUwNjc2ZGM4YTM0NGY2NWZkZmE1NmUzMTQy
ZmJiZGVjZTJmNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCkBAIC0y
OCwxMTAgKzI4LDE5IEBACiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkgfHwgIUxPR19ESVNB
QkxFRAogCiAjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbmNsdWRlICJUZXN0Q2xhc3NOYW1lLmgiCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVS
RSkKLSNpbmNsdWRlICJUZXN0VHdvU3RhdGVFbnVtLmgiCi0jZW5kaWYKICNpbmNsdWRlICJUZXN0
V2l0aFN1cGVyY2xhc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9N
QVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKLSNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpZiBFTkFCTEUoREVQ
UkVDQVRFRF9GRUFUVVJFKSB8fCBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElORykKLSNpbmNsdWRl
ICJEdW1teVR5cGUuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJHZXN0
dXJlVHlwZXMuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJNYWNoUG9y
dC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
Ci0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2lmIChFTkFCTEUoVE9VQ0hfRVZF
TlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9D
T05ESVRJT04pKSB8fCAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NP
TkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCi0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4K
LSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+Ci0j
ZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KLSNpbmNsdWRlIDx1dGlsaXR5
PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogI2lmIChFTkFCTEUoV0VCS0lUMikg
JiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkK
LSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
ZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKSB8fCBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElO
RykKLSNpbmNsdWRlICJEdW1teVR5cGUuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlICJHZXN0dXJlVHlwZXMuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNs
dWRlICJNYWNoUG9ydC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCi0jaWYgKEVOQUJM
RShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhF
Ul9NRVNTQUdFX0NPTkRJVElPTikpIHx8IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVE
X01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQotI2lu
Y2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllci5oPgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJk
RXZlbnQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgotI2luY2x1
ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpZiBQTEFURk9STShNQUMp
Ci0jaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgog
I2VuZGlmCiAjaW5jbHVkZSAiVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlcy5oIgotI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJUZXN0V2l0
aFNlbWFwaG9yZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJUZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURhdGEuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
VGVzdFdpdGhTdHJlYW1NZXNzYWdlcy5oIgotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLSNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGVz
dFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlcy5oIgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgotI2VuZGlmCiAjaW5jbHVkZSAiVGVzdFdpdGhDVlBp
eGVsQnVmZmVyTWVzc2FnZXMuaCIKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1ZGUgPFdl
YkNvcmUvQ1ZVdGlsaXRpZXMuaD4KLSNlbmRpZgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewogCkBAIC0x
NDEsMTc2ICs1MCwxNzYgQEAgc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JB
cmd1bWVudHMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKIHsKICAgICBzd2l0Y2gg
KG5hbWUpIHsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVS
TDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAj
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3Nh
Z2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aE5vQXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxl
QXJndW1lbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFy
Z3VtZW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdFN5bmNNZXNzYWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNNZXNzYWdlOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01l
c3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0U3luY2hyb25vdXNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9O
IHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFVSTDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xv
YWRVUkw+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhp
bmc6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmc+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYg
KE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9O
KSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZl
bnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQ+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RF
RF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50OgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U6Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcjo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZT4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0Nsb3NlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9QcmVm
ZXJlbmNlc0RpZENoYW5nZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpQcmVmZXJlbmNlc0RpZENoYW5n
ZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1ByZWZlcmVuY2VzRGlkQ2hhbmdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZERvdWJsZUFuZEZsb2F0Ogot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3VibGVBbmRGbG9hdD4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1NlbmRJbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmRJbnRzOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZElu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW46Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q3JlYXRl
UGx1Z2luOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfQ3JlYXRlUGx1Z2luPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0OgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OlJ1bkphdmFTY3JpcHRBbGVydDo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0dldFBsdWdpbnM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBs
dWdpbnM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRl
c3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cl9UZW1wbGF0ZVRlc3Q6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVtcGxhdGVUZXN0OjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVtcGxhdGVU
ZXN0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNl
dFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpE
aWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6SW50
ZXJwcmV0S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXI6OkRlcHJlY2F0ZWRPcGVyYXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJ
TkcpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9FeHBlcmlt
ZW50YWxPcGVyYXRpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RXhwZXJpbWVudGFsT3BlcmF0aW9u
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
RXhwZXJpbWVudGFsT3BlcmF0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAj
ZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8
fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpMb2FkVVJMOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkVVJM
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmc6Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpMb2FkU29tZXRoaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURf
TUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzOjpUb3VjaEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9D
T05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50OgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6QWRkRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0FkZEV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfTG9hZFNvbWV0aGluZ0Vsc2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpMb2FkU29tZXRo
aW5nRWxzZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFNvbWV0aGluZ0Vsc2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkUmVjZWl2ZVBv
bGljeURlY2lzaW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19E
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Nsb3NlOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6Q2xvc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0Nsb3NlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENoYW5nZToKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENoYW5nZT4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6U2VuZERvdWJs
ZUFuZEZsb2F0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmRJbnRzOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6U2VuZEludHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmRJbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW46Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpDcmVhdGVQbHVnaW46OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpbj4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVu
SmF2YVNjcmlwdEFsZXJ0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19SdW5K
YXZhU2NyaXB0QWxlcnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpbnM6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
OjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlczoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19UZW1wbGF0ZVRlc3Q6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZW1wbGF0ZVRlc3Q6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RlbXBs
YXRlVGVzdD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6
U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19TZXRWaWRlb0xheWVySUQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnBy
ZXRLZXlFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5k
aWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6RGVwcmVjYXRlZE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFUVVJFX0ZPUl9URVNUSU5HKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19FeHBlcmltZW50YWxPcGVy
YXRpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpFeHBlcmltZW50YWxPcGVyYXRpb246OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRh
bE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2VuZGlmCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2Vf
TG9hZFVSTDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aElmTWVzc2FnZTo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoSWZNZXNzYWdlX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU2Vt
YXBob3JlX1NlbmRTZW1hcGhvcmU6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTZW1hcGhvcmU6OlNlbmRTZW1hcGhvcmU6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfU2VuZFNlbWFwaG9y
ZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFNlbWFwaG9yZV9SZWNlaXZlU2VtYXBob3JlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpSZWNlaXZlU2VtYXBo
b3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1Jl
Y2VpdmVTZW1hcGhvcmU+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YToKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6U2Vu
ZEltYWdlRGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdl
RGF0YV9TZW5kSW1hZ2VEYXRhPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE6Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURh
dGE6OlJlY2VpdmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3Ry
ZWFtOjpTZW5kU3RyaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3RyZWFtX1NlbmRTdHJpbmc+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZDoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVh
bTo6U2VuZFN0cmluZ1N5bmNocm9uaXplZDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1NlbmRNYWNoU2VuZFJpZ2h0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kTWFjaFNlbmRSaWdo
dDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kTWFj
aFNlbmRSaWdodD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6UmVjZWl2
ZU1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJp
Z2h0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3RyZWFtOjpTZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2Vu
ZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdHJlYW1CdWZmZXJfU2VuZFN0cmVhbUJ1ZmZlcjoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbUJ1
ZmZlcjo6U2VuZFN0cmVhbUJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5kU3RyZWFtQnVmZmVyPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhDVlBpeGVsQnVmZmVyX1NlbmRDVlBpeGVsQnVmZmVyOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6U2Vu
ZENWUGl4ZWxCdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhD
VlBpeGVsQnVmZmVyX1NlbmRDVlBpeGVsQnVmZmVyPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhl
bEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlJlY2VpdmVDVlBpeGVsQnVmZmVyOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQ
aXhlbEJ1ZmZlcj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwpAQCAtMzIzLDI5ICsyMzIsMjkgQEAgc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JSZXBseUFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICBzd2l0Y2ggKG5hbWUpIHsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlOgot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJl
cGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhO
b0FyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50
czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNN
ZXNzYWdlOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNz
YWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNocm9ub3VzTWVzc2FnZTo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5j
aHJvbm91c01lc3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjaWYgKEVOQUJMRShXRUJL
SVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9B
TkQpKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXM6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9N
QVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHlB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6UmVwbHlB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVs
QnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAzODQxZmFmMzE3NTYxY2MyY2IzYTQyODVh
ZjM2NTNmZjRjMjI3YzU0Li4yZDIwZmI3ZGQ5ZWFlN2M1OGUzNzI3Zjg4YzUxYmU3M2EwODA3NjNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
Q1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZm
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzUsMyArNzksMjMgQEAgYm9vbCBUZXN0V2l0aENWUGl4ZWxC
dWZmZXI6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IEkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQorCituYW1lc3BhY2UgSVBDIHsKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCit0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhDVlBp
eGVsQnVmZmVyOjpTZW5kQ1ZQaXhlbEJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVj
ZWl2ZUNWUGl4ZWxCdWZmZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6UmVjZWl2ZUNWUGl4ZWxCdWZmZXI6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGFh
YzZiYjM1YzhlMThiOTc2YmExNjg4NTFhZjRmZjUyMzljYTU5NjAuLmUwMzliYmU1YmZhMGIyZWFk
YWUxZGRlYzA3OWE4ZTQ5MjM3MTViNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNz
YWdlUmVjZWl2ZXIuY3BwCkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorI2luY2x1
ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lk
IFRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTU4LDMgKzYyLDI1IEBAIHZvaWQg
VGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJZk1l
c3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNl
bmRpZgorI2lmIFBMQVRGT1JNKEdUSykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1l
c3NhZ2VfTG9hZFVSTD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJl
Y2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJ
bWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDI0NTRiM2RhZTY4ZDBkNDRlMDc1Mzdm
YTNlYjgyNTMwNmU3YTQ4NGUuLjVlNTIzY2M4NjhjOTAyMDk1MzJjMWZhMzMxYTg4YThjYTk4NjI1
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0z
Myw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVk
ZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
VGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjYsMyArNzAsMjEgQEAgYm9vbCBU
ZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjoKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFC
TEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aEltYWdlRGF0YV9TZW5kSW1hZ2VEYXRhPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6U2VuZEltYWdl
RGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6UmVj
ZWl2ZUltYWdlRGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorCit9
CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCBjODlmNDc3ODkxNmE5NDU5YjdlOGVhN2QxMzg1MDFkMGM4NWU5NmRk
Li41ZDA2Y2M2MDY1YTc3MWY5YzViZWYzYTEyNjdmNTc1NTBlNTZkODQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU5LDYgKzU5
LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0Jp
bmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVz
dFdpdGhMZWdhY3lSZWNlaXZlciB7CkBAIC0xNjgsNCArMTcyLDEyNCBAQCBib29sIFRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3Nh
Z2UoSVBDOjpDbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFVSTD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFVSTDo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGlu
Zz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNU
RURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVG91Y2hFdmVudD4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcjo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FH
RV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQ+KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6
OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYK
KyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmdFbHNlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpMb2FkU29tZXRo
aW5nRWxzZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9DbG9zZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q2xvc2U6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9QcmVmZXJlbmNlc0RpZENoYW5nZT4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UHJl
ZmVyZW5jZXNEaWRDaGFuZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5k
RmxvYXQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1NlbmRJbnRzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kSW50czo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q3JlYXRlUGx1Z2luOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0PihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5z
PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7
CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyOjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJl
cGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlc3RNdWx0aXBs
ZUF0dHJpYnV0ZXM6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJB
dHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0UGFyYW1ldGVyQXR0cmlidXRlczo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBsYXRlVGVzdD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVtcGxhdGVU
ZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpTZXRWaWRlb0xheWVySUQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KKyNpZiBQTEFURk9STShNQUMpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50
ZXJwcmV0S2V5RXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoREVQUkVD
QVRFRF9GRUFUVVJFKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0RlcHJlY2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRlcHJlY2F0ZWRPcGVyYXRpb246
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIEVOQUJM
RShGRUFUVVJFX0ZPUl9URVNUSU5HKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RXhwZXJpbWVu
dGFsT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5k
aWYKKworfQorCisjZW5kaWYKKworCiAjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVT
VEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9y
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCA1MzYzODIzOGMzYTM2
YzQ0NGM0OWY5MmViY2RjMWEwNjljMzlmNjJkLi4zMDdjNTVjMWZiODViOThlODYzZmJjODMxNDUy
YjYxNGRkZmFjMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVy
LmNwcApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNs
dWRlICJUZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VzLmgiCiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTYzLDMg
KzY3LDIxIEBAIGJvb2wgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisK
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfU2VuZFNlbWFwaG9yZT4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTZW1h
cGhvcmU6OlNlbmRTZW1hcGhvcmU6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9y
ZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTZW1hcGhvcmU6OlJlY2VpdmVTZW1hcGhvcmU6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVm
ZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAxOGFkZDhhNmZiNjA3Yjc2OGEzNzAzOTg2MzMw
NTA0YzI3ODYyZmM4Li5jYTZiZTFmNTMzNzE3OWNmMGVlMzY4Mjg4OWY5YTgyOTZkOTQwYmVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3Ry
ZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAt
MzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5j
bHVkZSAiVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlcy5oIgogCisjaWYgRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBA
IC00NywzICs1MSwxNyBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJ
UEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJl
YW1CdWZmZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3RyZWFtQnVmZmVyOjpTZW5kU3RyZWFtQnVmZmVyOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNjc4NTRmODA5ZmU2ZjJjMjU0MjJjODIyMDU0M2Ex
OGMwZmUwYjY0Ni4uNjVkOTU0NmY5ZTI5MGRlZDE2MDdkYjRiMzJiYjYxNjhjNzgwZjliMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTM0LDYgKzM0LDEwIEBA
CiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKQEAgLTY0LDMgKzY4LDM1IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW06
OmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
IGNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fU2VuZFN0cmluZz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2Vu
ZFN0cmluZ1N5bmNocm9uaXplZD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBQTEFURk9STShDT0NPQSkKK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFt
OjpTZW5kTWFjaFNlbmRSaWdodDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdo
dD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTdHJlYW06OlJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRS
ZWNlaXZlTWFjaFNlbmRSaWdodD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisKK30KKworI2Vu
ZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRl
eCA0NGE2NmQ5N2VkN2E0MWU3MTZhMmJmOThlZDM1NTQxZTU3MDU5MTc4Li4zYTk0MTFjOWY4ZWZj
MjkxNzk1NjNhMmMwNTM1NWYxZGRjNmFjY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN1cGVyY2xh
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPG9wdGlv
bmFsPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVzdFdpdGhTdXBlcmNsYXNzIHsKQEAgLTIwOSwz
ICsyMTMsNjcgQEAgYm9vbCBUZXN0V2l0aFN1cGVyY2xhc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzoKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsK
KwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTD4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNs
YXNzOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZTo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3lu
Y01lc3NhZ2U6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhO
b0FyZ3VtZW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzPihKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVy
Y2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBl
cmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOjpSZXBseUFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbj4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNz
OjpUZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01l
c3NhZ2VXaXRoQ29ubmVjdGlvbjo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9CisjZW5kaWYKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RTeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY01lc3NhZ2U6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jTWVzc2FnZTo6
UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xh
c3M6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVz
dFN5bmNocm9ub3VzTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpS
ZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKworfQorCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCmlu
ZGV4IDE5YWU5YjBjMmQ0YTI4M2EyNGI1Y2FlODNmZDI4ODAxMTEwOTA2MzUuLjRlODgyMzZiY2Iy
ZDQ5MjEzYzlkMmI2MDM2ZWIxMjYzNmU1NTM1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0
QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU5LDYgKzU5LDEwIEBACiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYg
RU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVzdFdpdGhvdXRBdHRyaWJ1
dGVzIHsKQEAgLTE2OCw0ICsxNzIsMTI0IEBAIGJvb2wgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFt
ZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworfQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nPihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6Okxv
YWRTb21ldGhpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRp
ZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9O
IHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUb3VjaEV2ZW50
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiAoRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09U
SEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0FkZEV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGlu
Z0Vsc2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpT
Qzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ2xvc2U+KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6Q2xvc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1ByZWZlcmVuY2VzRGlk
Q2hhbmdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6U2VuZERvdWJsZUFu
ZEZsb2F0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50cz4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpT
ZW5kSW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkNyZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFs
ZXJ0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRBbGVydDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfR2V0UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1w
bGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJh
bWV0ZXJBdHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0ZVRlc3Q+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVtcGxh
dGVUZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZXRWaWRlb0xheWVySUQ+KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
Cit9CisjaWYgUExBVEZPUk0oTUFDKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVy
cHJldEtleUV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoREVQUkVDQVRF
RF9GRUFUVVJFKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVw
cmVjYXRlZE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoRkVB
VFVSRV9GT1JfVEVTVElORykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpFeHBlcmltZW50YWxPcGVy
YXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9
CisKKyNlbmRpZgorCisKICNlbmRpZiAvLyAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453193</attachid>
            <date>2022-02-25 03:59:15 -0800</date>
            <delta_ts>2022-03-02 04:58:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237195-20220225135914.patch</filename>
            <type>text/plain</type>
            <size>78646</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0NDRiYmY5ZDgzY2IxNTM2
ODY3NmY1NGM0MzI3NWUzMTYwYmE5MmQuLmM1OWM2NDNmNzg3NmFlNzgyMjBhNmIwZDc3ZmI5YjJi
M2M5M2Q2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDIyLTAyLTI1ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSVBDX1RFU1RJTkdfQVBJ
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaXMgc2xvdyB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJUEMgdGVzdGluZyBB
UEkgbmVlZHMgY29udmVydCBtZXNzYWdlIGRhdGEgYnVmZmVyLCBJUEM6OkRlY29kZXIsIHRvCisg
ICAgICAgIEpTVmFsdWUuIFRoaXMgaXMgYSBydW4tdGltZSBvcGVyYXRpb24uCisgICAgICAgIElQ
QyBtZXNzYWdlIGRlY29kaW5nIGlzIGJhc2VkIG9uIHRlbXBsYXRlcywgYSBjb21waWxlIHRpbWUg
b3BlcmF0aW9uLgorICAgICAgICBJUEMgZ2VuZXJhdG9yIGdlbmVyYXRlcyBNZXNzYWdlQXJndW1l
bnREZXNjcmlwdGlvbnMuY3BwIHdpdGgKKyAgICAgICAgYSBiaWcgc3dpdGNoLiBUaGUgc3dpdGNo
IGhhcyBhIGNhc2UgZm9yIGVhY2ggbWVzc2FnZSBuYW1lLiBUaGUgY2FzZSB3b3VsZAorICAgICAg
ICBjYWxsIHRlbXBsYXRlZCBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxBcmd1bWVudHM+LCB3
aGVyZSB0aGUgQXJndW1lbnRzCisgICAgICAgIGlzIHRoZSB0eXBlIHR1cGxlIGZvciB0aGUgbWVz
c2FnZSBhcmd1bWVudHMuCisKKyAgICAgICAgVGhlIGFib3ZlIHdvdWxkIG1lYW4gdGhhdCBNZXNz
YWdlQXJndW1lbnREZXNjcmlwdGlvbnMgd291bGQgbmVlZCB0bworICAgICAgICBpbmNsdWRlIGFs
bCB0aGUgaGVhZGVycyBmb3IgYWxsIHRoZSBtZXNzYWdlcyBpbiBXZWJLaXQgaW4gb3JkZXIKKyAg
ICAgICAgdG8gcG9wdWxhdGUgdGhlIEFyZ3VtZW50cyB0dXBsZSBmb3IgcGFydGljdWxhciBtZXNz
YWdlLgorICAgICAgICBUaGlzIHdvdWxkIGNhdXNlIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9u
cyB0byBiZSBzbG93IHRvIGNvbXBpbGUgYmVjYXVzZQorICAgICAgICBpdCB3b3VsZCBuZWVkIGFs
bCB0aGUgaGVhZGVycyBpbiBTb3VyY2UvV2ViS2l0IHJlbGF0ZWQgdG8gbWVzc2FnZSBwYXJhbWV0
ZXIgdHlwZXMuCisKKyAgICAgICAgVGhpcyB3b3VsZCBzaG93IHVwIGFzIHNsb3cgY29tcGlsZXMg
dGhhdCB3b3VsZCBjb25zdW1lIG11Y2ggbWVtb3J5ICg1LTZnYikgYW5kIGRvIGEKKyAgICAgICAg
bG90IG9mIHdvcmsuCisKKyAgICAgICAgSXQgd291bGQgYWxzbyBoYXZlIHRvIGNvbXBpbGUgdGhl
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucyBlYWNoIHRpbWUKKyAgICAgICAgYW55IG9mIHRo
ZSBoZWFkZXJzIHdlcmUgdG91Y2hlZC4KKworICAgICAgICBDaGFuZ2UgdGhpcyBzbyB0aGF0IHRo
ZSBiaWcgc3dpdGNoIGNhbGxzIGEgZGVjbGFyZWQgYnV0IG5vdCBkZWZpbmVkCisgICAgICAgIHRl
bXBsYXRlIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZT4gZm9yIGVhY2ggTWVz
c2FnZU5hbWUgY2FzZSBpbiB0aGUKKyAgICAgICAgc3dpdGNoLgorCisgICAgICAgIEluc3RhbnRp
YXRlIHRoZSB0ZW1wbGF0ZSBmb3IgZWFjaCBtZXNzYWdlIGluIHRoZSAqTWVzc2FnZVJlY2VpdmVy
LmNwcCBmaWxlCisgICAgICAgIHRoYXQgZWFjaCBtZXNzYWdlIHJlY2VpdmVyIGhhcy4gVGhpcyBm
aWxlIGFscmVhZHkgaGFzIHRvIGluY2x1ZGUgYWxsIHRoZQorICAgICAgICBoZWFkZXJzIHVzZWQg
Zm9yIHRoYXQgcGFydGljdWxhciBtZXNzYWdlIHJlY2VpdmVyLiBUaGVzZSBmaWxlcyBhcmUgc21h
bGwgYW5kIGNvbXBpbGUKKyAgICAgICAgZmFzdC4KKworICAgICAgICBBZnRlciB0aGlzIGNoYW5n
ZSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIG9ubHkgaW5jbHVkZXMgdGhlIG1lc3Nh
Z2UKKyAgICAgICAgZGVmaW5pdGlvbiBoZWFkZXJzLCBkb2VzIG5vdCB1c2UgbXVjaCBtb3JlIHRo
YW4gdGhlIHN0YW5kYXJkIDFnYisgb2YgbWVtb3J5CisgICAgICAgIHdoaWxlIGNvbXBpbGluZyBh
bmQgaXMgcmVsYXRpdmVseSBmYXN0IHRvIGNvbXBpbGUuIEFsc28gaWYgYW55IG9mIHRoZSBkZXBl
bmRlbnQKKyAgICAgICAgaGVhZGVycyBhcmUgdG91Y2hlZCwgb25seSB0aGUgY29ycmVzcG9uZGlu
ZyBzbWFsbCAqTWVzc2FnZVJlY2VpdmVyLmNwcCBmaWxlcyBhcmUgY29tcGlsZWQuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgaXMgbmVlZGVkIGZvciBmdXJ0aGVyIGltcHJvdmUgdGhlIEpTIHRlc3Rp
bmcgQVBJIGltcGxlbWVudGF0aW9uLgorICAgICAgICBBZGRpbmcgbmV3IG9wZXJhdGlvbnMgdGhh
dCBlbXBsb3kgdGhlIHNhbWUgc3RyYXRlZ3ksIGVnLiBzd2l0Y2ggYW5kIGEgY29tcGxleAorICAg
ICAgICB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLCB3b3VsZCBwb3NzaWJseSBqdXN0IG1ha2UgdGhl
IG1hdHRlciB3b3JzZS4gTmV3IG9wZXJhdGlvbnMKKyAgICAgICAgdGhhdCBhcmUgbmVlZGVkIGFy
ZSBtZXNzYWdlIHNlbmRzLCB3aGljaCB1c2UgdGVtcGxhdGVzIHNpbWlsYXJseSB0byB0aGUgbWVz
c2FnZQorICAgICAgICBkZWNvZGUgY2FzZSB0aGF0IGlzIGltcGxlbWVudCBoZXJlLgorCisgICAg
ICAgIFRoaXMgY2hhbmdlIHJlZ2VuZXJhdGVzIHRoZSBjaGVja2VkLWluIHRlc3QgY29udGVudCB0
aGF0IGNhbiBiZSB1c2VkIHRvIHJldmlldworICAgICAgICB3aGF0IGtpbmQgb2YgY2hhbmdlcyB0
aGUgcmVhbCBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGFuZCBNZXNzYWdlUmVjZWl2
ZXIuY3BwcworICAgICAgICBnZXQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSlNJUENCaW5k
aW5nLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChn
ZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfanNfdmFsdWVfY29u
dmVyc2lvbl9mdW5jdGlvbik6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rl
c2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yQXJndW1lbnRzKToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvclJlcGx5QXJndW1lbnRzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4pOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aElmTWVzc2FnZV9Mb2FkVVJMPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFn
ZURhdGE+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2Fk
U29tZXRoaW5nPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50Pik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9BZGRFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfQ2xvc2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hh
bmdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1NlbmRJbnRzPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KToK
KyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2lucz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBs
YXRlVGVzdD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RlcHJlY2F0ZWRP
cGVyYXRpb24+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJl
Y2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlPik6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVf
UmVjZWl2ZVNlbWFwaG9yZT4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5k
U3RyZWFtQnVmZmVyPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0
cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmln
aHQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRB
bmRSZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6Ompz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xv
YWRVUkw+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VX
aXRoTm9Bcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0
aXBsZUFyZ3VtZW50cz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhD
b25uZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25u
ZWN0aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBD
Ojpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNN
ZXNzYWdlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3Nh
Z2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw+KToKKyAgICAgICAgKElQ
Qzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFNvbWV0aGluZz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50Pik6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhp
bmdFbHNlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0Rp
ZENoYW5nZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfU2VuZEludHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19HZXRQbHVnaW5zPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAo
SVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0
Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRD4pOgorICAgICAgICAoSVBDOjpq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRl
cnByZXRLZXlFdmVudD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uPik6
CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgorCiAyMDIyLTAyLTIz
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjkwMTc1KTogVGV4dHVyZSB1cGxvYWQgZnJvbSB2aWRlbyBhbmQgdXNlciBtZWRpYSBp
cyBzbG93ZXIgdGhhbiBleHBlY3RlZCBmb3Igbm9uLUdQVVAgV2ViR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKaW5kZXggZWQxNjQ0MmNiOTY2ZjAzNDRiYjEwYzFm
M2U5MDZiYjhiZTZjZWQ2My4uNjdiYzc3ZTBkNGY1YWNmN2IwYTU0MGM3NjJlMGQzMmJmNTQyMDI4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKQEAgLTE1Niw2
ICsxNTYsMTkgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gcHV0SlNWYWx1
ZUZvckRlY29kZUFyZ3VtZW50SW5BcnJheTw+KGdsb2JhbE9iamVjdCwgZGVjb2RlciwgYXJyYXks
IDAsIGR1bW15QXJndW1lbnRzKTsKIH0KIAorLy8gVGhlIGJpbmRpbmdzIGltcGxlbWVudGF0aW9u
IHdpbGwgY2FsbCB0aGUgZnVuY3Rpb24gdGVtcGxhdGVzIGJlbG93IHRvIGRlY29kZSBhIG1lc3Nh
Z2UuCisvLyBUaGVzZSBmdW5jdGlvbiB0ZW1wbGF0ZXMgYXJlIHNwZWNpYWxpemVkIGJ5IGVhY2gg
bWVzc2FnZSBpbiB0aGVpciBvd24gZ2VuZXJhdGVkIGZpbGUuCisvLyBFYWNoIGltcGxlbWVudGF0
aW9uIHdpbGwganVzdCBjYWxsIHRoZSBhYm92ZSBganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHMo
KWAgZnVuY3Rpb24uCisvLyBUaGlzIGhhcyB0aGUgYmVuZWZpdCB0aGF0IHVwb24gY29tcGlsYXRp
b24sIG9ubHkgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIgaW1wbGVtZW50YXRpb24gZmlsZXMgYXJlCisv
LyByZWNvbXBpbGVkIHdoZW4gdGhlIG1lc3NhZ2UgYXJndW1lbnQgdHlwZXMgY2hhbmdlLgorLy8g
VGhlIGJpbmRpbmdzIGltcGxlbWVudGF0aW9uLCBlLmcuIHRoZSBjYWxsZXIgb2YganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPD4sIGRvZXMgbm90IG5lZWQKKy8vIHRvIGtub3cgYWxsIHRoZSBtZXNz
YWdlIGFyZ3VtZW50IHR5cGVzLCBhbmQgbmVlZCB0byBiZSByZWNvbXBpbGVkIG9ubHkgd2hlbiB0
aGUgbWVzc2FnZSBpdHNlbGYKKy8vIGNoYW5nZXMuCit0ZW1wbGF0ZTxNZXNzYWdlTmFtZT4KK3N0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOwordGVtcGxhdGU8TWVzc2FnZU5hbWU+Citz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHko
SlNDOjpKU0dsb2JhbE9iamVjdCosIElQQzo6RGVjb2RlciYpOworCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNTNjM2Q5NjBkM2JhN2Ni
ZDhkYWY4Y2IwNWE2YjI1MjVkNTViZmRjNC4uNzU0YzdjMGUwZmMxOWRhYmEzY2E5ZTBmYTQ1NjRl
NjEwMTc2YWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0xMDcwLDYgKzEwNzAsMTAgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZl
cik6CiAgICAgcmVzdWx0ICs9IGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlv
bnMoaGVhZGVyX2NvbmRpdGlvbnMpCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCisgICAgcmVz
dWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQorICAgIHJlc3VsdC5h
cHBlbmQoJyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCJcbicpCisgICAgcmVzdWx0LmFwcGVuZCgi
I2VuZGlmXG5cbiIpCisKICAgICBkZWxheWVkX29yX2FzeW5jX21lc3NhZ2VzID0gW10KICAgICBm
b3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKICAgICAgICAgaWYgbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzICE9IE5vbmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05P
VVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6
CkBAIC0xMTkxLDYgKzExOTUsMzMgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNl
aXZlcik6CiAKICAgICByZXN1bHQuYXBwZW5kKCdcbn0gLy8gbmFtZXNwYWNlIFdlYktpdFxuJykK
IAorICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKKyAgICByZXN1bHQuYXBwZW5kKCcjaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSlcblxuJykKKyAgICByZXN1bHQuYXBwZW5kKCduYW1lc3BhY2UgSVBD
IHtcblxuJykKKyAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUKKyAgICBmb3Ig
bWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKKyAgICAgICAgaWYgcHJldmlvdXNfbWVzc2Fn
ZV9jb25kaXRpb24gIT0gbWVzc2FnZS5jb25kaXRpb246CisgICAgICAgICAgICBpZiBwcmV2aW91
c19tZXNzYWdlX2NvbmRpdGlvbjoKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5k
aWZcbicpCisgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKKyAgICAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKKyAgICAgICAg
ICAgIHByZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9uID0gbWVzc2FnZS5jb25kaXRpb24KKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjolc18lcz4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKVxuJyAlIChyZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUsICdBcmd1bWVudHMnKSkKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnfVxuJykKKyAgICAgICAgaGFzX3JlcGx5ID0gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlz
IG5vdCBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpCisgICAgICAgIGlm
IG5vdCBoYXNfcmVwbHk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICByZXN1bHQuYXBw
ZW5kKCd0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6JXNfJXM+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIubmFtZSwg
bWVzc2FnZS5uYW1lLCAnUmVwbHlBcmd1bWVudHMnKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgn
fVxuJykKKyAgICBpZiBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbjoKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2VuZGlmXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ1xufVxuXG4nKQorICAgIHJl
c3VsdC5hcHBlbmQoJyNlbmRpZlxuXG4nKQorCiAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgog
ICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiNlbmRpZiAvLyAlc1xuJyAlIHJlY2VpdmVyLmNvbmRp
dGlvbikKIApAQCAtMTMwOCw3ICsxMzM5LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNf
aW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzKToKICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCiAK
IAotZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNl
aXZlcnMsIGZ1bmN0aW9uX25hbWUsIGFyZ3VtZW50X3R5cGUsIHByZWRpY2F0ZT1sYW1iZGEgbWVz
c2FnZTogVHJ1ZSk6CitkZWYgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihy
ZXN1bHQsIHJlY2VpdmVycywgZnVuY3Rpb25fbmFtZSwgZGVjb2Rlcl9mdW5jdGlvbl9uYW1lLCBh
cmd1bWVudF90eXBlLCBwcmVkaWNhdGU9bGFtYmRhIG1lc3NhZ2U6IFRydWUpOgogICAgIHJlc3Vs
dC5hcHBlbmQoJ3N0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiAlcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIE1lc3NhZ2VOYW1lIG5hbWUsIERlY29kZXImIGRlY29kZXIpXG4n
ICUgZnVuY3Rpb25fbmFtZSkKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgIHJlc3VsdC5h
cHBlbmQoJyAgICBzd2l0Y2ggKG5hbWUpIHtcbicpCkBAIC0xMzI4LDcgKzEzNTksNyBAQCBkZWYg
Z2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywg
ZnVuY3Rpb25fbmFtZSwgYXJndQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcj
aWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIHByZXZpb3VzX21lc3Nh
Z2VfY29uZGl0aW9uID0gbWVzc2FnZS5jb25kaXRpb24KICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjolc18lczpcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpO1xuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsIGFyZ3VtZW50
X3R5cGUpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gJXM8TWVz
c2FnZU5hbWU6OiVzXyVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAlIChkZWNvZGVyX2Z1
bmN0aW9uX25hbWUsIHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCiAgICAgICAgIGlmIHBy
ZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9uOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2Vu
ZGlmXG4nKQogICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CkBAIC0xNDEyLDcgKzE0NDMs
NiBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVudF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRh
dGlvbihyZWNlaXZlcnMsIHJlY2VpdmVyX2hlYQogICAgICAgICBoZWFkZXJfY29uZGl0aW9ucyA9
IHsKICAgICAgICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZl
cik6IFtOb25lXQogICAgICAgICB9Ci0gICAgICAgIGNvbGxlY3RfaGVhZGVyX2NvbmRpdGlvbnNf
Zm9yX3JlY2VpdmVyKHJlY2VpdmVyLCBoZWFkZXJfY29uZGl0aW9ucykKICAgICAgICAgcmVzdWx0
ICs9IGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlvbnMoaGVhZGVyX2NvbmRp
dGlvbnMpCiAgICAgICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNlbmRpZlxuJykKQEAgLTE0MjQsMTEgKzE0NTQsMTEgQEAgZGVmIGdlbmVyYXRl
X21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCBy
ZWNlaXZlcl9oZWEKICAgICByZXN1bHQuYXBwZW5kKCcjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQ
SSlcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCi0gICAgZ2VuZXJhdGVfanNfdmFsdWVf
Y29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JBcmd1bWVu
dHMnLCAnQXJndW1lbnRzJykKKyAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0
aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvckFyZ3VtZW50cycsICdqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2UnLCAnQXJndW1lbnRzJykKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
IAotICAgIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNl
aXZlcnMsICdqc1ZhbHVlRm9yUmVwbHlBcmd1bWVudHMnLCAnUmVwbHlBcmd1bWVudHMnLCBsYW1i
ZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCAobWVz
c2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNf
YXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpKQorICAgIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZl
cnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9yUmVwbHlBcmd1bWVu
dHMnLCAnanNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHknLCAnUmVwbHlBcmd1bWVudHMnLCBs
YW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCAo
bWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5o
YXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpKQogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4n
KQogICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxu
JykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcAppbmRleCA1MmUzYzc2MzgzOTBh
M2NlZjNkYzY3MjMxOGMyMGM5NjRlOGVjMDVmLi43MDUwNjc2ZGM4YTM0NGY2NWZkZmE1NmUzMTQy
ZmJiZGVjZTJmNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCkBAIC0y
OCwxMTAgKzI4LDE5IEBACiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkgfHwgIUxPR19ESVNB
QkxFRAogCiAjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbmNsdWRlICJUZXN0Q2xhc3NOYW1lLmgiCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVS
RSkKLSNpbmNsdWRlICJUZXN0VHdvU3RhdGVFbnVtLmgiCi0jZW5kaWYKICNpbmNsdWRlICJUZXN0
V2l0aFN1cGVyY2xhc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9N
QVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKLSNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpZiBFTkFCTEUoREVQ
UkVDQVRFRF9GRUFUVVJFKSB8fCBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElORykKLSNpbmNsdWRl
ICJEdW1teVR5cGUuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJHZXN0
dXJlVHlwZXMuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJNYWNoUG9y
dC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
Ci0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2lmIChFTkFCTEUoVE9VQ0hfRVZF
TlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9D
T05ESVRJT04pKSB8fCAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NP
TkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCi0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4K
LSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+Ci0j
ZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KLSNpbmNsdWRlIDx1dGlsaXR5
PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogI2lmIChFTkFCTEUoV0VCS0lUMikg
JiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkK
LSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
ZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKSB8fCBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElO
RykKLSNpbmNsdWRlICJEdW1teVR5cGUuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlICJHZXN0dXJlVHlwZXMuaCIKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNs
dWRlICJNYWNoUG9ydC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCi0jaWYgKEVOQUJM
RShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhF
Ul9NRVNTQUdFX0NPTkRJVElPTikpIHx8IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVE
X01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQotI2lu
Y2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllci5oPgotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJk
RXZlbnQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgotI2luY2x1
ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpZiBQTEFURk9STShNQUMp
Ci0jaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgog
I2VuZGlmCiAjaW5jbHVkZSAiVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlcy5oIgotI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJUZXN0V2l0
aFNlbWFwaG9yZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJUZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURhdGEuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
VGVzdFdpdGhTdHJlYW1NZXNzYWdlcy5oIgotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLSNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGVz
dFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlcy5oIgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgotI2VuZGlmCiAjaW5jbHVkZSAiVGVzdFdpdGhDVlBp
eGVsQnVmZmVyTWVzc2FnZXMuaCIKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1ZGUgPFdl
YkNvcmUvQ1ZVdGlsaXRpZXMuaD4KLSNlbmRpZgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewogCkBAIC0x
NDEsMTc2ICs1MCwxNzYgQEAgc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JB
cmd1bWVudHMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKIHsKICAgICBzd2l0Y2gg
KG5hbWUpIHsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVS
TDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAj
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3Nh
Z2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aE5vQXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxl
QXJndW1lbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFy
Z3VtZW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdFN5bmNNZXNzYWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNNZXNzYWdlOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01l
c3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0U3luY2hyb25vdXNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9O
IHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFVSTDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xv
YWRVUkw+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhp
bmc6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmc+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYg
KE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9O
KSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZl
bnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQ+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RF
RF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50OgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U6Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcjo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZT4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0Nsb3NlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9QcmVm
ZXJlbmNlc0RpZENoYW5nZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpQcmVmZXJlbmNlc0RpZENoYW5n
ZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1ByZWZlcmVuY2VzRGlkQ2hhbmdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZERvdWJsZUFuZEZsb2F0Ogot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3VibGVBbmRGbG9hdD4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1NlbmRJbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmRJbnRzOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZElu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW46Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q3JlYXRl
UGx1Z2luOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfQ3JlYXRlUGx1Z2luPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0OgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OlJ1bkphdmFTY3JpcHRBbGVydDo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0dldFBsdWdpbnM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBs
dWdpbnM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRl
c3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cl9UZW1wbGF0ZVRlc3Q6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVtcGxhdGVUZXN0OjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVtcGxhdGVU
ZXN0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNl
dFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpE
aWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6SW50
ZXJwcmV0S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXI6OkRlcHJlY2F0ZWRPcGVyYXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJ
TkcpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9FeHBlcmlt
ZW50YWxPcGVyYXRpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RXhwZXJpbWVudGFsT3BlcmF0aW9u
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
RXhwZXJpbWVudGFsT3BlcmF0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAj
ZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8
fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpMb2FkVVJMOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkVVJM
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmc6Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpMb2FkU29tZXRoaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURf
TUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzOjpUb3VjaEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9D
T05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50OgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6QWRkRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0FkZEV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfTG9hZFNvbWV0aGluZ0Vsc2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpMb2FkU29tZXRo
aW5nRWxzZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFNvbWV0aGluZ0Vsc2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkUmVjZWl2ZVBv
bGljeURlY2lzaW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19E
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Nsb3NlOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6Q2xvc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0Nsb3NlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENoYW5nZToKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENoYW5nZT4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6U2VuZERvdWJs
ZUFuZEZsb2F0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmRJbnRzOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6U2VuZEludHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmRJbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW46Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpDcmVhdGVQbHVnaW46OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpbj4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVu
SmF2YVNjcmlwdEFsZXJ0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19SdW5K
YXZhU2NyaXB0QWxlcnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpbnM6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
OjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlczoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19UZW1wbGF0ZVRlc3Q6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZW1wbGF0ZVRlc3Q6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RlbXBs
YXRlVGVzdD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6
U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19TZXRWaWRlb0xheWVySUQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQ6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnBy
ZXRLZXlFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5k
aWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uOgotICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6RGVwcmVjYXRlZE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFUVVJFX0ZPUl9URVNUSU5HKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19FeHBlcmltZW50YWxPcGVy
YXRpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpFeHBlcmltZW50YWxPcGVyYXRpb246OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRh
bE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2VuZGlmCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2Vf
TG9hZFVSTDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aElmTWVzc2FnZTo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoSWZNZXNzYWdlX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU2Vt
YXBob3JlX1NlbmRTZW1hcGhvcmU6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTZW1hcGhvcmU6OlNlbmRTZW1hcGhvcmU6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfU2VuZFNlbWFwaG9y
ZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFNlbWFwaG9yZV9SZWNlaXZlU2VtYXBob3JlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpSZWNlaXZlU2VtYXBo
b3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1Jl
Y2VpdmVTZW1hcGhvcmU+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YToKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6U2Vu
ZEltYWdlRGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdl
RGF0YV9TZW5kSW1hZ2VEYXRhPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE6Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURh
dGE6OlJlY2VpdmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3Ry
ZWFtOjpTZW5kU3RyaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3RyZWFtX1NlbmRTdHJpbmc+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZDoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVh
bTo6U2VuZFN0cmluZ1N5bmNocm9uaXplZDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1NlbmRNYWNoU2VuZFJpZ2h0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kTWFjaFNlbmRSaWdo
dDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kTWFj
aFNlbmRSaWdodD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6UmVjZWl2
ZU1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJp
Z2h0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3RyZWFtOjpTZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2Vu
ZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdHJlYW1CdWZmZXJfU2VuZFN0cmVhbUJ1ZmZlcjoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbUJ1
ZmZlcjo6U2VuZFN0cmVhbUJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5kU3RyZWFtQnVmZmVyPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhDVlBpeGVsQnVmZmVyX1NlbmRDVlBpeGVsQnVmZmVyOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6U2Vu
ZENWUGl4ZWxCdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhD
VlBpeGVsQnVmZmVyX1NlbmRDVlBpeGVsQnVmZmVyPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhl
bEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlJlY2VpdmVDVlBpeGVsQnVmZmVyOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQ
aXhlbEJ1ZmZlcj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwpAQCAtMzIzLDI5ICsyMzIsMjkgQEAgc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JSZXBseUFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICBzd2l0Y2ggKG5hbWUpIHsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlOgot
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6Ci0gICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJl
cGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhO
b0FyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50
czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNN
ZXNzYWdlOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNz
YWdlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNocm9ub3VzTWVzc2FnZTo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5j
aHJvbm91c01lc3NhZ2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjaWYgKEVOQUJMRShXRUJL
SVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9B
TkQpKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXM6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9N
QVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHlB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6UmVwbHlB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYK
ICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVs
QnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAzODQxZmFmMzE3NTYxY2MyY2IzYTQyODVh
ZjM2NTNmZjRjMjI3YzU0Li4yZDIwZmI3ZGQ5ZWFlN2M1OGUzNzI3Zjg4YzUxYmU3M2EwODA3NjNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
Q1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZm
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzUsMyArNzksMjMgQEAgYm9vbCBUZXN0V2l0aENWUGl4ZWxC
dWZmZXI6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IEkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQorCituYW1lc3BhY2UgSVBDIHsKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCit0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhDVlBp
eGVsQnVmZmVyOjpTZW5kQ1ZQaXhlbEJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVj
ZWl2ZUNWUGl4ZWxCdWZmZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6UmVjZWl2ZUNWUGl4ZWxCdWZmZXI6OkFy
Z3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RX
aXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGFh
YzZiYjM1YzhlMThiOTc2YmExNjg4NTFhZjRmZjUyMzljYTU5NjAuLmUwMzliYmU1YmZhMGIyZWFk
YWUxZGRlYzA3OWE4ZTQ5MjM3MTViNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNz
YWdlUmVjZWl2ZXIuY3BwCkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorI2luY2x1
ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lk
IFRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTU4LDMgKzYyLDI1IEBAIHZvaWQg
VGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJZk1l
c3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNl
bmRpZgorI2lmIFBMQVRGT1JNKEdUSykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1l
c3NhZ2VfTG9hZFVSTD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJl
Y2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJ
bWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDI0NTRiM2RhZTY4ZDBkNDRlMDc1Mzdm
YTNlYjgyNTMwNmU3YTQ4NGUuLjVlNTIzY2M4NjhjOTAyMDk1MzJjMWZhMzMxYTg4YThjYTk4NjI1
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0z
Myw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVk
ZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
VGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjYsMyArNzAsMjEgQEAgYm9vbCBU
ZXN0V2l0aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjoKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFC
TEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aEltYWdlRGF0YV9TZW5kSW1hZ2VEYXRhPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6U2VuZEltYWdl
RGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhPihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6UmVj
ZWl2ZUltYWdlRGF0YTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorCit9
CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAppbmRleCBjODlmNDc3ODkxNmE5NDU5YjdlOGVhN2QxMzg1MDFkMGM4NWU5NmRk
Li41ZDA2Y2M2MDY1YTc3MWY5YzViZWYzYTEyNjdmNTc1NTBlNTZkODQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU5LDYgKzU5
LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0Jp
bmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVz
dFdpdGhMZWdhY3lSZWNlaXZlciB7CkBAIC0xNjgsNCArMTcyLDEyNCBAQCBib29sIFRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3Nh
Z2UoSVBDOjpDbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFVSTD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9hZFVSTDo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGlu
Zz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNU
RURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVG91Y2hFdmVudD4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcjo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FH
RV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQ+KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6
OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYK
KyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmdFbHNlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpMb2FkU29tZXRo
aW5nRWxzZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCit0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9DbG9zZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q2xvc2U6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9QcmVmZXJlbmNlc0RpZENoYW5nZT4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UHJl
ZmVyZW5jZXNEaWRDaGFuZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5k
RmxvYXQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1NlbmRJbnRzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kSW50czo6QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6Q3JlYXRlUGx1Z2luOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0PihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5z
PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7
CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyOjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJl
cGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlc3RNdWx0aXBs
ZUF0dHJpYnV0ZXM6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJB
dHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0UGFyYW1ldGVyQXR0cmlidXRlczo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBsYXRlVGVzdD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVtcGxhdGVU
ZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpTZXRWaWRlb0xheWVySUQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KKyNpZiBQTEFURk9STShNQUMpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50
ZXJwcmV0S2V5RXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoREVQUkVD
QVRFRF9GRUFUVVJFKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0RlcHJlY2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkRlcHJlY2F0ZWRPcGVyYXRpb246
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIEVOQUJM
RShGRUFUVVJFX0ZPUl9URVNUSU5HKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RXhwZXJpbWVu
dGFsT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5k
aWYKKworfQorCisjZW5kaWYKKworCiAjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVT
VEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9y
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCA1MzYzODIzOGMzYTM2
YzQ0NGM0OWY5MmViY2RjMWEwNjljMzlmNjJkLi4zMDdjNTVjMWZiODViOThlODYzZmJjODMxNDUy
YjYxNGRkZmFjMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVy
LmNwcApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNs
dWRlICJUZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VzLmgiCiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTYzLDMg
KzY3LDIxIEBAIGJvb2wgVGVzdFdpdGhTZW1hcGhvcmU6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisK
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfU2VuZFNlbWFwaG9yZT4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTZW1h
cGhvcmU6OlNlbmRTZW1hcGhvcmU6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9y
ZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTZW1hcGhvcmU6OlJlY2VpdmVTZW1hcGhvcmU6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVm
ZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAxOGFkZDhhNmZiNjA3Yjc2OGEzNzAzOTg2MzMw
NTA0YzI3ODYyZmM4Li5jYTZiZTFmNTMzNzE3OWNmMGVlMzY4Mjg4OWY5YTgyOTZkOTQwYmVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3Ry
ZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAt
MzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5j
bHVkZSAiVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlcy5oIgogCisjaWYgRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBA
IC00NywzICs1MSwxNyBAQCB2b2lkIFRlc3RXaXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJ
UEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJl
YW1CdWZmZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3RyZWFtQnVmZmVyOjpTZW5kU3RyZWFtQnVmZmVyOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNjc4NTRmODA5ZmU2ZjJjMjU0MjJjODIyMDU0M2Ex
OGMwZmUwYjY0Ni4uNjVkOTU0NmY5ZTI5MGRlZDE2MDdkYjRiMzJiYjYxNjhjNzgwZjliMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTM0LDYgKzM0LDEwIEBA
CiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJlYW1N
ZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKQEAgLTY0LDMgKzY4LDM1IEBAIHZvaWQgVGVzdFdpdGhTdHJlYW06
OmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2Um
IGNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fU2VuZFN0cmluZz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2Vu
ZFN0cmluZ1N5bmNocm9uaXplZD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBQTEFURk9STShDT0NPQSkKK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFt
OjpTZW5kTWFjaFNlbmRSaWdodDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdo
dD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTdHJlYW06OlJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRS
ZWNlaXZlTWFjaFNlbmRSaWdodD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisKK30KKworI2Vu
ZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRl
eCA0NGE2NmQ5N2VkN2E0MWU3MTZhMmJmOThlZDM1NTQxZTU3MDU5MTc4Li4zYTk0MTFjOWY4ZWZj
MjkxNzk1NjNhMmMwNTM1NWYxZGRjNmFjY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN1cGVyY2xh
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPG9wdGlv
bmFsPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVzdFdpdGhTdXBlcmNsYXNzIHsKQEAgLTIwOSwz
ICsyMTMsNjcgQEAgYm9vbCBUZXN0V2l0aFN1cGVyY2xhc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzoKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsK
KwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTD4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNs
YXNzOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZTo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3lu
Y01lc3NhZ2U6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhO
b0FyZ3VtZW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6UmVwbHlBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzPihKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVy
Y2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBl
cmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOjpSZXBseUFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbj4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNz
OjpUZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01l
c3NhZ2VXaXRoQ29ubmVjdGlvbjo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9CisjZW5kaWYKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RTeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY01lc3NhZ2U6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jTWVzc2FnZTo6
UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xh
c3M6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVz
dFN5bmNocm9ub3VzTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpS
ZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKworfQorCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCmlu
ZGV4IDE5YWU5YjBjMmQ0YTI4M2EyNGI1Y2FlODNmZDI4ODAxMTEwOTA2MzUuLjRlODgyMzZiY2Iy
ZDQ5MjEzYzlkMmI2MDM2ZWIxMjYzNmU1NTM1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0
QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU5LDYgKzU5LDEwIEBACiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYg
RU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgVGVzdFdpdGhvdXRBdHRyaWJ1
dGVzIHsKQEAgLTE2OCw0ICsxNzIsMTI0IEBAIGJvb2wgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFt
ZXNwYWNlIElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworfQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nPihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6Okxv
YWRTb21ldGhpbmc6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRp
ZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9O
IHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUb3VjaEV2ZW50
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiAoRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09U
SEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0FkZEV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGlu
Z0Vsc2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpT
Qzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ2xvc2U+KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6Q2xvc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30K
K3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1ByZWZlcmVuY2VzRGlk
Q2hhbmdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6U2VuZERvdWJsZUFu
ZEZsb2F0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50cz4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpT
ZW5kSW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkNyZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFs
ZXJ0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRBbGVydDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfR2V0UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5zOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1w
bGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJh
bWV0ZXJBdHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0ZVRlc3Q+KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVtcGxh
dGVUZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZXRWaWRlb0xheWVySUQ+KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
Cit9CisjaWYgUExBVEZPUk0oTUFDKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNW
YWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVy
cHJldEtleUV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoREVQUkVDQVRF
RF9GRUFUVVJFKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVw
cmVjYXRlZE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNpZiBFTkFCTEUoRkVB
VFVSRV9GT1JfVEVTVElORykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpFeHBlcmltZW50YWxPcGVy
YXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9
CisKKyNlbmRpZgorCisKICNlbmRpZiAvLyAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453590</attachid>
            <date>2022-03-02 04:58:29 -0800</date>
            <delta_ts>2022-03-02 09:01:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237195-20220302145827.patch</filename>
            <type>text/plain</type>
            <size>79166</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlNDFkMWQwNmU2Zjg2MDhk
YzllYTUzOGY5Y2M2YzE0OTBiMjc0YmQuLjExZmIwMzlkYzExODg2OTY1Yzc4MWVjOTUyNTNkMDdh
NTliOGYwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ5IEBACisyMDIyLTAyLTI4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSVBDX1RFU1RJTkdfQVBJ
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaXMgc2xvdyB0byBjb21waWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKyAgICAgICAgUmVsYW5kIGFmdGVyIHJl
dmVydDoKKyAgICAgICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMgdG8gSlNDIGlubGluZXMsIG5lZWRl
ZCBmb3IgQVNBTiBidWlsZC4gQ29tcGlsZQorICAgICAgICBmYWlsdXJlIHdhcyBoaWRkZW4gbXkg
dW5pZmllZCBidWlsZC4KKworICAgICAgICBJUEMgdGVzdGluZyBBUEkgbmVlZHMgY29udmVydCBt
ZXNzYWdlIGRhdGEgYnVmZmVyLCBJUEM6OkRlY29kZXIsIHRvCisgICAgICAgIEpTVmFsdWUuIFRo
aXMgaXMgYSBydW4tdGltZSBvcGVyYXRpb24uCisgICAgICAgIElQQyBtZXNzYWdlIGRlY29kaW5n
IGlzIGJhc2VkIG9uIHRlbXBsYXRlcywgYSBjb21waWxlIHRpbWUgb3BlcmF0aW9uLgorICAgICAg
ICBJUEMgZ2VuZXJhdG9yIGdlbmVyYXRlcyBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3Bw
IHdpdGgKKyAgICAgICAgYSBiaWcgc3dpdGNoLiBUaGUgc3dpdGNoIGhhcyBhIGNhc2UgZm9yIGVh
Y2ggbWVzc2FnZSBuYW1lLiBUaGUgY2FzZSB3b3VsZAorICAgICAgICBjYWxsIHRlbXBsYXRlZCBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxBcmd1bWVudHM+LCB3aGVyZSB0aGUgQXJndW1lbnRz
CisgICAgICAgIGlzIHRoZSB0eXBlIHR1cGxlIGZvciB0aGUgbWVzc2FnZSBhcmd1bWVudHMuCisK
KyAgICAgICAgVGhlIGFib3ZlIHdvdWxkIG1lYW4gdGhhdCBNZXNzYWdlQXJndW1lbnREZXNjcmlw
dGlvbnMgd291bGQgbmVlZCB0bworICAgICAgICBpbmNsdWRlIGFsbCB0aGUgaGVhZGVycyBmb3Ig
YWxsIHRoZSBtZXNzYWdlcyBpbiBXZWJLaXQgaW4gb3JkZXIKKyAgICAgICAgdG8gcG9wdWxhdGUg
dGhlIEFyZ3VtZW50cyB0dXBsZSBmb3IgcGFydGljdWxhciBtZXNzYWdlLgorICAgICAgICBUaGlz
IHdvdWxkIGNhdXNlIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucyB0byBiZSBzbG93IHRvIGNv
bXBpbGUgYmVjYXVzZQorICAgICAgICBpdCB3b3VsZCBuZWVkIGFsbCB0aGUgaGVhZGVycyBpbiBT
b3VyY2UvV2ViS2l0IHJlbGF0ZWQgdG8gbWVzc2FnZSBwYXJhbWV0ZXIgdHlwZXMuCisKKyAgICAg
ICAgVGhpcyB3b3VsZCBzaG93IHVwIGFzIHNsb3cgY29tcGlsZXMgdGhhdCB3b3VsZCBjb25zdW1l
IG11Y2ggbWVtb3J5ICg1LTZnYikgYW5kIGRvIGEKKyAgICAgICAgbG90IG9mIHdvcmsuCisKKyAg
ICAgICAgSXQgd291bGQgYWxzbyBoYXZlIHRvIGNvbXBpbGUgdGhlIE1lc3NhZ2VBcmd1bWVudERl
c2NyaXB0aW9ucyBlYWNoIHRpbWUKKyAgICAgICAgYW55IG9mIHRoZSBoZWFkZXJzIHdlcmUgdG91
Y2hlZC4KKworICAgICAgICBDaGFuZ2UgdGhpcyBzbyB0aGF0IHRoZSBiaWcgc3dpdGNoIGNhbGxz
IGEgZGVjbGFyZWQgYnV0IG5vdCBkZWZpbmVkCisgICAgICAgIHRlbXBsYXRlIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZT4gZm9yIGVhY2ggTWVzc2FnZU5hbWUgY2FzZSBpbiB0
aGUKKyAgICAgICAgc3dpdGNoLgorCisgICAgICAgIEluc3RhbnRpYXRlIHRoZSB0ZW1wbGF0ZSBm
b3IgZWFjaCBtZXNzYWdlIGluIHRoZSAqTWVzc2FnZVJlY2VpdmVyLmNwcCBmaWxlCisgICAgICAg
IHRoYXQgZWFjaCBtZXNzYWdlIHJlY2VpdmVyIGhhcy4gVGhpcyBmaWxlIGFscmVhZHkgaGFzIHRv
IGluY2x1ZGUgYWxsIHRoZQorICAgICAgICBoZWFkZXJzIHVzZWQgZm9yIHRoYXQgcGFydGljdWxh
ciBtZXNzYWdlIHJlY2VpdmVyLiBUaGVzZSBmaWxlcyBhcmUgc21hbGwgYW5kIGNvbXBpbGUKKyAg
ICAgICAgZmFzdC4KKworICAgICAgICBBZnRlciB0aGlzIGNoYW5nZSBNZXNzYWdlQXJndW1lbnRE
ZXNjcmlwdGlvbnMuY3BwIG9ubHkgaW5jbHVkZXMgdGhlIG1lc3NhZ2UKKyAgICAgICAgZGVmaW5p
dGlvbiBoZWFkZXJzLCBkb2VzIG5vdCB1c2UgbXVjaCBtb3JlIHRoYW4gdGhlIHN0YW5kYXJkIDFn
Yisgb2YgbWVtb3J5CisgICAgICAgIHdoaWxlIGNvbXBpbGluZyBhbmQgaXMgcmVsYXRpdmVseSBm
YXN0IHRvIGNvbXBpbGUuIEFsc28gaWYgYW55IG9mIHRoZSBkZXBlbmRlbnQKKyAgICAgICAgaGVh
ZGVycyBhcmUgdG91Y2hlZCwgb25seSB0aGUgY29ycmVzcG9uZGluZyBzbWFsbCAqTWVzc2FnZVJl
Y2VpdmVyLmNwcCBmaWxlcyBhcmUgY29tcGlsZWQuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMg
bmVlZGVkIGZvciBmdXJ0aGVyIGltcHJvdmUgdGhlIEpTIHRlc3RpbmcgQVBJIGltcGxlbWVudGF0
aW9uLgorICAgICAgICBBZGRpbmcgbmV3IG9wZXJhdGlvbnMgdGhhdCBlbXBsb3kgdGhlIHNhbWUg
c3RyYXRlZ3ksIGVnLiBzd2l0Y2ggYW5kIGEgY29tcGxleAorICAgICAgICB0ZW1wbGF0ZSBpbnN0
YW50aWF0aW9uLCB3b3VsZCBwb3NzaWJseSBqdXN0IG1ha2UgdGhlIG1hdHRlciB3b3JzZS4gTmV3
IG9wZXJhdGlvbnMKKyAgICAgICAgdGhhdCBhcmUgbmVlZGVkIGFyZSBtZXNzYWdlIHNlbmRzLCB3
aGljaCB1c2UgdGVtcGxhdGVzIHNpbWlsYXJseSB0byB0aGUgbWVzc2FnZQorICAgICAgICBkZWNv
ZGUgY2FzZSB0aGF0IGlzIGltcGxlbWVudCBoZXJlLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJl
Z2VuZXJhdGVzIHRoZSBjaGVja2VkLWluIHRlc3QgY29udGVudCB0aGF0IGNhbiBiZSB1c2VkIHRv
IHJldmlldworICAgICAgICB3aGF0IGtpbmQgb2YgY2hhbmdlcyB0aGUgcmVhbCBNZXNzYWdlQXJn
dW1lbnREZXNjcmlwdGlvbnMuY3BwIGFuZCBNZXNzYWdlUmVjZWl2ZXIuY3BwcworICAgICAgICBn
ZXQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmg6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2hh
bmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbik6
CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnRE
ZXNjcmlwdGlvbnMuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yQXJndW1lbnRzKToKKyAg
ICAgICAgKElQQzo6anNWYWx1ZUZvclJlcGx5QXJndW1lbnRzKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4pOgorICAgICAgICAoSVBDOjpqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9S
ZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJM
Pik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNz
YWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFnZURhdGE+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdl
RGF0YV9SZWNlaXZlSW1hZ2VEYXRhPik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9Mb2FkVVJMPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nPik6CisgICAg
ICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVudD4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+KToKKyAgICAgICAgKElQQzo6
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hhbmdlPik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmRJbnRz
Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KToKKyAgICAgICAgKElQQzo6anNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lucz4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAgKElQ
Qzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
VGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFtZXRl
ckF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBsYXRlVGVzdD4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVh
dGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5
RXZlbnQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RlcHJlY2F0ZWRPcGVyYXRpb24+KToKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoU2VtYXBob3JlTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAg
ICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNl
bWFwaG9yZV9TZW5kU2VtYXBob3JlPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZT4p
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVz
c2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9TZW5kU3RyZWFtQnVmZmVyPik6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuY3BwOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3lu
Y2hyb25pemVkPik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ+KToKKyAgICAgICAgKElQ
Qzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9S
ZWNlaXZlTWFjaFNlbmRSaWdodD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRS
aWdodD4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFz
c01lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw+KToKKyAgICAgICAg
KElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVy
Y2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01l
c3NhZ2U+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50cz4p
OgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM+KToK
KyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+
KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPik6CisgICAg
ICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2Rl
ZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVz
c2FnZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4pOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHA6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkw+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGlu
Zz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Fk
ZEV2ZW50Pik6CisgICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlPik6CisgICAgICAg
IChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4pOgorICAgICAgICAoSVBDOjpqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19D
bG9zZT4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0RpZENoYW5nZT4pOgorICAgICAg
ICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19TZW5kRG91YmxlQW5kRmxvYXQ+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZElu
dHM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luPik6CisgICAgICAgIChJUEM6Ompz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X1J1bkphdmFTY3JpcHRBbGVydD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zPik6Cisg
ICAgICAgIChJUEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPik6CisgICAgICAgIChJ
UEM6OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KToKKyAgICAgICAgKElQQzo6
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcz4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RN
dWx0aXBsZUF0dHJpYnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdFBhcmFtZXRlckF0dHJp
YnV0ZXM+KToKKyAgICAgICAgKElQQzo6anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0Pik6CisgICAgICAgIChJUEM6
OmpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX1NldFZpZGVvTGF5ZXJJRD4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbj4pOgorICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudD4pOgor
ICAgICAgICAoSVBDOjpqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19EZXByZWNhdGVkT3BlcmF0aW9uPik6CisgICAgICAgIChJUEM6Ompz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4pOgorCiAyMDIyLTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVtb3RlVmlkZW9TYW1wbGUgc3Vw
cG9ydCBmcm9tIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvSlNJUENCaW5kaW5nLmgKaW5kZXggZWQxNjQ0MmNiOTY2ZjAzNDRiYjEwYzFmM2U5MDZiYjhi
ZTZjZWQ2My4uOGQyN2I0OWQ1MDM1ZjJhZTcxYjZkM2FjZDRmNGI1NTk1N2IzNTA4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmgKQEAgLTMyLDggKzMyLDEwIEBA
CiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNB
cnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQXJyYXlCdWZmZXIuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNP
YmplY3QuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdElubGluZXMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC0xNTYsNiArMTU4LDE5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHMoSlNDOjpKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHB1
dEpTVmFsdWVGb3JEZWNvZGVBcmd1bWVudEluQXJyYXk8PihnbG9iYWxPYmplY3QsIGRlY29kZXIs
IGFycmF5LCAwLCBkdW1teUFyZ3VtZW50cyk7CiB9CiAKKy8vIFRoZSBiaW5kaW5ncyBpbXBsZW1l
bnRhdGlvbiB3aWxsIGNhbGwgdGhlIGZ1bmN0aW9uIHRlbXBsYXRlcyBiZWxvdyB0byBkZWNvZGUg
YSBtZXNzYWdlLgorLy8gVGhlc2UgZnVuY3Rpb24gdGVtcGxhdGVzIGFyZSBzcGVjaWFsaXplZCBi
eSBlYWNoIG1lc3NhZ2UgaW4gdGhlaXIgb3duIGdlbmVyYXRlZCBmaWxlLgorLy8gRWFjaCBpbXBs
ZW1lbnRhdGlvbiB3aWxsIGp1c3QgY2FsbCB0aGUgYWJvdmUgYGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzKClgIGZ1bmN0aW9uLgorLy8gVGhpcyBoYXMgdGhlIGJlbmVmaXQgdGhhdCB1cG9uIGNv
bXBpbGF0aW9uLCBvbmx5IHRoZSBtZXNzYWdlIHJlY2VpdmVyIGltcGxlbWVudGF0aW9uIGZpbGVz
IGFyZQorLy8gcmVjb21waWxlZCB3aGVuIHRoZSBtZXNzYWdlIGFyZ3VtZW50IHR5cGVzIGNoYW5n
ZS4KKy8vIFRoZSBiaW5kaW5ncyBpbXBsZW1lbnRhdGlvbiwgZS5nLiB0aGUgY2FsbGVyIG9mIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTw+LCBkb2VzIG5vdCBuZWVkCisvLyB0byBrbm93IGFsbCB0
aGUgbWVzc2FnZSBhcmd1bWVudCB0eXBlcywgYW5kIG5lZWQgdG8gYmUgcmVjb21waWxlZCBvbmx5
IHdoZW4gdGhlIG1lc3NhZ2UgaXRzZWxmCisvLyBjaGFuZ2VzLgordGVtcGxhdGU8TWVzc2FnZU5h
bWU+CitzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBJUEM6OkRlY29kZXImKTsKK3RlbXBsYXRlPE1lc3NhZ2VO
YW1lPgorc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZVJlcGx5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBJUEM6OkRlY29kZXImKTsKKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDgyYWM3OTAx
ZDcyMzk5YzMyNGYxZDllODg1MDU2ZjhiMmFjYTI0MzMuLjRlYTgzOTJiNWFhZGMyOTEyNmNlYTkz
NmRlYmViMTY1NjY4MzMxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMTA3MCw2ICsxMDcwLDEwIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIo
cmVjZWl2ZXIpOgogICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNfZnJvbV9j
b25kaXRpb25zKGhlYWRlcl9jb25kaXRpb25zKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAor
ICAgIHJlc3VsdC5hcHBlbmQoJyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKKyAgICBy
ZXN1bHQuYXBwZW5kKCcjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiXG4nKQorICAgIHJlc3VsdC5h
cHBlbmQoIiNlbmRpZlxuXG4iKQorCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtd
CiAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CiAgICAgICAgIGlmIG1lc3Nh
Z2UucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZ
TkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJ
QlVURSkpOgpAQCAtMTE5MSw2ICsxMTk1LDMzIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRs
ZXIocmVjZWl2ZXIpOgogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG59IC8vIG5hbWVzcGFjZSBXZWJL
aXRcbicpCiAKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpXG5cbicpCisgICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNw
YWNlIElQQyB7XG5cbicpCisgICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24gPSBOb25lCisg
ICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgIGlmIHByZXZpb3Vz
X21lc3NhZ2VfY29uZGl0aW9uICE9IG1lc3NhZ2UuY29uZGl0aW9uOgorICAgICAgICAgICAgaWYg
cHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnI2VuZGlmXG4nKQorICAgICAgICAgICAgaWYgbWVzc2FnZS5jb25kaXRpb246CisgICAgICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCisg
ICAgICAgICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9u
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6JXNfJXM+KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVj
ZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykK
KyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAo
cmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnQXJndW1lbnRzJykpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJ31cbicpCisgICAgICAgIGhhc19yZXBseSA9IG1lc3NhZ2UucmVwbHlfcGFyYW1l
dGVycyBpcyBub3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKQorICAg
ICAgICBpZiBub3QgaGFzX3JlcGx5OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcmVz
dWx0LmFwcGVuZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OiVzXyVzPihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpXG4nICUgKHJlY2VpdmVyLm5h
bWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OiVzOjolczo6JXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7XG4nICUgKHJlY2VpdmVy
Lm5hbWUsIG1lc3NhZ2UubmFtZSwgJ1JlcGx5QXJndW1lbnRzJykpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJ31cbicpCisgICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbn1cblxuJykK
KyAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcblxuJykKKwogICAgIGlmIHJlY2VpdmVyLmNvbmRp
dGlvbjoKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4jZW5kaWYgLy8gJXNcbicgJSByZWNlaXZl
ci5jb25kaXRpb24pCiAKQEAgLTEzMDgsNyArMTMzOSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdl
X25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmV0dXJuICcnLmpvaW4ocmVz
dWx0KQogCiAKLWRlZiBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3Vs
dCwgcmVjZWl2ZXJzLCBmdW5jdGlvbl9uYW1lLCBhcmd1bWVudF90eXBlLCBwcmVkaWNhdGU9bGFt
YmRhIG1lc3NhZ2U6IFRydWUpOgorZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVu
Y3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsIGZ1bmN0aW9uX25hbWUsIGRlY29kZXJfZnVuY3Rpb25f
bmFtZSwgYXJndW1lbnRfdHlwZSwgcHJlZGljYXRlPWxhbWJkYSBtZXNzYWdlOiBUcnVlKToKICAg
ICByZXN1bHQuYXBwZW5kKCdzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4gJXMoSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZXNzYWdlTmFtZSBuYW1lLCBEZWNvZGVyJiBkZWNv
ZGVyKVxuJyAlIGZ1bmN0aW9uX25hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQpAQCAtMTMyOCw3ICsxMzU5LDcg
QEAgZGVmIGdlbmVyYXRlX2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNl
aXZlcnMsIGZ1bmN0aW9uX25hbWUsIGFyZ3UKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAgICAgICBwcmV2aW91
c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCiAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUgKHJlY2VpdmVyLm5h
bWUsIG1lc3NhZ2UubmFtZSkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6JXM6OiVzOjolcz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCBh
cmd1bWVudF90eXBlKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJu
ICVzPE1lc3NhZ2VOYW1lOjolc18lcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicgJSAoZGVj
b2Rlcl9mdW5jdGlvbl9uYW1lLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQogICAgICAg
ICBpZiBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyNlbmRpZlxuJykKICAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgpAQCAtMTQxMiw3
ICsxNDQzLDYgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1w
bGVtZW50YXRpb24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEKICAgICAgICAgaGVhZGVyX2NvbmRp
dGlvbnMgPSB7CiAgICAgICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUo
cmVjZWl2ZXIpOiBbTm9uZV0KICAgICAgICAgfQotICAgICAgICBjb2xsZWN0X2hlYWRlcl9jb25k
aXRpb25zX2Zvcl9yZWNlaXZlcihyZWNlaXZlciwgaGVhZGVyX2NvbmRpdGlvbnMpCiAgICAgICAg
IHJlc3VsdCArPSBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXNfZnJvbV9jb25kaXRpb25zKGhlYWRl
cl9jb25kaXRpb25zKQogICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcbicpCkBAIC0xNDI0LDExICsxNDU0LDExIEBAIGRlZiBn
ZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKHJlY2Vp
dmVycywgcmVjZWl2ZXJfaGVhCiAgICAgcmVzdWx0LmFwcGVuZCgnI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpXG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAotICAgIGdlbmVyYXRlX2pz
X3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9y
QXJndW1lbnRzJywgJ0FyZ3VtZW50cycpCisgICAgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lv
bl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JBcmd1bWVudHMnLCAnanNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlJywgJ0FyZ3VtZW50cycpCiAKICAgICByZXN1bHQuYXBwZW5k
KCdcbicpCiAKLSAgICBnZW5lcmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3Vs
dCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvclJlcGx5QXJndW1lbnRzJywgJ1JlcGx5QXJndW1lbnRz
JywgbGFtYmRhIG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZSBh
bmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3Nh
Z2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKKyAgICBnZW5lcmF0ZV9qc192YWx1
ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNWYWx1ZUZvclJlcGx5
QXJndW1lbnRzJywgJ2pzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5JywgJ1JlcGx5QXJndW1l
bnRzJywgbGFtYmRhIG1lc3NhZ2U6IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9u
ZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKSkKIAogICAgIHJlc3VsdC5hcHBl
bmQoJ1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSlcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKaW5kZXggNTJlM2M3
NjM4MzkwYTNjZWYzZGM2NzIzMThjMjBjOTY0ZThlYzA1Zi4uNzA1MDY3NmRjOGEzNDRmNjVmZGZh
NTZlMzE0MmZiYmRlY2UyZjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNw
cApAQCAtMjgsMTEwICsyOCwxOSBAQAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpIHx8ICFM
T0dfRElTQUJMRUQKIAogI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgotI2luY2x1ZGUgIkFyZ3Vt
ZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgotI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCi0jaW5jbHVkZSAiVGVzdFR3b1N0YXRlRW51bS5oIgotI2VuZGlmCiAjaW5jbHVk
ZSAiVGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxvcHRpb25hbD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChO
RVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCi0jaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaWYgRU5B
QkxFKERFUFJFQ0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRVUkVfRk9SX1RFU1RJTkcpCi0j
aW5jbHVkZSAiRHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVk
ZSAiR2VzdHVyZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAi
TWFjaFBvcnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpZiAoRU5BQkxFKFRP
VUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01F
U1NBR0VfQ09ORElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVT
U0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCi0jaW5jbHVk
ZSAiV2ViVG91Y2hFdmVudC5oIgotI2VuZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVu
dC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+Ci0jaW5jbHVkZSA8
dXRpbGl0eT4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjZW5kaWYKICNpZiAoRU5BQkxFKFdF
QktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVS
X0FORCkpCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCi0jaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkgfHwgRU5BQkxFKEZFQVRVUkVfRk9S
X1RFU1RJTkcpCi0jaW5jbHVkZSAiRHVtbXlUeXBlLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShN
QUMpCi0jaW5jbHVkZSAiR2VzdHVyZVR5cGVzLmgiCi0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMp
Ci0jaW5jbHVkZSAiTWFjaFBvcnQuaCIKLSNlbmRpZgotI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIlRlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2lm
IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNP
TUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKSB8fCAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYg
KE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9O
KSkKLSNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCi0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXIuaD4KLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8V2ViQ29yZS9L
ZXlib2FyZEV2ZW50Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4K
LSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaWYgUExBVEZP
Uk0oTUFDKQotI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNlbmRpZgotI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCi0jaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKICNlbmRpZgogI2luY2x1ZGUgIlRlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXMuaCIKLSNp
ZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotI2VuZGlmCi0jaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAi
VGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEYXRhLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIlRlc3RXaXRoU3RyZWFtTWVzc2FnZXMuaCIKLSNpZiBQTEFURk9STShDT0NPQSkKLSNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIgogI2luY2x1
ZGUgIlRlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNlbmRpZgogI2luY2x1ZGUgIlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VzLmgiCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSNpbmNs
dWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+Ci0jZW5kaWYKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsK
IApAQCAtMTQxLDE3NiArNTAsMTc2IEBAIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yQXJndW1lbnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiB7CiAgICAg
c3dpdGNoIChuYW1lKSB7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5
bmNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJn
dW1lbnRzOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2Fn
ZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhN
dWx0aXBsZUFyZ3VtZW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTXVs
dGlwbGVBcmd1bWVudHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3lu
Y01lc3NhZ2VXaXRoQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jTWVzc2Fn
ZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVz
dFN5bmNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgotICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJj
bGFzczo6VGVzdFN5bmNocm9ub3VzTWVzc2FnZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NP
TkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6Okxv
YWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9Mb2FkVVJMPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2Fk
U29tZXRoaW5nOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5n
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NP
TkRJVElPTikpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9U
b3VjaEV2ZW50OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2ZW50PihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYm
IChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElP
TikpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVu
dDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmdFbHNlOgotICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZ0Vsc2U+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjoKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
OjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9DbG9zZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpDbG9zZTo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfUHJlZmVyZW5jZXNEaWRDaGFuZ2U6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UHJlZmVyZW5jZXNE
aWRDaGFuZ2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9QcmVmZXJlbmNlc0RpZENoYW5nZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3VibGVBbmRG
bG9hdDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kRG91YmxlQW5k
RmxvYXQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kSW50czoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kSW50
czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1NlbmRJbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luOgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6
OkNyZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVy
dDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xv
YmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxl
cnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdp
bnM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cl9HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcjo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0
ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpUZXN0UGFyYW1ldGVyQXR0cmlidXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfVGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlbXBsYXRlVGVzdDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rl
bXBsYXRlVGVzdD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpTZXRWaWRlb0xheWVySUQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9TZXRWaWRlb0xheWVySUQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcjo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OkludGVycHJldEtleUV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJhdGlvbjoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyOjpEZXByZWNhdGVkT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJhdGlv
bj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFUVVJFX0ZP
Ul9URVNUSU5HKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
RXhwZXJpbWVudGFsT3BlcmF0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkV4cGVyaW1lbnRhbE9w
ZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNl
bmRpZgogI2VuZGlmCiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05E
SVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFVS
TDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
TG9hZFVSTD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRo
aW5nOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9hZFNvbWV0aGluZzo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAo
TkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04p
KQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50
OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6VG91Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudD4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICNlbmRpZgogI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01F
U1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudDoKLSAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXM6OkFkZEV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19BZGRFdmVudD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6TG9h
ZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
I2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbjoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZToKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFuZ2U6
Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFu
Z2U+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX1NlbmREb3VibGVBbmRGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNl
bmREb3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50czoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmRJbnRzOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1
Z2luOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6Q3JlYXRlUGx1Z2luOjpBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX1J1bkphdmFTY3JpcHRBbGVydDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRB
bGVydDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zOgotICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0
cmlidXRlczo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lucz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlw
bGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRl
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0OgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VGVtcGxhdGVU
ZXN0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19UZW1wbGF0ZVRlc3Q+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NldFZpZGVvTGF5ZXJJRDoKLSAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXM6OlNldFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEPihnbG9iYWxPYmplY3QsIGRlY29k
ZXIpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Ci0gICAgICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50OgotICAgICAgICByZXR1cm4ganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6
SW50ZXJwcmV0S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50PihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbjoKLSAgICAg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OkRlcHJlY2F0ZWRPcGVyYXRpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElO
RykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRXhwZXJpbWVu
dGFsT3BlcmF0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhwZXJpbWVudGFsT3BlcmF0aW9uOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19FeHBl
cmltZW50YWxPcGVyYXRpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZN
ZXNzYWdlX0xvYWRVUkw6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTD4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFNlbWFwaG9yZV9TZW5kU2VtYXBob3JlOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU2VtYXBob3JlOjpTZW5kU2VtYXBob3Jl
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1NlbmRT
ZW1hcGhvcmU+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZToKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6UmVjZWl2
ZVNlbWFwaG9yZTo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNlbWFw
aG9yZV9SZWNlaXZlU2VtYXBob3JlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFnZURhdGE6Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURh
dGE6OlNlbmRJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhOgotICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
SW1hZ2VEYXRhOjpSZWNlaXZlSW1hZ2VEYXRhOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZzoK
LSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aFN0cmVhbTo6U2VuZFN0cmluZzo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6Ci0g
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTdHJlYW06OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZD4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN0cmVhbV9TZW5kTWFjaFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZE1hY2hT
ZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1f
U2VuZE1hY2hTZW5kUmlnaHQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6Ci0gICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06
OlJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3RyZWFtX1JlY2VpdmVNYWNoU2VuZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFj
aFNlbmRSaWdodDoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZl
TWFjaFNlbmRSaWdodD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICNlbmRpZgogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJlYW1CdWZmZXI6Ci0gICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhT
dHJlYW1CdWZmZXI6OlNlbmRTdHJlYW1CdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdHJlYW1CdWZmZXJfU2VuZFN0cmVhbUJ1ZmZlcj4oZ2xvYmFsT2JqZWN0
LCBkZWNvZGVyKTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZm
ZXI6OlNlbmRDVlBpeGVsQnVmZmVyOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9TZW5kQ1ZQaXhlbEJ1ZmZlcj4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVjZWl2
ZUNWUGl4ZWxCdWZmZXI6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpSZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVj
ZWl2ZUNWUGl4ZWxCdWZmZXI+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMywyOSArMjMyLDI5IEBAIHN0ZDo6b3B0aW9u
YWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yUmVwbHlBcmd1bWVudHMoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsCiAgICAgc3dpdGNoIChuYW1lKSB7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVS
RSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVz
c2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2U6OlJlcGx5QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzOgotICAgICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJj
bGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czo6UmVwbHlBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1l
c3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3Nh
Z2VXaXRoTm9Bcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVB
cmd1bWVudHM6Ci0gICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJn
dW1lbnRzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0
aW9uPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRl
c3RTeW5jTWVzc2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9u
b3VzTWVzc2FnZToKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RTeW5jaHJvbm91c01lc3NhZ2U6OlJlcGx5
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19U
ZXN0U3luY2hyb25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogI2lmIChFTkFC
TEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBN
QVNURVJfQU5EKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKFdFQktJVDIpICYmIChO
RVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOgotICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVz
c2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRp
cGxlQXR0cmlidXRlczoKLSAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6
OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAgICAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
I2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
Q1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMzg0MWZhZjMxNzU2MWNjMmNi
M2E0Mjg1YWYzNjUzZmY0YzIyN2M1NC4uMmQyMGZiN2RkOWVhZTdjNThlMzcyN2Y4OGM1MWJlNzNh
MDgwNzYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5k
aW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhDVlBp
eGVsQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTc1LDMgKzc5LDIzIEBAIGJvb2wgVGVzdFdpdGhD
VlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfU2VuZENWUGl4ZWxCdWZm
ZXI+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcjo6U2VuZENWUGl4ZWxCdWZmZXI6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhDVlBpeGVsQnVm
ZmVyX1JlY2VpdmVDVlBpeGVsQnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OlJlY2VpdmVDVlBpeGVsQnVm
ZmVyOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQor
CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNwcApp
bmRleCBhYWM2YmIzNWM4ZTE4Yjk3NmJhMTY4ODUxYWY0ZmY1MjM5Y2E1OTYwLi5lMDM5YmJlNWJm
YTBiMmVhZGFlMWRkZWMwNzlhOGU0OTIzNzE1YjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZVJlY2VpdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNz
YWdlTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
KyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogdm9pZCBUZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC01OCwzICs2MiwyNSBA
QCB2b2lkIFRlc3RXaXRoSWZNZXNzYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCisjaWYgUExB
VEZPUk0oQ09DT0EpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRV
Ukw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7
Cit9CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoSWZNZXNzYWdlX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZNZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1l
c3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAppbmRleCAyNDU0YjNkYWU2OGQwZDQ0
ZTA3NTM3ZmEzZWI4MjUzMDZlN2E0ODRlLi41ZTUyM2NjODY4YzkwMjA5NTMyYzFmYTMzMWE4OGE4
Y2E5ODYyNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNw
cApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGF0YS5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQor
I2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB2b2lkIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTY2LDMgKzcwLDIxIEBA
IGJvb2wgVGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNlIElQQyB7CisKK3RlbXBsYXRl
PD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfU2VuZEltYWdlRGF0YT4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURhdGE6OlNl
bmRJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBs
YXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YT4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhJbWFnZURh
dGE6OlJlY2VpdmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KKworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1l
c3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggYzg5ZjQ3Nzg5MTZhOTQ1OWI3ZThlYTdkMTM4NTAxZDBj
ODVlOTZkZC4uNWQwNmNjNjA2NWE3NzFmOWM1YmVmM2ExMjY3ZjU3NTUwZTU2ZDg0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01
OSw2ICs1OSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAi
SlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNw
YWNlIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXIgewpAQCAtMTY4LDQgKzE3MiwxMjQgQEAgYm9vbCBU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZlU3luY1Rlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJNZXNzYWdlKElQQzo6Q28KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQorCituYW1lc3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkw+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRVUkw6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZv
ckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRT
b21ldGhpbmc+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkxvYWRTb21ldGhpbmc6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAm
JiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJ
T04pKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZl
bnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXI6OlRvdWNoRXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KKyNlbmRpZgorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVE
X01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50PihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0
dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpBZGRFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
I2VuZGlmCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZT4oSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVl
Rm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6TG9h
ZFNvbWV0aGluZ0Vsc2U6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNl
bmRpZgordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2Vp
dmVQb2xpY3lEZWNpc2lvbj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNsb3NlOjpB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUHJlZmVyZW5jZXNEaWRDaGFuZ2U+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXI6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZERv
dWJsZUFuZEZsb2F0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ6OkFyZ3VtZW50
cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9TZW5kSW50cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6U2VuZEludHM6OkFyZ3Vt
ZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25h
bDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNyZWF0ZVBs
dWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcjo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpHZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQor
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRN
ZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRl
PD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVz
PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7
CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFy
YW1ldGVyQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxN
ZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZW1wbGF0ZVRlc3Q+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRl
bXBsYXRlVGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRD4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcjo6U2V0VmlkZW9MYXllcklEOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9CisjaWYgUExBVEZPUk0oTUFDKQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpT
Qzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmpl
Y3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4g
anNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0ludGVycHJldEtleUV2ZW50PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpJbnRlcnByZXRLZXlFdmVudDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxF
KERFUFJFQ0FURURfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFs
dWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpEZXByZWNhdGVkT3Bl
cmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKKyNp
ZiBFTkFCTEUoRkVBVFVSRV9GT1JfVEVTVElORykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkV4
cGVyaW1lbnRhbE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQorI2VuZGlmCisKK30KKworI2VuZGlmCisKKwogI2VuZGlmIC8vIChFTkFCTEUoV0VCS0lUMikg
JiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
ZW1hcGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggNTM2Mzgy
MzhjM2EzNmM0NDRjNDlmOTJlYmNkYzFhMDY5YzM5ZjYyZC4uMzA3YzU1YzFmYjg1Yjk4ZTg2M2Zi
YzgzMTQ1MmI2MTRkZGZhYzE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VS
ZWNlaXZlci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgi
CiAjaW5jbHVkZSAiVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oIgogCisjaWYgRU5BQkxFKElQ
Q19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJKU0lQQ0JpbmRpbmcuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBA
IC02MywzICs2NywyMSBAQCBib29sIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OgogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJ
UEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1NlbmRTZW1hcGhv
cmU+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU2VtYXBob3JlOjpTZW5kU2VtYXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVj
b2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVT
ZW1hcGhvcmU+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU2VtYXBob3JlOjpSZWNlaXZlU2VtYXBob3JlOjpBcmd1bWVudHM+KGdsb2JhbE9i
amVjdCwgZGVjb2Rlcik7Cit9CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0
cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMThhZGQ4YTZmYjYwN2I3NjhhMzcw
Mzk4NjMzMDUwNGMyNzg2MmZjOC4uY2E2YmUxZjUzMzcxNzljZjBlZTM2ODI4ODlmOWE4Mjk2ZDk0
MGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5o
IgogI2luY2x1ZGUgIlRlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZXMuaCIKIAorI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVGVzdFdpdGhTdHJlYW1CdWZmZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQpAQCAtNDcsMyArNTEsMTcgQEAgdm9pZCBUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorCituYW1l
c3BhY2UgSVBDIHsKKwordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNW
YWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcl9T
ZW5kU3RyZWFtQnVmZmVyPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6U2VuZFN0cmVhbUJ1ZmZlcjo6QXJndW1lbnRz
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IDY3ODU0ZjgwOWZlNmYyYzI1NDIyYzgy
MjA1NDNhMThjMGZlMGI2NDYuLjY1ZDk1NDZmOWUyOTBkZWQxNjA3ZGI0YjMyYmI2MTY4Yzc4MGY5
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdp
dGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC0zNCw2ICsz
NCwxMCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBF
TkFCTEUoSVBDX1RFU1RJTkdfQVBJKQorI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZl
U3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC02NCwzICs2OCwzNSBAQCB2b2lkIFRlc3RXaXRo
U3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b25CYXNlJiBjbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIEVOQUJMRShJUENf
VEVTVElOR19BUEkpCisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9u
YWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3RyZWFtX1NlbmRTdHJpbmc+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nOjpBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Ry
ZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nU3luY2hyb25pemVk
OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjaWYgUExBVEZPUk0oQ09D
T0EpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVj
b2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRNYWNoU2VuZFJpZ2h0
PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7
CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0
aFN0cmVhbTo6U2VuZE1hY2hTZW5kUmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hT
ZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6
OlRlc3RXaXRoU3RyZWFtOjpSZWNlaXZlTWFjaFNlbmRSaWdodDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9T
ZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kQW5kUmVjZWl2ZU1hY2hTZW5k
UmlnaHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KKyNlbmRpZgorCit9
CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3VwZXJjbGFzc01lc3NhZ2VSZWNlaXZlci5j
cHAKaW5kZXggNDRhNjZkOTdlZDdhNDFlNzE2YTJiZjk4ZWQzNTU0MWU1NzA1OTE3OC4uM2E5NDEx
YzlmOGVmYzI5MTc5NTYzYTJjMDUzNTVmMWRkYzZhY2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN1cGVyY2xhc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhT
dXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRl
IDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRoU3VwZXJjbGFzcyB7CkBA
IC0yMDksMyArMjEzLDY3IEBAIGJvb2wgVGVzdFdpdGhTdXBlcmNsYXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbmFtZXNwYWNl
IElQQyB7CisKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw+
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRo
U3VwZXJjbGFzczo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2U6
OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBq
c1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpU
ZXN0QXN5bmNNZXNzYWdlOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsK
K30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNv
ZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3Nh
Z2VXaXRoTm9Bcmd1bWVudHM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8
TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3Vt
ZW50czo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJn
dW1lbnRzPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpU
ZXN0V2l0aFN1cGVyY2xhc3M6OlRlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6OlJlcGx5
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50
cz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhTdXBlcmNsYXNzOjpUZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOjpBcmd1
bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9u
YWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVu
dHM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoU3VwZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50czo6UmVw
bHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24+KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3Vw
ZXJjbGFzczo6VGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbj4oSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1Zh
bHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0
QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3Qs
IGRlY29kZXIpOworfQorI2VuZGlmCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0U3luY01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNNZXNzYWdlOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZT4oSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdXBlcmNsYXNzOjpUZXN0U3luY01l
c3NhZ2U6OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxh
dGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdl
PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZT4o
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhT
dXBlcmNsYXNzOjpUZXN0U3luY2hyb25vdXNNZXNzYWdlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRB
cmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3VwZXJjbGFzczo6VGVzdFN5bmNocm9ub3VzTWVz
c2FnZTo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisKK30KKwor
I2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVy
LmNwcAppbmRleCAxOWFlOWIwYzJkNGEyODNhMjRiNWNhZTgzZmQyODgwMTExMDkwNjM1Li40ZTg4
MjM2YmNiMmQ0OTIxM2M5ZDJiNjAzNmViMTI2MzZlNTUzNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VS
ZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC01OSw2ICs1OSwxMCBAQAog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRob3V0
QXR0cmlidXRlcyB7CkBAIC0xNjgsNCArMTcyLDEyNCBAQCBib29sIFRlc3RXaXRob3V0QXR0cmli
dXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
CisKK25hbWVzcGFjZSBJUEMgeworCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1Zh
bHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19Mb2FkVVJMPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRVUkw6OkFyZ3VtZW50cz4oZ2xvYmFs
T2JqZWN0LCBkZWNvZGVyKTsKK30KKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFNvbWV0aGluZz4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzOjpMb2FkU29tZXRoaW5nOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9
CisjZW5kaWYKKyNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NP
TkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK3RlbXBsYXRlPD4gc3Rk
OjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6VG91
Y2hFdmVudDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisj
aWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYg
U09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19BZGRFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpBZGRFdmVudDo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRT
b21ldGhpbmdFbHNlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkxvYWRTb21ldGhpbmdFbHNlOjpBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5kaWYKK3RlbXBsYXRlPD4gc3RkOjpvcHRp
b25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Ns
b3NlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OkNsb3NlOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9y
RGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJl
bmNlc0RpZENoYW5nZT4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNz
YWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpQcmVmZXJlbmNlc0RpZENoYW5nZTo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0PihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmRE
b3VibGVBbmRGbG9hdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZEludHM+KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmli
dXRlczo6U2VuZEludHM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpbj4oSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpDcmVhdGVQbHVnaW46OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFT
Y3JpcHRBbGVydD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4o
Z2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0dldFBsdWdpbnM+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luczo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6R2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OlJlcGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
fQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29k
ZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxl
QXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRl
czo6VGVzdE11bHRpcGxlQXR0cmlidXRlczo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwg
ZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19U
ZXN0UGFyYW1ldGVyQXR0cmlidXRlcz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0UGFyYW1ldGVyQXR0cmli
dXRlczo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVtcGxhdGVUZXN0PihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6
OlRlbXBsYXRlVGVzdDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQordGVt
cGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNz
YWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEPihK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OlNldFZpZGVvTGF5ZXJJRDo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworfQorI2lmIFBMQVRGT1JNKE1BQykKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxK
U0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7Cit9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19JbnRlcnByZXRLZXlFdmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnByZXRLZXlFdmVudDo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5BQkxFKERF
UFJFQ0FURURfRkVBVFVSRSkKK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGVwcmVjYXRlZE9wZXJhdGlv
bjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQorI2VuZGlmCisjaWYgRU5B
QkxFKEZFQVRVUkVfRk9SX1RFU1RJTkcpCit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19FeHBlcmltZW50YWxPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RXhwZXJpbWVu
dGFsT3BlcmF0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CisjZW5k
aWYKKworfQorCisjZW5kaWYKKworCiAjZW5kaWYgLy8gKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVT
VEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>